|
盒子资源分类 |
|
|
|
|
通用ShellCode内存动态API搜索引擎 (没有使用任何API) |
|
关键字:通用 ShellCode API 内存动态搜索 PEB Crc32 KOL ACL |
来 自:原创 |
平 台:Win9x,Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:高级 |
完成时间:2005/7/26 |
发布者:dna32r |
发布时间:2005/7/26 |
编辑器:DELPHI6 |
语 种:简体中文 |
分 类:安全 |
下载浏览:1870/13086 |
|
|
|
|
无意中发现“通用ShellCode”(不同版本的操作系统的API函数地址都是不一样的~同样版本的操作系统甚至语言不一样地址也不一样~)竟然不需要API也不需要构建导入表就可以找到函数指针运行代码~发现竟然没有Delphi版本的~捣鼓了一下午~写出了初步雏形请各位大哥批评指正~请大家不要见(奸)笑
其余的不多说了~PE格式和ShellCode的编写看一下~这里只是简单的说一下原理:平时注意一下加壳软件就知道一般加壳软件也都必须要有两个函数(GetProcAddress和LoadLibraryA)的(BT的除外~~)MicroJoiner文件合并器我发现他只有一个LoadLibraryA他也是利用自己构建GetProcAddress,但是如何获取DLL的地址?一般获取 是用LoadLibraryA,但是作者Coban2k可能没有注意去看ShellCode的原理所以这里才有了LoadLibraryA函数。
代码中GetProcAddress的原理是使用PE查询导入表的方法。这份代码的LoadLibraryA函数获取是用利用用PEB获取地址kernel32.dll基址然后再用GetProcAddress搜出LoadLibraryA函数指针.当然程序加载的时候就会自动加载kernel32.dll~只是地址不知道在什么地方-您也可以使用字符串搜索法搜MZ和PE这样可以搜到kernel32.dll的基址。。剩下的我就不说了高手会奸笑的 { 内存动态搜索API:LoadLibraryA (利用用PEB获取地址kernel32.dll基址然后再用GetProcAddress搜出函数指针) GetProcAddress ( 这个是人工构件的,原理利用函数名称的Crc32数值然后依次比较 导入表中函数的地址,。。。。。。 ) 代码完全没有使用任何API,理论上说你可以编译的程序不会有任何导入表 导入表我已经优化了许多了,但是~Delphi难免有几个API函数的(其实没有起到用处的)具体看代码吧~通用API获取方法很多~袁哥的暴力搜索法,SEH获取等方法等等。。。我就不献丑了~这里抛砖引玉了 感谢Positron提供的CRC32搜索代码(不要还要算hash,最{纯朴}的是直接四个字母比较~相信没有人多用吧)
准备试试看能不能用Delphi把<<缓冲区溢出教程>>代的光盘写出来~ 难免有错误希望大家指正谢谢~^_^ Email:Anskya@Gmail.com Web:Www.Anskya.Net |
|
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
|
|
相关评论 |
|
|
|
|