毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> windows平台 >> 正文

如何仅打桩指定进程的系统API函数

更新时间:2013-2-28:  来源:毕业论文

如何仅打桩指定进程的系统API函数
我们知道,所有kernel32.dll 和user32.dll 中的函数在所有的进程中的地址均一致。

因此如果在进程A中对以上的系统函数进行了打桩,显然其他的进程也会受到牵连,如何才能做到仅仅在指定的进程中对系统API函数进行打桩替换呢?

修改的只是你自己虚拟内存中的。不会涉及其它进程。

而且自从有了ASLR(地址空间随机化)后,这些一成不变的DLL的地址,已经改变了。

2个进程中的 GetTickCount函数,只有被打桩的进程才发生变化,而非两个进程中的 GetTickCount函数 被同时打桩。这样我就有一个疑惑,难道每个进程加载的系统动态库在各个进程中有独立的一份?如果这样的话,动态库最初的设计目的,减少内存使用又是如何实现的?

DLL链接库中的代码段应该只保留一个。但数据段,应该是根据需要,每个进程中有一份的。

但是函数打桩,修改的就是代码段的内容。毕业论文 

具体做法:将函数开头几个字节的内容修改为一个跳转 语句

有修改的话,就会拷贝一份。
因为你没有修改物理文件。

ASLR(Address Space Layout Randomization),地址空间格局的随机化,就是用来防范Ret2libc攻击手段的另一个重要的安全特性。该方法只是说 系统DLL在系统每次启动的时候被随机设定的,其加载地址不再固定而已。但是动态库本身在内存中应该是仍旧共享一份的。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。