首页
社区
课程
招聘
FLY版主的脱ASPACK的DLL壳:RAV是怎么得到的?
发表于: 2004-10-12 13:19 4415

FLY版主的脱ASPACK的DLL壳:RAV是怎么得到的?

2004-10-12 13:19
4415
这是FLY版主的
用Ollydbg手脱ASPack加壳的DLL

003B71DE     8BC2                mov eax,edx
003B71E0     C1E8 10             shr eax,10
003B71E3     33DB                xor ebx,ebx
003B71E5     8BB5 39050000       mov esi,dword ptr ss:[ebp+539]
//[ebp+539]=003B754C=00006000 ★ 这个00006000就是重定位表的RVA!
------------------------------------------------
003B71EB     03B5 22040000       add esi,dword ptr ss:[ebp+422]
003B71F1     833E 00             cmp dword ptr ds:[esi],0
003B71F4     74 61               je short EdrLib.003B7257

上面这行看不懂啊//[ebp+539]=003B754C=00006000

[ebp+539]是怎么等于003B754C的?  003B754C又怎么等于00006000的??

请大家给详细讲解一下。。谢谢

[课程]Linux pwn 探索篇!

收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
到达这个位置后看转存
Ctrl+G:[ebp+539]

或者到达003B71EB后看ESI的值
2004-10-12 13:24
0
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
虽然不懂。但还是找到这个00006000了

谢谢回复!
2004-10-12 13:41
0
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
下面这行:

随便从程序找一个API调用,如:
003B10FD     FF15 20403B00       call dword ptr ds:[3B4020]; kernel32.GetVersion
在转存中跟随3B4020,上下看到许多函数地址,很明显的可以找到IAT开始和结束的地址:
            

代码:--------------------------------------------------------------------------------
003B3FF0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
003B4000  1D 51 C4 77 1C 3A C4 77 3E E7 C4 77 CC D2 C4 77  .Q.w.:.w>..w...w
            
003B40B0  CE 7C E5 77 05 74 E5 77 F9 81 E5 77 EB 41 E4 77  .|.w.t.w...w.A.w
003B40C0  66 C8 E5 77 3E 18 F6 77 00 00 00 00 00 00 00 00  f..w>..w........
--------------------------------------------------------------------------------

            
开始地址=003B4000
结束地址=003B40C9

我找不到这样的API调用?或者call dword ptr ds:[3B4020]; kernel32.GetVersion这个模样的?

本想照猫画虎脱个壳壳。太难了
请大家再给详细讲解一下。。谢谢
2004-10-12 16:35
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
进入OEP下面的CALL看看
2004-10-12 16:55
0
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
FLY版主:

  在你的样品DLL里面找到了。可在我要脱的DLL里面却找不到?
还有什么简单的办法能找到IAT开始和结束的地址吗?

   就差这一点就要脱掉我的第一个壳壳了!
2004-10-12 22:40
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
最初由 金熊猫 发布
FLY版主:

在你的样品DLL里面找到了。可在我要脱的DLL里面却找不到?
还有什么简单的办法能找到IAT开始和结束的地址吗?

........


ASPack没有加密输入表,可以直接找到IAT RVA,这样就不需要用ImportREC修复
具体看《加密与解密2》里的操作
2004-10-12 23:38
0
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
本来想走捷径脱掉这个壳就行啦。现在看来还得深入学习,苦苦

谢谢FLY版主热心帮助!
2004-10-13 00:12
0
雪    币: 155
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习中。
2004-10-13 21:37
0
游客
登录 | 注册 方可回帖
返回
//