-
-
[求助]脱aspack 2.12 加密的 dll文件
-
发表于:
2011-12-13 14:15
6161
-
[求助]脱aspack 2.12 加密的 dll文件
dll
ActivateKey.zip
我按照以下流程脱壳修复,dll不能运行,求指导
先用od载入断在
01364001 Activ> 60 pushad 载入断在这里
01364002 E8 03000000 call Activate.0136400A
01364007 - E9 EB045D45 jmp 469344F7
0136400C 55 push ebp
0136400D C3 retn
F8执行pushad,这时esp为0006fc38
hr 0006fc38 下硬件断点,f9 断在
01720190 - FFE0 jmp eax ; Activate.01261DB4
f8到达oep
01261DB4 55 push ebp ; oep
01261DB5 8BEC mov ebp,esp
01261DB7 83C4 C4 add esp,-3C
01261DBA B8 AC182601 mov eax,Activate.012618AC
用loadpe dump 内存镜像保存为 unpack.dll
根据oep的虚拟地址和内存基址计算得到 oep rva 为 F1DB4
启动importrec
oep rva 输入上面计算得到的 F1DB4
报可能发现了iat,获取输入表,已添加
修复存储文件成功
->> 选择的模块: d:\加密解密\activatekey.dll
镜像基址:01170000 大小:0015C000
原始 IAT RVA 发现于: 000FC60C 位于块 RVA: 000FC000 大小:00003000
IAT 读取成功.
---------------------------------------------------------------------------------------------------------------------------
当前输入表:
1 (十进制:1) 个有效模块 (已添加: +1 (十进制:+1))
2A (十进制:42) 个输入函数. (已添加: +2A (十进制:+42))
---------------------------------------------------------------------------------------------------------------------------
修正转储文件...
1 (十进制:1) 个模块
2A (十进制:42) 个输入函数.
*** 成功添加了新节. RVA:0015C000 大小:00001000
镜像输入表描述符大小: 14; 总共长度: 2EE
D:\加密解密\Unpack_.dll 保存成功.
这里修复完了输入表
下面重定位表,参照fly的那篇文章,拷贝两个原dll,载入,用loadpe查看两个载入的dll的基址并dump两个内存镜像出来
用relox 对比这两个dump出的镜像获得重定向数据,然后修复刚刚已经修复输入表的那个dll,这里选择需要重定向的区段的时候,我不知道选那个,我只选了第一个,修复dll不能运行。全选也不能运行。运行报错都是不能写入一些内存值,应该都是重定位有问题。请大家指导一下,以上过程的问题所在,及最后一个修复输入表肯定是错的也需要指导,谢谢有空的大牛。
几个截图
[课程]Linux pwn 探索篇!