一:半手动定位RVA
1,OD载入程序并走到OEP。
2,用OD脱壳(method 1)或用LordPe脱壳。
3,用Import reconstructor 找到进程,输入OEP-->自动搜索IAT,记录下RVA。
4,会到OD数据窗口界面,ctrl+G -->输入RVA+基址(就是VA,基址的话看其他的地址就知道了,一般就是100000)跟随。
5,上下查看有函数的起始和终止地址,记录下起始地址,和大小(终止地址-起始地址)。
6,回到Import reconstructor 输入OEP,RVA,大小-->获取输入表--显示无效函数-->追踪级别1(fsg2.0不用追踪)-->显示无效函数-->剪切指针。
7,抓取转存文件。
二:手动定位RVA
1,OD载入程序并走到OEP。
2,在入口附近找到调用函数(如:fsg2.0的第一个调用函数是:GetModuleHandleA),在函数所在行-->右键-->数据窗口中跟随-->内存地址。
3,来到数据窗口,上下查看有函数的起始和终止地址,记录下起始地址,和大小(终止地址-起始地址)。
4,用OD脱壳(method 1)或用LordPe脱壳。
5,用Import reconstructor 找到进程, 输入OEP,RVA,大小-->获取输入表--显示无效函数-->追踪级别1-->显示无效函数-->剪切指针。
6,抓取转存文件。
Btw:IAT大小一般情况下可以填写1000,不影响修复,但会有需要垃圾指针出现.
方法二比较好。当Import reconstructor ;连一个函数都找不到就只有用方法二了。