首页
社区
课程
招聘
脱Themida 1.8.X的程序VC6的OEP还原遇到难题
发表于: 2007-5-7 00:08 5346

脱Themida 1.8.X的程序VC6的OEP还原遇到难题

2007-5-7 00:08
5346
脱Themida 1.8.X的程序遇到难题
关于VC6.0的恢复
在领悟VC7和VC8后,对VC6的脱OEP开刀
请高手指点一下恢复的入手点
用脚本运行后

0041B997    8BEC            MOV EBP,ESP
0041B999    6A FF           PUSH -1
0041B99B    68 A8644400     PUSH Lord3G.004464A8
0041B9A0    68 E80A4200     PUSH Lord3G.00420AE8
0041B9A5    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
0041B9AB    50              PUSH EAX
0041B9AC    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
0041B9B3    83EC 58         SUB ESP,58
0041B9B6    53              PUSH EBX
0041B9B7    56              PUSH ESI
0041B9B8    57              PUSH EDI
0041B9B9    8965 E8         MOV DWORD PTR SS:[EBP-18],ESP
0041B9BC    FF15 18F34300   CALL DWORD PTR DS:[43F318]               ; kernel32.GetVersion
0041B9C2    33D2            XOR EDX,EDX
0041B9C4    8AD4            MOV DL,AH
0041B9C6    8915 D43E4500   MOV DWORD PTR DS:[453ED4],EDX
0041B9CC    8BC8            MOV ECX,EAX
0041B9CE    81E1 FF000000   AND ECX,0FF
0041B9D4    890D D03E4500   MOV DWORD PTR DS:[453ED0],ECX
0041B9DA    C1E1 08         SHL ECX,8
0041B9DD    03CA            ADD ECX,EDX
0041B9DF    890D CC3E4500   MOV DWORD PTR DS:[453ECC],ECX
0041B9E5    C1E8 10         SHR EAX,10
0041B9E8    A3 C83E4500     MOV DWORD PTR DS:[453EC8],EAX
0041B9ED    6A 01           PUSH 1
0041B9EF    E8 C0270000     CALL Lord3G.0041E1B4
0041B9F4    59              POP ECX
0041B9F5    85C0            TEST EAX,EAX
0041B9F7    75 08           JNZ SHORT Lord3G.0041BA01
0041B9F9    6A 1C           PUSH 1C
0041B9FB    E8 C3000000     CALL Lord3G.0041BAC3
0041BA00    59              POP ECX
0041BA01    E8 66240000     CALL Lord3G.0041DE6C
0041BA06    85C0            TEST EAX,EAX
0041BA08    75 08           JNZ SHORT Lord3G.0041BA12
0041BA0A    6A 10           PUSH 10
0041BA0C    E8 B2000000     CALL Lord3G.0041BAC3
0041BA11    59              POP ECX
0041BA12    33F6            XOR ESI,ESI
0041BA14    8975 FC         MOV DWORD PTR SS:[EBP-4],ESI
0041BA17    E8 AE3A0000     CALL Lord3G.0041F4CA
0041BA1C    FF15 4CF14300   CALL DWORD PTR DS:[43F14C]               ; kernel32.GetCommandLineA

------------------------------
看来是一个用VC6.0写的程序
于是我正好拿出前两天用VC6写的一个的辅助  OD一看,
没头绪了,好多不同,入手点在哪 ,怎么还原
对比代码如下
-------------------------------

00401FB1  |.  8BEC          MOV EBP,ESP
00401FB3  |.  6A FF         PUSH -1
00401FB5  |.  68 60544100   PUSH sun_key.00415460
00401FBA  |.  68 18224000   PUSH <JMP.&MSVCRTD._except_handler3>     ;  SE 处理程序安装
00401FBF  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00401FC5  |.  50            PUSH EAX
00401FC6  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00401FCD  |.  83C4 94       ADD ESP,-6C
00401FD0  |.  53            PUSH EBX
00401FD1  |.  56            PUSH ESI
00401FD2  |.  57            PUSH EDI
00401FD3  |.  8965 E8       MOV DWORD PTR SS:[EBP-18],ESP
00401FD6  |.  C745 FC 00000>MOV DWORD PTR SS:[EBP-4],0
00401FDD  |.  6A 02         PUSH 2
00401FDF  |.  FF15 80764100 CALL DWORD PTR DS:[<&MSVCRTD.__set_app_t>;  MSVCRTD.__set_app_type
00401FE5  |.  83C4 04       ADD ESP,4
00401FE8  |.  C705 C0684100>MOV DWORD PTR DS:[4168C0],-1
00401FF2  |.  A1 C0684100   MOV EAX,DWORD PTR DS:[4168C0]
00401FF7  |.  A3 D0684100   MOV DWORD PTR DS:[4168D0],EAX
00401FFC  |.  FF15 7C764100 CALL DWORD PTR DS:[<&MSVCRTD.__p__fmode>>;  MSVCRTD.__p__fmode
00402002  |.  8B0D AC684100 MOV ECX,DWORD PTR DS:[4168AC]
00402008  |.  8908          MOV DWORD PTR DS:[EAX],ECX
0040200A  |.  FF15 78764100 CALL DWORD PTR DS:[<&MSVCRTD.__p__commod>;  MSVCRTD.__p__commode
00402010  |.  8B15 A8684100 MOV EDX,DWORD PTR DS:[4168A8]
00402016  |.  8910          MOV DWORD PTR DS:[EAX],EDX
00402018  |.  A1 74764100   MOV EAX,DWORD PTR DS:[<&MSVCRTD._adjust_>
0040201D  |.  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040201F  |.  890D B4684100 MOV DWORD PTR DS:[4168B4],ECX

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这么多不同
我程序用的MFC
可能这个原因吗

还是这个不用是VC6写的?
2007-5-7 00:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
为什么我用VC6写的程序,MFC的(EXE)
PE一看是Microsoft Visual C++ 5.0 [调试]

而在网上下载的别人的程序用VC6编译后是PE看到的是VC6呢
2007-5-7 22:33
0
雪    币: 277
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
看样子好像就是第一句没有吧?
你找的参照程序都是c,可是类型不一样。你可以看一下flashget
应该加上这一句就行了
0041B996    55              push ebp
2007-5-8 07:27
0
游客
登录 | 注册 方可回帖
返回
//