首页
社区
课程
招聘
Armadillo 1.xx-2.xx的快速脱壳-基本模式IAT加密
发表于: 2005-4-19 10:03 5355

Armadillo 1.xx-2.xx的快速脱壳-基本模式IAT加密

2005-4-19 10:03
5355
某软件用PEID查是:Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks
用PEID的插件可以直接找到OIP为00456460,
用OD载入,直接G 00456460,中间有很多异常,大概十多个
到入口点可以看到
00456486     FF15 0444E600        call dword ptr ds:[E64404]
用D 0E64404看一下这里是什么东西,用Dword来查看,输入DD回车.
可以看到这个地址下面全部是Kernel32.dll中的函数.
然后我们对这个地址下写入断点.
重新运行这个程序,(我们前面对0E64404这个地址下了Dword的写入断点)
然后程序会在
780109B3   F3:A5    rep movs dword ptr es:[edi],dword ptr ds:[esi]
这里是拷贝的加密后的IAT,不管他
继续G,会到下面的地方中断,
015461D3   8908     mov dword ptr ds:[eax],ecx
这里其实就是还原IAT的地方了.
向上分析代码,可以看到有个
01546052   FF1548F35401 call dword ptr ds:[154F348]  ; MSVCRT._stricmp
这里就是Armadillo对几个函数进行关照的地方.
接着分析前面一点,
01545FF7     83BD 98C4FFFF 00     cmp dword ptr ss:[ebp-3B68],0
01545FFE     74 71                je short 01546071
其实仔细分析这里其实就是在比较是不是把它要特别关照的函数比较完了,
重新运行程序,清除以前所有断点,在下面的那个je ***那里下硬件断点.
或者直接G过去,然后把je ***改成JMP就可以直接跳过这部分
也就是这样下来的IAT还原后没有被Hook的函数了
然后跟踪一圈还原IAT的大循环,
可以发现在下面的时候就已经还原完成了
015462D9   jmp 01545ABE        ; 运行到下面一行就还原完成了
015462DE   mov eax,dword ptr ss:[ebp-3910]
015462E4   mov dword ptr ss:[ebp+FFFFAFD0],eax
015462EA   push dword ptr ss:[ebp+FFFFAFD0]
015462F0   call 0154E17C       ; jmp to MSVCRT.operator delete
这里有个完成的标志函数
jmp to MSVCRT.operator delete,前面还有一个向上跳转的JMP.
然后我们直接G到015462DE   mov eax,dword ptr ss:[ebp-3910]
还记得我们前面改了一个je ****的吗?还原回来,要不后面的解码会失败
这步完成后就直接G入口点,然后DUMP后用ImportREC重建IAT就可以了

脱壳后的修复问题:脱壳后文件很大,有12M多.
直接用PE重建会不能运行,我们可以这样,
用LPE-DLX打开,看到区段最后有个.rsrc节,
先把节转存出来,记住这个节的起始地址;
我的为00B88000,然后看壳代码的位置:
.text1开始为00A88000,,我们现在把PE中.text1和以后的节全部删除掉
然后算出.text1节前面一个节的文件偏移结束位置,用WinHEX把多余的数据删除
然后用LPE-DLX打开,选择从文件添加一个节,选择刚才.rsrc节保存出来的文件.
然后把资源中相关的指针修正了在做IAT重建就可以了
我最后修复后文件为1.4M左右.呵呵

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还有一个问题没有说:就是ImportREC重建IAT的时候不要用自动搜索,
我们直接查看导入地址表,那样来填写RAV和大小,IAT搜索的大小要写大点
,然后直接搜索,然后把里面不认识的函数直接删除,不要进行Hook执行什么的,呵呵,然后重建IAT就搞定
2005-4-19 10:14
0
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
厉害!不过不明白!
2005-4-19 10:47
0
游客
登录 | 注册 方可回帖
返回
//