|
盒子资源分类 |
![]() |
|
|
|
通用ShellCode内存动态API搜索引擎 (没有使用任何API) |
![]() |
关键字:通用 ShellCode API 内存动态搜索 PEB Crc32 KOL ACL |
来 自:原创 |
平 台:Win9x,Win2k/XP/NT,Win2003 |
下载所需:0 火柴 |
深浅度:高级 |
完成时间:2005/7/26 |
发布者:dna32r |
发布时间:2005/7/26 |
编辑器:DELPHI6 |
语 种:简体中文 |
分 类:安全 |
下载浏览:1874/13301 |
|
|
|
|
无意中发现“通用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 |
![]() |
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们! |
相关文章 |
|
![]() |
|
相关评论 |
![]() |
共有评论4条
当前显示最后4条评论
|
tim001 |
2005/7/27 11:08:36 |
学习收藏 |
liumazi |
2005/10/12 9:51:54 |
hehe |
progray |
2005/10/13 10:04:19 |
你也牛的够离谱的了,呵呵~~~ 期待你把缓冲区溢出的delphi版写出来~~ |
crazymoon |
2006/10/30 18:54:28 |
我是菜鸟,问一个问题。 如果使用你这种技术,是否还可以设置Api断点来查看程序是否用了某种windowsApi; 能不能用于反破解软件? |
我要发表评论 |
查看全部评论 |
|
|
|