编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
ImportREC是款功能强大、操作简单的输入表重建工具,同时也是款手动脱壳软件,它可以从杂乱的IAT中重建一个新的Import表,用它配合手动脱壳,可以脱UPX、CDilla1、PECompact、PKLite32、Shrinker、ASPack、ASProtect等壳。
在运行Import REConstructor之前,必须满足如下条件
1) 目标文件己完全被Dump到另一文件;
2) 目标文件必须正在运行中;
3) 事先要找到真正的入口点(OEP);
4) 最好加载IceDump,这样建立的输入表较少存在跨平台的问题。
ImportREC使用方法
1.目标文件已完全被Dump,另存为一个文件
2.目标文件必须正在运行中
3.事先找到目标程序真正的入口(OEP)或IAT的偏移与大小
以加壳RebPE.exe为例,首先OD加载:
调试到00413001,设置硬件断点hr esp
F9断下来,单步调到OEP处:
这时启用Loadpe工具,找到对应的进程,右键先执行"correct ImageSize”,再执行"dump full",保存为dumped.exe
运行ImportREC,选择RebPE.exe进程:
在右下角OEP处埴上正确的OEP的RVA值,这里填1130,默认时,ImportREC重建输入表时会同时用此值修正入口点,同时提供正确的OEP有助于分析IAT的准确位置,单击"IAT AutoSearch"按钮,让其自动检测IAT偏移和大小,如果出现:
表示输入的OEP发挥了作用,如果没有,则要手动填入IAT的RVA和大小,
单击"Get Imports"按钮,让其分析IAT结构得到基本信息,如下:
本例中所有API都被正确识别了,显示valid:YES,如果不能识别,就会显示成valid:NO,单击"Show Invalid"按钮分析所有的无效信息,
在Imported Functions Found这一窗口中单击右键,选择Thrace Level1(Disasm),再单击"Show Invalid
最后一步,把前面提出的IAT部分都加上Dump.exe,选择"Add new section",单击Fix Dump,选择刚抓取的Dump.exe,此时会生成一个叫Dump_exe的文件,而输入表会放在新增的.mackt区块上,此时IAT修复完成
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。