首页
社区
课程
招聘
[旧帖] [原创]轻松手动脱壳ASPack 2.12 0.00雪花
发表于: 2008-1-28 20:56 6552

[旧帖] [原创]轻松手动脱壳ASPack 2.12 0.00雪花

2008-1-28 20:56
6552
【文章标题】: 轻松手动脱壳ASPack 2.12 -> Alexey Solodovnikov
【文章作者】: cnstars
【作者邮箱】: cnstars@21cn.com
【作者QQ号】: 8202655
【软件名称】: *******投票机
【软件大小】: 0.835M
【下载地址】: 自己搜索下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【保护方式】: ASPack 2.12 -> Alexey Solodovnikov
【编写语言】: VB
【使用工具】: OD、PEID
【操作平台】: WINXP+ SP2
【软件介绍】: *******投票机软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【方法介绍】: 通常采用ASPACK自动脱壳机和OLLYDBG手动脱壳
【经验总结】: 动态调试时找到大的跳转即为OEP,然后DUMP,用ImportREC v1.6F修复输入表IAT即可。
  1、在ASPACK中PUSGAD 与POPAD 成对,找到POPAD即离OEP 很近。
  2、向未执行过的代码跳的语句按F8,往已执行过的代码跳的语句在下一句处按F4。脱壳过程中一定不能让它往执行过的代码区跳,想办法跳出循环圈,在回跳语句的下一句处按F4跳出。

--------------------------------------------------------------------------------
【详细过程】
  脱壳前先用PEID查壳,得出为ASPack 2.12 -> Alexey Solodovnikov加壳类型。使用OD脱壳可增强手动脱能力
00452001 >  60              pushad                      ; pushhad关键字 F8跳过
00452002    E8 03000000     call    0045200A            ; 关键CALL F7进入
00452007  - E9 EB045D45     jmp     45A224F7
0045200C    55              push    ebp
0045200D    C3              retn
=====进入call 0045200A代码区=====
00452008   /EB 04           jmp     short 0045200E
0045200A    5D              pop     ebp   ; fjsdmp-1.00452007(按F8,向前跳的按F8,往后跳的在下一句按F4)
0045200B    45              inc     ebp
0045200C    55              push    ebp
0045200D    C3              retn                ;第一次返回时,跳转到00452008
0045200E    E8 01000000     call    00452014    ;只有00452002和此处是关键CALL按F7进入,其他F8跳过
………………………进CALL后一路F8下来……………………
0045212D    0BC9            or      ecx, ecx
0045212F    74 2E           je      short 0045215F
00452131    78 2C           js      short 0045215F
00452133    AC              lods    byte ptr [esi]
00452134    3C E8           cmp     al, 0E8
00452136    74 0A           je      short 00452142
00452138    EB 00           jmp     short 0045213A
0045213A    3C E9           cmp     al, 0E9
0045213C    74 04           je      short 00452142
0045213E    43              inc     ebx
0045213F    49              dec     ecx
00452140  ^ EB EB           jmp     short 0045212D  ; 不能让他朝回跳到0045212D,要在下一句处下断按F4
00452142    8B06            mov     eax, [esi]       ; 按F4
00452144    EB 00           jmp     short 00452146
00452146    803E 05         cmp     byte ptr [esi], 5
00452149  ^ 75 F3           jnz     short 0045213E  ; 不能让他朝回跳到0045213E,要在下一句处下断按F4
0045214B    24 00           and     al, 0          ; 按F4
0045214D    C1C0 18         rol     eax, 18
00452150    2BC3            sub     eax, ebx
00452152    8906            mov     [esi], eax
00452154    83C3 05         add     ebx, 5
00452157    83C6 04         add     esi, 4
0045215A    83E9 05         sub     ecx, 5
0045215D  ^ EB CE           jmp     short 0045212D  ; 不能让他朝回跳到0045212D,要在下一句处下断按F4
0045215F    5B              pop     ebx             ; 按F4
00452160    5E              pop     esi
00452161    59              pop     ecx
00452162    58              pop     eax
00452163    EB 08           jmp     short 0045216D
………………………进JMP后一路F8下来……………………
0045216D    8BC8            mov     ecx, eax
0045216F    8B3E            mov     edi, [esi]
00452171    03BD 22040000   add     edi, [ebp+422]
00452177    8BB5 52010000   mov     esi, [ebp+152]
0045217D    C1F9 02         sar     ecx, 2
00452180    F3:A5           rep     movs dword ptr es:[edi], dword p>
00452182    8BC8            mov     ecx, eax
00452184    83E1 03         and     ecx, 3
00452187    F3:A4           rep     movs byte ptr es:[edi], byte ptr>
00452189    5E              pop     esi
0045218A    68 00800000     push    8000
0045218F    6A 00           push    0
00452191    FFB5 52010000   push    dword ptr [ebp+152]
00452197    FF95 51050000   call    [ebp+551]
0045219D    83C6 08         add     esi, 8
004521A0    833E 00         cmp     dword ptr [esi], 0
004521A3  ^ 0F85 1EFFFFFF   jnz     004520C7        ; 不能让他朝回跳到004520C7,要在下一句处下断按F4
004521A9    68 00800000     push    8000            ; 按F4下断
………………………进PUSH后一路F8下来……………………
00452305   /75 6F           jnz     short 00452376
00452307   |F7C3 00000080   test    ebx, 80000000
0045230D   |75 19           jnz     short 00452328
0045230F   |57              push    edi
00452310   |8B46 0C         mov     eax, [esi+C]
00452313   |0385 22040000   add     eax, [ebp+422]
00452319   |50              push    eax
0045231A   |53              push    ebx
0045231B   |8D85 75040000   lea     eax, [ebp+475]
00452321   |50              push    eax
00452322   |57              push    edi
00452323   |E9 98000000     jmp     004523C0
00452328   |81E3 FFFFFF7F   and     ebx, 7FFFFFFF
0045232E   |8B85 26040000   mov     eax, [ebp+426]
00452334   |3985 45050000   cmp     [ebp+545], eax
0045233A   |75 24           jnz     short 00452360
0045233C   |57              push    edi
0045233D   |8BD3            mov     edx, ebx
0045233F   |4A              dec     edx
00452340   |C1E2 02         shl     edx, 2
00452343   |8B9D 45050000   mov     ebx, [ebp+545]
00452349   |8B7B 3C         mov     edi, [ebx+3C]
0045234C   |8B7C3B 78       mov     edi, [ebx+edi+78]
00452350   |035C3B 1C       add     ebx, [ebx+edi+1C]
00452354   |8B0413          mov     eax, [ebx+edx]
00452357   |0385 45050000   add     eax, [ebp+545]
0045235D   |5F              pop     edi
0045235E   |EB 16           jmp     short 00452376
00452360   |57              push    edi
00452361   |8B46 0C         mov     eax, [esi+C]
00452364   |0385 22040000   add     eax, [ebp+422]
0045236A   |50              push    eax
0045236B   |53              push    ebx
0045236C   |8D85 C6040000   lea     eax, [ebp+4C6]
00452372   |50              push    eax
00452373   |57              push    edi
00452374   |EB 4A           jmp     short 004523C0
00452376   \8907            mov     [edi], eax
00452378    8385 49050000 0>add     dword ptr [ebp+549], 4
0045237F  ^ E9 32FFFFFF     jmp     004522B6       ; 不能让他朝回跳到004522B6,要在下一句处下断按F4
00452384    8906            mov     [esi], eax          ; 按F4下断
00452386    8946 0C         mov     [esi+C], eax
00452389    8946 10         mov     [esi+10], eax
0045238C    83C6 14         add     esi, 14
0045238F    8B95 22040000   mov     edx, [ebp+422]
00452395  ^ E9 EBFEFFFF     jmp     00452285     ; 不能让他朝回跳到00452285,要在下一句处下断按F4
0045239A    B8 842F0000     mov     eax, 2F84     ; 按F4下断
0045239F    50              push    eax
004523A0    0385 22040000   add     eax, [ebp+422]
004523A6    59              pop     ecx
004523A7    0BC9            or      ecx, ecx
004523A9    8985 A8030000   mov     [ebp+3A8], eax
004523AF    61              popad
004523B0    75 08           jnz     short 004523BA
004523B2   |B8 01000000     mov     eax, 1
004523B7   |C2 0C00         retn    0C
004523BA   \68 842F4000     push    00402F84             ; ASCII h@,关键字请注意
004523BF    C3              retn                        ; F8后跳到入口点00402F84
………………………进RETN后跳到原码入口点……………………
00402F84   ?  68 F8D64000   push    0040D6F8       ;入口点停在此处可以脱了
(点右键后选DUMP_Debugger_process脱壳调试进程,再点击DUMP脱壳。下面的我相信都会了)
00402F89      E8            db      E8
00402F8A      EE            db      EE
00402F8B      FF            db      FF
  
  
  用PEID查脱。显示PowerBASIC/Win 8.00,大功告成!!我也是个菜鸟!!写的不好,仅仅以些贴写给刚入门的菜们!!
  
  
     
  
--------------------------------------------------------------------------------
【经验总结】
  ,慢慢就会掌握OD的使用技巧。只在有信心,难学的东西都会学会。想信自已,自已搞不定的还有看学里的前辈给我们指导!第一次写关于脱壳的文章写的有点不好,请大家批评指出。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年1月28日 20:54:17

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1346
活跃值: (2331)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
沙发!终于坐到沙发,太高兴了!
2008-1-28 21:41
0
雪    币: 1657
活跃值: (291)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
LZ写的很辛苦~~~我就支持了~~~
终于找了个贴,坐到第一排了~~
2008-1-28 23:27
0
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
4
好文,学习。
顺便纠正楼主一个笔误:
  1、在ASPACK中PUSGAD 与POPAD 成对,找到POPAD即离OEP 很近。
---------------------------------------------------------------------------------------------
   PUSGAD应为PUSHAD
2008-1-29 09:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错!小弟学习了!但愿不久的将来自己也写一篇出来!
2008-1-29 21:19
0
游客
登录 | 注册 方可回帖
返回
//