- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
|
作者:achillis
相当老的话题,大约一年前就写过这个东西了,不过那时候知识比较有限,也不了解内核,因此实现得很粗浅,现在再写一下,权当是对这个老问题的总结吧。
先谈谈正规DLL的隐藏方法,这里说的正规DLL,是指用LoadLibrary以正常方式加载的DLL。
这个很简单,看雪上NetRoc有一篇关于这个的文章,从分析原理到编程实现,虽然技术不算高深,但是思路非常精彩。来复习一下吧~~
这里看到有三个链表,其实三个链表的内容是一样的,但是链表的顺序不一样,分别按加载顺序、内存顺序、初始化顺序排列
也就是说每一个DLL由一个LDR_DATA_TABLE_ENTRY结构描述,但是第一个结构被链入了三个链表。取一个来看看:
|
|