| 
注册时间2007-8-7
阅读权限20
最后登录1970-1-1UID33548 以武会友  
 
 TA的每日心情|  | 开心 2024-1-27 00:17
 | 
|---|
 签到天数: 17 天 [LV.4]偶尔看看III | 
 
| 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 23000000  mov al,byte ptr fs:[23]
 0040E01A    EB 03           jmp short Baby.0040E01F
 0040E01C    C784E8 84C0EB03>mov dword ptr ds:[eax+ebp*8+3EBC084],75E984>
 0040E027    67:B9 49000000  mov ecx,49
 0040E02D    8DB5 C5020000   lea esi,dword ptr ss:[ebp+2C5]
 
 下段 bp GetModuleHandleA+5,Shift+F9 两次,断下后取消断点,Alt+F9返回!
 
 
 
 
 7C80B6A6    837D 08 00      cmp dword ptr ss:[ebp+8],0  段在这里 取消短点
 7C80B6AA    74 18           je short kernel32.7C80B6C4
 7C80B6AC    FF75 08         push dword ptr ss:[ebp+8]
 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:[eax+4]
 7C80B6BB    E8 7D2D0000     call kernel32.GetModuleHandleW
 7C80B6C0    5D              pop ebp
 7C80B6C1    C2 0400         retn 4
 
 
 0012F83C  /0012F884
 0012F840  |66001BC5  返回到 MSVBVM60.66001BC5 来自 kernel32.GetModuleHandleA
 0012F844  |6600F4D0  ASCII "kernel32.dll"
 0012F848  |66001B64  返回到 MSVBVM60.66001B64 来自 MSVBVM60.66001B90
 0012F84C  |66000000  offset MSVBVM60.#1374
 
 
 
 0E6F08BC    60              pushad                    返回在这里
 0E6F08BD    E8 03000000     call 0E6F08C5
 0E6F08C2    D2EB            shr bl,cl
 0E6F08C4    0A58 EB         or bl,byte ptr ds:[eax-15]
 0E6F08C7    0148 40         add dword ptr ds:[eax+40],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:[edi],eax
 
 
 双击第最后一个来到这里
 0E6F2B9C    8907            mov dword ptr ds:[edi],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],eax
 0E6F2BA9    0000            add byte ptr ds:[eax],al
 0E6F2BAB    9A 83C404EB 02C>call far CD02:EB04C483
 0E6F2BB2    2083 8583E101   and byte ptr ds:[ebx+1E18385],al
 0E6F2BB8    0004EB          add byte ptr ds:[ebx+ebp*8],al
 0E6F2BBB    020F            add cl,byte ptr ds:[edi]
 0E6F2BBD    9A E965E0FF FFE>call far E8FF:FFE065E9
 0E6F2BC4    0200            add al,byte ptr ds:[eax]
 0E6F2BC6    0000            add byte ptr ds:[eax],al
 0E6F2BC8    CD20 83042408   vxdcall 8240483
 
 
 用OD 带的 SVKP 1.32插件去下花指令!
 
 
 0E6F2B9C    8907            mov dword ptr ds:[edi],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:[edi],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:[edi],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:[ebx],251097CC  //用来处理特殊加密
 
 
 双机第一段 来到
 
 0E6F0F64    813B CC971025   cmp dword ptr ds:[ebx],251097CC       停在这里 //F2下断 shirt+F9运行
 取消断点  F8单步向下(遇到CALL按F7跟进)
 0E6F0F6A    EB 03           jmp short 0E6F0F6F
 0E6F0F6C    C784E9 0F844330>mov dword ptr ds:[ecx+ebp*8+3043840F],32E80>
 0E6F0F77    0000            add byte ptr ds:[eax],al
 0E6F0F79    00C3            add bl,al
 0E6F0F7B    EB 04           jmp short 0E6F0F81
 0E6F0F7D    C745 1A 645053E>mov dword ptr ss:[ebp+1A],E8535064
 0E6F0F84    04 00           add al,0
 0E6F0F86    0000            add byte ptr ds:[eax],al
 0E6F0F88    8DB5 D4666658   lea esi,dword ptr ss:[ebp+586666D4]
 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:[eax-15]
 0E6F1005   |0148 40         add dword ptr ds:[eax+40],ecx
 0E6F1008   |EB 01           jmp short 0E6F100B
 0E6F100A   |35 FFE06181     xor eax,8161E0FF
 0E6F100F   |3B9404 B2D9EB03 cmp edx,dword ptr ss:[esp+eax+3EBD9B2]
 0E6F1016   |C784E8 0F841A35>mov dword ptr ds:[eax+ebp*8+351A840F],2EB00>
 0E6F1021   |0FE850 52       psubsb mm2,qword ptr ds:[eax+52]
 
 我们要找的就是PUSHAD的地址0E6F0FFA  现在按ctrl+G回到刚才叫大家记住的地址0E6F0F64
 
 
 回到
 
 0E6F0F64    813B CC971025   cmp dword ptr ds:[ebx],251097CC
 0E6F0F6A    EB 03           jmp short 0E6F0F6F
 
 修改之后
 
 0E6F0F64    813B CC971025   cmp dword ptr ds:[ebx],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:[ebp+C]
 
 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:[eax],al
 00401134    0000            add byte ptr ds:[eax],al
 00401136    0000            add byte ptr ds:[eax],al
 00401138    3000            xor byte ptr ds:[eax],al
 0040113A    0000            add byte ptr ds:[eax],al
 0040113C    3800            cmp byte ptr ds:[eax],al
 0040113E    0000            add byte ptr ds:[eax],al
 00401140    0000            add byte ptr ds:[eax],al
 00401142    0000            add byte ptr ds:[eax],al
 
 学习了几个月了  第一次写脱文
 希望大家能喜欢 呵呵~
 | 
 评分
查看全部评分
 |