主题:如何用绿坝养肉鸡(一) -- 代码ABC
毕竟DLL的目的之一是用来节省内存,所谓动态的意思就是在需要时才加载,不需要的时候就可以卸除。并不需要每次加载的位置都不一样。而且为了链接方便,减少重定向的麻烦,每个DLL都有一个基地址,在加载时系统会按照这个基地址的设置将DLL加载到指定的位置上,也就是说如果没有地址冲突或内存不够的情况下,DLL的加载地址都是不变的。需要注意的一件事,既在NT内核中每个应用程序(进程)都会得到一个4G的虚拟地址空间(32位),而且exe的基地址默认都是0x00040000。也就是估算exe内部程序的地址空间是很简单的。
事实上,在做缓冲区溢出攻击的时候更多的是执行系统调用,比如添加帐号、修改帐号权限之类的事情,这时候我只需要知道系统API的入口即可。而在Windows系统中(其实其他系统都差不多),这些调用的入口是不变的。就Windows而言都在程序4G空间的上半部。这样的设计也不能算是漏洞,不然调用这些API的代码就需要系统做重定向,损失的就是运行效率了。
- 相关回复 上下关系8
压缩 4 层
🙂就是后面说的那个定位,用调试的方法找到起点,再加长度 凝雪幻 字0 2009-07-08 21:41:30
🙂必须用的那个动态库其实是固定位置的 凝雪幻 字0 2009-07-08 21:41:23
🙂如果DLL的地址是固定死的 正反诸葛 字109 2009-07-09 01:18:38
🙂这不能算漏洞
🙂你的楼上讲的已经非常清楚了。 5 素里太守 字552 2009-06-21 05:55:34
🙂原理是清楚的 正反诸葛 字362 2009-06-21 07:23:25
🙂拜托,楼主用的完全是合法的技术,你却一定要往非法的方向带 Sandmann 字77 2009-06-21 08:21:44
🙂我只对技术感兴趣。 正反诸葛 字129 2009-06-21 08:32:25