|
对于依赖文件的跟踪,我采取的是静态与动态相结合。
静态,就是在TotalCommander中,安装Fileinfo插件,在要分析的程序上按F3,打开文件信息窗口;再按“DLL依赖”面板,从中就可直接看到它所依赖的基本DLL是哪些了!对于标红的重点关注。注意有些是指向当前系统目录的,则也是怀疑对象,因为当前目录没有它要的,就按照搜索路径找到系统目录去了。
动态,就是采用Procmon之类实时监控程序的运行,Ctrl+H进行进程过滤,只查看与要监控的程序相关的活动。对于结果中显示SUCCESS的,右键,排除之。通常只需右键包含NAME NOT FOUND的即可。注意有时要监控多次,发现少了什么,补充过来,再测试,可能还会有新的缺少的文件。
至于注册表,当然是比较法,使用Advanced Registry Tracer,先扫描当前注册表,然后做一下相关设置,再扫描一下注册表,然后比较前后两次扫描结果,导出re.reg,手工去除无关的注册表垃圾,即可得到与设置相关的注册表内容。
比如我在纯手工制作PE时,一开始比较原始,进入到CMD界面后,运行Explorer后没反应,于是在命令行运行硬盘上备用的Total Commander,找到PE的Explorer.exe,按F3,查看DLL依赖,瞬间就知道它缺少了什么!于是从硬盘的备用系统中复制相关文件过来,继续测试……如此可极快地搞定缺少的文件。
最麻烦的是有些时候无法静态跟踪,动态查看也找不到线索的,那就靠拼人品和时间了~!@#$%^
上述办法,非常简单直观,比逐个蛮办法测试要高效得多。供大家参考。 |
|