[原创]WinLicense 2.1.0.0 脱壳

Eddy 发布于2010-7-22 17:12:11 分类: 技术心得 已浏览loading 网友评论0条 我要评论

目标程序是我自己用WinLicense 2.1.0.0加的一个VB程序,保护选项默认。刚开始很灵异,最后换了个OD脱壳才OK……

工具:原版英文OD+StrongOD

用到的脚本是:Themida + WinLicense 1.1.0.0 - 2.1.0.0 Dumper + IAT Repair + CodeEncrypt Repair v2.6.0

OD载入程序,跑脚本,等待……^_

最后停在如下代码处:

0040D700   60               PUSHAD             ---停在这里
0040D701   9C               PUSHFD
0040D702   50               PUSH EAX
0040D703   54               PUSH ESP
0040D704   6A 04            PUSH 4
0040D706   68 00100000      PUSH 1000
0040D70B   68 00004000      PUSH 123.00400000
0040D710   FF15 F80F4000    CALL DWORD PTR DS:[400FF8]               ; kernel32.VirtualProtect
0040D716   58               POP EAX
0040D717   C7C6 00D24000    MOV ESI,123.0040D200
0040D71D   C7C7 00004000    MOV EDI,123.00400000
0040D723   C7C1 00050000    MOV ECX,500
0040D729   F3:A4            REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
0040D72B   C705 9C174000 FF>MOV DWORD PTR DS:[40179C],115C25FF
0040D735   C705 A0174000 40>MOV DWORD PTR DS:[4017A0],40
0040D73F   9D               POPFD
0040D740   61               POPAD
0040D741  -E9 5640FFFF      JMP 123.0040179C                         ; JMP to msvbvm60.ThunRTMain

F8单步走,一直到0040D741处,jmp回去。这是在修复最后一个API。

0040179C  -FF25 5C114000    JMP DWORD PTR DS:[40115C]                ; msvbvm60.ThunRTMain

到这里后,根据堆栈中内容和VB入口特征补上OEP处代码:

004017A2   68 C0254000      PUSH 123.004025C0                        ; ASCII "VB5!6&vb6chs.dll"
004017A7   E8 EEFFFFFF      CALL 123.0040179A

堆栈显示如下:

0012FF40   004E1DA7  123.004E1DA7
0012FF44   004025C0  ASCII "VB5!6&vb6chs.dll"
0012FF48   73476A6E  msvbvm60.73476A6E
0012FF4C   004F1D9F  123.004F1D9F
0012FF50   02F20005
0012FF54   004F3D93  123.004F3D93
0012FF58   00000000
0012FF5C   73474C6D  msvbvm60.__vbaI4ErrVar

最后在004017A2新建EIP。

LordPE dump+ ImportREC 修复。脱壳完毕,运行正常,OK!

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/technique/451.html     欢迎订阅Eddy Blog

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言