(7)附加数据的处理

    这里我们简单的说下什么是附加数据,附加数据就是一段程序,程序要正常运行就需要有这段程序那么这段程序就叫做附加数据了,当然有些程序没有附加数据也可以正常运行,所以附加数据左右程序的运行是选择性的,并不绝对。

    形象得了解下什么是附加数据,就好比,TXT文本文件,如果没有系统的记事本notepad.exe是打不开的一样。那么notepad.exe就是TXT的附加数据了。

    在我们脱壳中有带附加数据的有的时候会把附加数据给脱掉,所以我们需要自己手动添加附加数据

1,脱壳并修复,修复时也没有无效函数。打开后就不能运行,可能就是附加数据丢失的原因

2,用PEID查看原程序的区段,找到最后一个区段,几下ROffset(偏移量)     RSize(大小) 

3,用WinHex(等十六进制编辑工具)同时打开原程序和脱壳修复好的程序,计算ROffset +    RSize ,得到的结果就为附加数据的起始地址,

4,在原程序中找到该起始地址所在行,数到起始地址的精确地址,(WinHex下)右键-->选择起始,拉到程序结尾-->右键-->选择终点-->右键-->编辑-->复制。

5,切换到脱壳修复好的程序,在程序的末尾-->右键-->编辑-->粘贴,保存即可。

Btw:关于附加数据的复制粘贴可以用Overlay  这款工具来做,

打开原程序和脱壳修复好的程序,直接点拷贝附加数据,它就会自动完成比对,复制和粘贴工作。  “附加数据保存”这个按钮是用比对附加数据并单独保存在一个文件中,我们可以用十六进制编辑工具获取其内容,然后手动完成粘贴工作。




参考资料:http://www.pediy.com/bbshtml/BBS6/pediy6923.htm

你可能感兴趣的:((7)附加数据的处理)