• 标 题:脱ASPack2.12加壳的DLL文件简便方法
  • 作 者:popo123456
  • 时 间:2004-12-18,11:15
  • 链 接:http://bbs.pediy.com

前言:
看了别人的一些文章,为了用起来方便,总结了如下规律,其中*****1A3代表虚拟地址的后3位,估计大家和我的应该一样

首先要做的就是用Lordpe查看OEP,用OD载入后计算出基址大小。

1.dump文件

在如下位置:

*****1A3 0F851EFFFFFF JNZ 00C700C7<======此处转跳若干次

*****1A9 6800800000 PUSH 00008000 <======到此处后,即可完全DUMP

2.重定位表地址以及大小的确定:

*****1E5    8BB5 39050000   MOV ESI,DWORD PTR SS:[EBP+539]<=====重定位表段的开始地址赋给ESI
*****1EB    03B5 22040000   ADD ESI,DWORD PTR SS:[EBP+422]<=====转换成VA
*****1F1    833E 00            CMP DWORD PTR DS:[ESI],0  <===ESI就是重定位表段开始的VA地址(1)

...........

*****25D    8BB5 41050000   MOV ESI,DWORD PTR SS:[EBP+541]<==ESI就是重定位表段结束的RVA地址(2)

重定位表RVA=[EBP+539],SIZE=(2)-(1)。

3.输入表开始地址的确定:

*****278    BE 70C30000     MOV ESI,0C370      <=====输入表段的开始地址赋给ESI

4.OEP确定

*****3AF    61              popad
*****3B0    75 08           jnz *****3BA
*****3B2    B8 01000000     mov eax,1
*****3B7    C2 0C00         retn 0C
*****3BA    68 D0E48B00     push *******<====真正入口点

然后用Lordpe修改OEP、重定位表RVA和大小以及输入表RVA即可。