首页
社区
课程
招聘
[求助]请问dump出来数据如何修复?
发表于: 2011-3-22 16:01 9631

[求助]请问dump出来数据如何修复?

2011-3-22 16:01
9631
我使用Themida&WinLicense.V1.9.1-V2.0.X.UnPacKScript.Public.By.fxyang[CUG].txt走完脚本后,提示

VC_exe程序--IAT基地址在:58C000;IAT表长度:788;VM_OEP:77D86D;Themida Professional:2.050
然后我通过od把程序dump出去
接着我用ImportREC在OEP处输入37D86D,然后点自动查找IAT.
出现在此OEP入口点没找到任何有用的信息
请教各位该怎么做?

0077D85B    E8 00000000     call SAX8_5.0077D860
0077D860    58              pop eax
0077D861    05 0D000000     add eax,0xD
0077D866    8903            mov dword ptr ds:[ebx],eax
0077D868    E9 34410000     jmp SAX8_5.007819A1
0077D86D    68 43149F07     push 0x79F1443           //脚本执行完停在这里
0077D872  ^ E9 974CF7FF     jmp SAX8_5.006F250E
0077D877    0000            add byte ptr ds:[eax],al
0077D879    0000            add byte ptr ds:[eax],al
0077D87B    0000            add byte ptr ds:[eax],al
0077D87D    0000            add byte ptr ds:[eax],al

软件上传在这里了,各位试下自己手上的脚本能不能脱吧,能脱的放上脱好的给我,谢谢大家了
http://u.115.com/file/t5183285a3

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

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
定位一下iat,然后再ImportRE中,填入输入表那栏,再修复
2011-3-22 17:03
0
雪    币: 1149
活跃值: (888)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
3
手动定位iat 地址。。。直接找。。
2011-3-22 17:22
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
脚本过时了,请更换最新支持THEMIDA 2。0的新脚本。

推荐使用“Themida - Winlicense 1.x - 2.x Imports Fixer Edition 1.1 by SnD”的脚本,支持最新的THEMIDA版本。

0077D86D    68 43149F07     push 0x79F1443           //脚本执行完停在这里
0077D872  ^ E9 974CF7FF     jmp SAX8_5.006F250E

F7过掉这2行后下401000的内存断点,SHIFT+F9执行一下,应该可以到FOEP。

至于IAT的修复,依靠新版本的脚本来完成定位,在FOEP处分析偷取代码,还原后重新加载程序,修复IAT和真OEP处被偷取的代码后,重新定位EIP到真OEP,再DUMP。DUMP时需纠正内存镜象大小,纠正完成后完整转存,再修复IAT即可。

祝你好运!
2011-3-23 21:21
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个不行,直接跑飞了~
软件更新了,连之前的那个也跑飞了~
2011-3-24 11:39
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
修复IAT和真OEP处被偷取的代码后,重新定位EIP到真OEP,再DUMP
这个有相应的教程吗?
2011-3-24 14:30
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我推荐的这个脚本建议要修改下参数,不然可能有跑飞和被检测到OD的可能
2011-3-24 21:46
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
在论坛里多找点THEMIDA和WINLICENSE的OEP修复文章看看,程序的编程语言不同,OEP处被偷取代码的修复方法也不同。步骤我上面已经说清楚了,就看对教程文章的理解和体会了。提醒一下,脚本一般停到FOEP处,这里已经是程序调用的第1个CALL里了,通过跟踪CALL调用的堆栈和寄存器来推断和分析之前被偷取的代码,找真OEP也需要技巧的。熟能生巧而已。
2011-3-24 21:50
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
怎么在UNPACK上也看到一个一样的贴子哈,是楼主发的么?
2011-3-24 22:09
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
那个不是我发的~不过我也有号在那~
就是看到那有人和我一样的问题,没人解决,就发来这里看看有没有帮忙解决.很谢谢你的解答,收获不少~再次感谢~
2011-3-25 08:25
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
需要修改的参数有哪些?可以告知一下吗?谢谢~
2011-3-25 11:39
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
call VAR
eval "STARTUP INFO BOX: \r\n\r\n******************** \r\n1 = YES 0 = NO \r\nEnabled! | Disabled!\r\n\r\n********************\r\n\r\n{A1} {version_check} \r\n\r\n{A2}             {UseVM} \r\n\r\n{A3}              {kill_dd} \r\n\r\n{A4}               {highv} \r\n\r\n{A5}      {PE_anti_dis} \r\n\r\n{A6}     {allocsize} \r\n\r\n******************** \r\n\r\n quosego & LCF-AT"

这是脚本里的参数代码,脚本里有详细的说明,你可以尝试关掉某个参数,看是否可以适应新版本的THEMIDA。
2011-3-25 21:59
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
再次感谢你的指导~
2011-3-25 22:46
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
脚本全禁了~照样跑飞~
2011-3-26 10:49
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我看了下程序,用脚本确实跟飞了,只能手动跟踪了。通过跟踪,确定了IAT地址内容和OEP处被偷取的代码,才算完全修复。

我找到的IAT部分数据地址:

0058E000  77DAE9F4  advapi32.RegCreateKeyExA
0058E004  77DCBB8D  advapi32.RegQueryValueA
0058E008  77DCBCF3  advapi32.RegCreateKeyA
0058E00C  77DAEAE7  advapi32.RegSetValueExA

........

0058E774  7633C1C1  comdlg32.ChooseFontA
0058E778  00000000
0058E77C  769E320F  ole32.OleUninitialize
0058E780  769E0905  ole32.CLSIDFromString
0058E784  769B1BE2  ole32.OleInitialize
0058E788  00000000

需要强调的是,有个函数被加密了,但跟踪后得到真实的函数名
0058E6A4  00775D8A  SAX8_5.00775D8A          其实被加密的是这个函数(wsprintfA)

按上面的地址内容为参考修复IAT成功!

但下内存断点进OEP时,遇到了伪指令,确实很费解,如下是我补的OEP代码,程序脱出来就知道是VC程序了,所以按VC程序的OEP头来修复。

00558F39 >  55                 push ebp
00558F3A    8BEC               mov ebp,esp

00558F3C    6A FF              push -1   
00558F3E    68 00375E00        push dumped_.005E36A8      
00558F43    68 64B85500        push dumped_.0055B864     
//上面这三个参数在堆栈里,看截图的堆栈窗部分黄色内容加上面的两行,呵呵

00558F48    64:A1 00000000     mov eax,dword ptr fs:[0]
00558F4E    50                 push eax
00558F4F    64:8925 00000000   mov dword ptr fs:[0],esp
00558F56    83EC 58            sub esp,58
00558F59    53                 push ebx

这上面的部分是被偷取的代码,下面是FOEP部分
00558F5A    56                 push esi
00558F5B    57                 push edi
00558F5C    8965 E8            mov dword ptr ss:[ebp-18],esp
00558F5F    90                 nop
00558F60    E8 15832B7C        call kernel32.GetVersion

补齐OEP处被偷取的代码,并重新定位EIP到00558F39,DUMP之。再修复IAT,完成。检测脱壳后程序可正常执行,收工了!
上传的附件:
2011-3-26 23:54
0
游客
登录 | 注册 方可回帖
返回
//