baby520 发表于 2007-10-28 17:33:51

SVKP 1.3x 手脱

PEID查壳SVKP 1.3x -> Pavol Cerven

避开IAT加密,处理输入表

忽略所有异常选项,隐藏OD!载入加壳程序

OD载入
0040E000 >60            pushad                            停在这里         
0040E001    E8 00000000   call Baby.0040E006                ESP==0012FFC4
0040E006    5D            pop ebp
0040E007    81ED 06000000   sub ebp,6
0040E00D    EB 05         jmp short Baby.0040E014
0040E00F    B8 06364200   mov eax,423606
0040E014    64:A0 23000000mov al,byte ptr fs:
0040E01A    EB 03         jmp short Baby.0040E01F
0040E01C    C784E8 84C0EB03>mov dword ptr ds:,75E984>
0040E027    67:B9 49000000mov ecx,49
0040E02D    8DB5 C5020000   lea esi,dword ptr ss:

下段 bp GetModuleHandleA+5,Shift+F9 两次,断下后取消断点,Alt+F9返回!




7C80B6A6    837D 08 00      cmp dword ptr ss:,0段在这里 取消短点
7C80B6AA    74 18         je short kernel32.7C80B6C4
7C80B6AC    FF75 08         push dword ptr ss:
7C80B6AF    E8 C0290000   call kernel32.7C80E074
7C80B6B4    85C0            test eax,eax
7C80B6B6    74 08         je short kernel32.7C80B6C0
7C80B6B8    FF70 04         push dword ptr ds:
7C80B6BB    E8 7D2D0000   call kernel32.GetModuleHandleW
7C80B6C0    5D            pop ebp
7C80B6C1    C2 0400         retn 4


0012F83C/0012F884
0012F840|66001BC5返回到 MSVBVM60.66001BC5 来自 kernel32.GetModuleHandleA
0012F844|6600F4D0ASCII "kernel32.dll"
0012F848|66001B64返回到 MSVBVM60.66001B64 来自 MSVBVM60.66001B90
0012F84C|66000000offset MSVBVM60.#1374



0E6F08BC    60            pushad                  返回在这里
0E6F08BD    E8 03000000   call 0E6F08C5
0E6F08C2    D2EB            shr bl,cl
0E6F08C4    0A58 EB         or bl,byte ptr ds:
0E6F08C7    0148 40         add dword ptr ds:,ecx
0E6F08CA    EB 01         jmp short 0E6F08CD
0E6F08CC    35 FFE0615E   xor eax,5E61E0FF
0E6F08D1    E8 01000000   call 0E6F08D7
0E6F08D6- E9 83C4045F   jmp 6D73CD5E
0E6F08DB    7C 03         jl short 0E6F08E0


搜索特征码,搜索所有命令:mov dword ptr ds:,eax   


双击第最后一个来到这里
0E6F2B9C    8907            mov dword ptr ds:,eax
0E6F2B9E    7C 03         jl short 0E6F2BA3
0E6F2BA0    EB 03         jmp short 0E6F2BA5
0E6F2BA2- E9 74FB61E8   jmp F6D1271B
0E6F2BA7    0100            add dword ptr ds:,eax
0E6F2BA9    0000            add byte ptr ds:,al
0E6F2BAB    9A 83C404EB 02C>call far CD02:EB04C483
0E6F2BB2    2083 8583E101   and byte ptr ds:,al
0E6F2BB8    0004EB          add byte ptr ds:,al
0E6F2BBB    020F            add cl,byte ptr ds:
0E6F2BBD    9A E965E0FF FFE>call far E8FF:FFE065E9
0E6F2BC4    0200            add al,byte ptr ds:
0E6F2BC6    0000            add byte ptr ds:,al
0E6F2BC8    CD20 83042408   vxdcall 8240483


用OD 带的 SVKP 1.32插件去下花指令!


0E6F2B9C    8907            mov dword ptr ds:,eax   去处之后
0E6F2B9E    7C 03         jl short 0E6F2BA3
0E6F2BA0    90            nop
0E6F2BA1    90            nop
0E6F2BA2    90            nop
0E6F2BA3    90            nop
0E6F2BA4    90            nop
0E6F2BA5    61            popad


把原来的代码改下

0E6F2B9C    8907            mov dword ptr ds:,eax   原来代码
0E6F2B9E    7C 03         jl short 0E6F2BA3
0E6F2BA0    90            nop
0E6F2BA1    90            nop
0E6F2BA2    90            nop
0E6F2BA3    90            nop
0E6F2BA4    90            nop
0E6F2BA5    61            popad


修改之后

0E6F2B9C    61            popad
0E6F2B9D    8907            mov dword ptr ds:,eax
0E6F2B9F^ 7C 90         jl short 0E6F2B31
0E6F2BA1    90            nop
0E6F2BA2    90            nop
0E6F2BA3    90            nop
0E6F2BA4    90            nop
0E6F2BA5    90            nop


继续 搜索所有命令 cmp dword ptr ds:,251097CC//用来处理特殊加密


双机第一段 来到

0E6F0F64    813B CC971025   cmp dword ptr ds:,251097CC       停在这里 //F2下断 shirt+F9运行
取消断点F8单步向下(遇到CALL按F7跟进)
0E6F0F6A    EB 03         jmp short 0E6F0F6F
0E6F0F6C    C784E9 0F844330>mov dword ptr ds:,32E80>
0E6F0F77    0000            add byte ptr ds:,al
0E6F0F79    00C3            add bl,al
0E6F0F7B    EB 04         jmp short 0E6F0F81
0E6F0F7D    C745 1A 645053E>mov dword ptr ss:,E8535064
0E6F0F84    04 00         add al,0
0E6F0F86    0000            add byte ptr ds:,al
0E6F0F88    8DB5 D4666658   lea esi,dword ptr ss:
0E6F0F8E    3BF6            cmp esi,esi
0E6F0F90    66:5B         pop bx


来到这里
0E6F0FF4   /0F84 EB300000   je 0E6F40E5      
0E6F0FFA   |60            pushad         
0E6F0FFB   |E8 03000000   call 0E6F1003
0E6F1000   |D2EB            shr bl,cl
0E6F1002   |0A58 EB         or bl,byte ptr ds:
0E6F1005   |0148 40         add dword ptr ds:,ecx
0E6F1008   |EB 01         jmp short 0E6F100B
0E6F100A   |35 FFE06181   xor eax,8161E0FF
0E6F100F   |3B9404 B2D9EB03 cmp edx,dword ptr ss:
0E6F1016   |C784E8 0F841A35>mov dword ptr ds:,2EB00>
0E6F1021   |0FE850 52       psubsb mm2,qword ptr ds:

我们要找的就是PUSHAD的地址0E6F0FFA现在按ctrl+G回到刚才叫大家记住的地址0E6F0F64


回到

0E6F0F64    813B CC971025   cmp dword ptr ds:,251097CC
0E6F0F6A    EB 03         jmp short 0E6F0F6F

修改之后

0E6F0F64    813B CC971025   cmp dword ptr ds:,251097CC
0E6F0F6A    E9 8B000000   jmp 0E6F0FFA
0E6F0F6F    90            nop
0E6F0F70    90            nop
0E6F0F71    90            nop
0E6F0F72    90            nop
0E6F0F73    90            nop
0E6F0F74    90            nop
0E6F0F75    90            nop
0E6F0F76    90            nop

继续bp GetModuleHandleA+5,Shift+F9 通过所有异常,断下后取消断点,Alt+F9返回!

返回到这里

73653803    8BFF            mov edi,edi
73653805    55            push ebp
73653806    8BEC            mov ebp,esp
73653808    E8 D90CFFFF   call 736444E6
7365380D    85C0            test eax,eax
7365380F    74 11         je short 73653822
73653811    8B4D 0C         mov ecx,dword ptr ss:

3.下命令行断点hr 0012FFB0,Shift+F9中断3次!




取消断点!!

命令行下tc ebp==12FFC0(12FFC0=12FFC4-4) //12FFC4是壳入口处的ESP值

右键--分析代码,



00401128 >68 448D4000   push Baby 00408D44                  
0040112D    E8 F0FFFFFF   call <jmp.&MSVBVM60.#100>
00401132    0000            add byte ptr ds:,al
00401134    0000            add byte ptr ds:,al
00401136    0000            add byte ptr ds:,al
00401138    3000            xor byte ptr ds:,al
0040113A    0000            add byte ptr ds:,al
0040113C    3800            cmp byte ptr ds:,al
0040113E    0000            add byte ptr ds:,al
00401140    0000            add byte ptr ds:,al
00401142    0000            add byte ptr ds:,al

学习了几个月了第一次写脱文
希望大家能喜欢 呵呵~

glts 发表于 2007-10-29 02:29:37

写得很好不错 支持来个其它版本的/:08

[ 本帖最后由 glts 于 2007-10-29 02:33 编辑 ]

crackforchina 发表于 2007-10-31 11:31:59

呵呵,不错,赞一个

yosen2001 发表于 2007-10-31 15:56:09

终于看到了SVKP 1.3X 的脱 文,实在是难得呀,兄弟,顶一下~

11424549 发表于 2007-11-3 12:30:43

SVKP是一个强壳/:011
页: [1]
查看完整版本: SVKP 1.3x 手脱