前言:
看了别人的一些文章,为了用起来方便,总结了如下规律,其中*****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即可。