- 博客(1)
- 资源 (3)
- 收藏
- 关注
原创 那些程序开发的往事
那些关于程序开发生涯、开发语言优劣相关的文章铺天盖地、漫网飞舞,我也有幸读到几篇,一些老得皱皮的话题,实在是疲于参与讨论。倒是也想敲下几个字,记一记自己这几年来的一些经历,以防以后年老了,记忆衰退,没那么多故事给儿孙讲
2010-07-08 15:19:00 310 1
PE文件的感染C++源代码
PE文件的感染C++源代码
PE文件规定了可执行文件的格式,凡是符合此格式的文件都能在windows系统上运行。PE文件的格式暂且不谈,说一些感染PE文件的几种途径。
导入表感染。这个涉及比较复杂的操作,首先,要自行写一个dll文件,提供程序中对原dll引用的所有函数,然后增加一个节区,修改ImportAddress中的地址,使其指向新增加的节,这样,程序加载后,只要调用相关函数,就会先执行自己写的dll,执行完后,再跳转到原代码人口处执行。
导入地址感染。这个相对简单些,在PE文件头部分,IMAGE_OPTION_HEADER中有个ImportAddress目录,这个目录中只是一些jmp指令,我们可以修改jmp指令跳转的地址,使其指向在PE文件中我们新增加的代码。这需要在原PE文件中增加代码,PE文件在硬盘上默认200H字节对齐,一般存有空隙,如果代码量小,不用增加新节就可以插入代码。
修改入口函数地址。这个是最省事的办法,在原PE文件中新增加一个节,计算新节的RVA,然后修改入口代码,使其指向新增加的节。当然,如果.text节空隙足够大的话,不用添加新节也可以。
修改快捷方式文件。如果PE文件存在快捷方式,可以先行感染快捷方式,使快捷方式指向自己写的程序,自写程序启动后,再执行真正的PE文件。这种做法比较猥琐,而且不可靠。
2010-01-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人