现在的位置: 首页 > 综合 > 正文

如何直接修改exe文件

2014年11月20日 ⁄ 综合 ⁄ 共 674字 ⁄ 字号 评论关闭

   在以前学习的时候,无法想象在没有源码的时候如何对exe文件添加功能,觉得简直不可思议,在了解汇编和反编译的一些知识后,原来这种想法是可以实现的。我们需要对exe文件进行直接修改,把我们的代码直接写入exe文件,这样就能实现我们的功能了。
    当然,要想直接对exe文件进行直接修改必须有较好的汇编基础,对反汇编技术有一定的基础。否则会很茫然的。
    一般有两种方法可以对exe文件添加我们需要的功能。
    第一种是利用页面的对齐机制,因为一般来说,每节的最后一页多少都有空余的空间,也就是说最后一页一般不会被用完,由于下一个节开始的时候是要对齐页面的,所以这中间就由多余的空间让我们写代码了。我们可以利用工具直接把内存虚拟和文件偏移地址进行转换来得到文件偏移位置,这个位置就是我们最终要把机器码写入的地方。
    第二种是我们自己在exe文件种添加一个节,这个节专门用来写我们的代码。这样做好处更多,因为我们可以任意指定这个节的大小,而上一种方法是利用节之间的空隙来写我们的代码,如果代码较多的时候我们能就不好办了,所以第二种方法更具有通用性,但相对来说第一种更容易些。这里大家要注意一下,如果我们直接增加节的话,最好把节分配的空间设置为页面大小的整数倍,文件中分配空间的大小也分配成和虚拟空间的大小一样即可,一般文件的块对齐大小比页面的块对齐尺寸更小。
    还要注意的一点就是,如果我们对exe文件增加节以后,可能会出现exe文件无法运行的情况,这时候一般我们对exe文件进行重建就可以了。
    希望能对喜欢反汇编的朋友能有帮助
  

抱歉!评论已关闭.