摘要: 1、写作缘由:最近在编写PE加载器,PE文件一般由两部分组成:PE头和节,附加数据。附加数据可以为0,当它的大小为0时,那么根据PE头计算得到的字节数和PE文件的大小是相同的,当大小大于0时,二者之差便是附加数据的大小。加载器的主要思路是分两步加载PE文件,首先根据PE文件指定的基址(一般是0x00400000)调用VirtualAlloc申请指定基址+PE头和节大小的地址空间,然后判断程序有无附加数据,如有则在所申请的地址后申请附加数据大小的地址空间。 2、出现的问题: 1) 变量:peBase=0x00400000, peSize=0x3000, additionalBase=pe... 阅读全文
posted @ 2013-04-24 03:15 riceHuang 阅读(1979) 评论(1) 推荐(0)
摘要: 一、引言 在编写ShellCode的过程中需要动态加载DLL和API函数,根据ShellCode的运行环境,可以得到API动态加载代码的三点基本要求:1、具备通用性。2、具备可移植性。3、代码尽量小。 1、通用性。代码能在不同平台间使用。如xp、vista和win7. 2、可移植性。代码能被加载至任意地址并执行。 3、代码尽量小。在完成相同功能的前提下,使得生成后的代码尽量小。二、技术原理 1、通用性的实现。 Windows所有的应用程序都会加载ntdll.dll和kernel32.dll这两个核心模块。实现动态加载API的两个核心函数 LoadLibraryA和GetPro... 阅读全文
posted @ 2013-04-11 01:43 riceHuang 阅读(361) 评论(0) 推荐(0)