能力值:
( LV2,RANK:10 )
|
-
-
2 楼
帮你顶上,求真相~~~~~~~~~
|
能力值:
( LV5,RANK:60 )
|
-
-
3 楼
替换掉原DLL,把原DLL保存成未知DLL。除了自己需要实现的功能外把别的函数调用都转向未知DLL
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
意思是把原DLL替换成恶意DLL,让进城先加载恶意DLL,然后再在恶意DLL里LoadLibrary原DLL?
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
A.exe引用了B.dll,b.dll里面有函数才c(),d(),e(),f()....
现在有人想闹事,就把B.dll 改名成C.dll
然后自己写了个b.dll,里面也写了函数c(),d(),e(),f(),不过这个家伙很懒,他在自己的b.dll的函数才c()里面调用了c.dll里面的c()函数,...
然后...然后A.exe运行的时候,加载了以为是正确的b.dll,b.dll结果是个黑货,他加载了以前的b.dll(现在叫C.dll),A.exe也调用了b.dll_c(),。。。。。竟然没出错
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
编写者怎么知道A.exe调用了B.dllz中的哪些函数呢?
|
能力值:
( LV4,RANK:50 )
|
-
-
7 楼
如果是直接引用的,用工具可以看的。如果是间接的通过LoadLibrary/GetProcAddress的,比较麻烦。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
那就在 C.dll 中,实现所有 B.dll 应该有的导出函数。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
但是我很难知道那个原DLL中到底都有哪些导出函数啊?我也不知道EXE到底调用了哪些导出函数啊?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
你需要学习PE文档结构,学习导入表,导出表,以及动态加载。
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
你的DLL要满足下面2个条件中的1个。
1. 知道A.EXE使用了B.DLL的哪些函数,在你的C.DLL中只实现这些函数,这个工作量比较小,但是需要知道EXE使用了哪些函数,正如我上面说的,有可能很容易,也有可能比较麻烦。
2. 不管A.EXE的使用情况,把B.DLL导出的函数全部都实现一遍,这个工作量比较大。但有个好处就是不需要知道A.EXE的工作情况了。
|
能力值:
( LV5,RANK:60 )
|
-
-
12 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
aheadlib 貌似叫这个名字吧,自己搜搜
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
所谓DLL劫持就是把真正的DLL文件改名或移动到别处.然后用冒名的DLL代替.具体实现方法就我知道的有两种.
1:利用系统加载DLL文件时寻找DLL文件的先后次序为:先程序目录,然后系统目录的特点,可以把一个跟系统DLL同名的DLL文件放在程序目录,这样系统在加载程序时,本来是要加载一个系统DLL的,却先在当前目录找到跟那个系统DLL同名的我们自己的DLL.从而达到劫持的目的.
2:将真正的DLL文件改名或移动到别处.然后把冒名的DLL复制过来.然后先卸载DLL,再加载DLL.
第一种方法简单,第二种方法稍微复杂一点,但使用起来比较灵活.冒名的DLL一般需要做到以下两点:
1:实现自己的添加功能.
2:导出原DLL的功能.
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
楼主看看windows核心编程里 DLL高级技术里的函数转发器·你就会明白的··
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
看懂了一点,继续学习.
|
|
|