首页
社区
课程
招聘
脱amr求助
发表于: 2006-8-13 18:49 4270

脱amr求助

2006-8-13 18:49
4270
脱Armadillo4.4加壳的dll文件
用od加载,用论坛方法得到RvA=3c000,大小fc8
然后到oep:10004f5f
用loadpe抓取,
IRT:d000,长度:10c,用移花接木大办法抓取,修复DLL文件,发现不能替换原文件,请问:
用loadpe抓取后修复应当如何进行?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可惜权限不够,不能上传文件
2006-8-13 18:50
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
最初由 燕青 发布
然后到oep:10004f5f
用loadpe抓取,
IRT:d000,长度:10c,用移花接木大办法抓取,修复DLL文件,发现不能替换原文件,请问:
........


不知你这步是啥意思。
一般步骤:到OEP后,直接将整个映像Dump出来,然后再用ImportREC修复输入表(DLL文件修复时,必须指定IAT的地址与大小)。
2006-8-13 18:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
多谢版主指点,IRT指定地址不能抓取,所以通过拷贝IRT到另外的程序如notepad抓取
2006-8-13 18:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我想了解的是完全dump下来之后的具体操作过程,有范例更好了
2006-8-13 19:22
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 燕青 发布
我想了解的是完全dump下来之后的具体操作过程,有范例更好了

IRT是啥东西?
2006-8-13 19:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
1.Magic Jump
00985CFA    50              push    eax
00985CFB    FF15 BC629A00   call    [9A62BC]                         ; kernel32.LoadLibraryA
00985D01    8B0D AC409B00   mov     ecx, [9B40AC]
00985D07    89040E          mov     [esi+ecx], eax
00985D0A    A1 AC409B00     mov     eax, [9B40AC]
00985D0F    391C06          cmp     [esi+eax], ebx
00985D12    E9 30010000     jmp     00985E47                         ; Magic Jump 改 JE 为 JMP 避开 IAT 加密
00985D17    90              nop
00985D18    33C9            xor     ecx, ecx
00985D1A    8B07            mov     eax, [edi]
00985D1C    3918            cmp     [eax], ebx
00985D1E    74 06           je      short 00985D26

2 获得重定位信息

0099CF59    C705 E0C09A00 6>mov     dword ptr [9AC0E0], 9ACB60
0099CF63    A1 E49F9B00     mov     eax, [9B9FE4]
0099CF68    8B00            mov     eax, [eax]                       ; 这个0003c000就是重定位表的RVA
0099CF6A    8985 3CD9FFFF   mov     [ebp-26C4], eax
0099CF70    A1 E49F9B00     mov     eax, [9B9FE4]
0099CF75    83C0 04         add     eax, 4
0099CF78    A3 E49F9B00     mov     [9B9FE4], eax
0099CF7D    A1 E49F9B00     mov     eax, [9B9FE4]
0099CF82    8B00            mov     eax, [eax]                       ; 这个00000f48就是重定位表的大小

3.oep
10004F5F    55              push    ebp                              ; This is the OEP!
10004F60    8BEC            mov     ebp, esp
10004F62    53              push    ebx
10004F63    8B5D 08         mov     ebx, [ebp+8]
10004F66    56              push    esi
10004F67    8B75 0C         mov     esi, [ebp+C]
10004F6A    57              push    edi
10004F6B    8B7D 10         mov     edi, [ebp+10]
10004F6E    85F6            test    esi, esi
4.dump
用loadPE fulldump下来到dumped.dll

5寻找IRT
手动找
发现IaT在d000,长度为10c

问题是下面该如何修复这个dll,请高手指点
2006-8-13 20:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
顶一下,那位高手指点一下,不胜感激
2006-8-14 00:15
0
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
9
最初由 燕青 发布
问题是下面该如何修复这个dll,请高手指点


3楼己说明了,用ImportREC修复输入表(DLL文件修复时,必须指定IAT的地址与大小)。
重定位表的地址与大小修正一下就行。
2006-8-14 09:03
0
游客
登录 | 注册 方可回帖
返回
//