能力值:
( LV2,RANK:10 )
|
-
-
2 楼
你为什么不把abc.dll改为abc1.dll,用你的dll替换abc.dll呢
|
能力值:
( LV5,RANK:60 )
|
-
-
3 楼
嗯,通知楼上的。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
不用替换的话就好办,在不替换的情况下另外写个DL,怎么办
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我怎么都没有看明白的啊
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
网上DLL劫持的技术一大堆。。。唉。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
一个程序在编写好的时候都设定了加载什么DLL,一不假冒(假冒系统的或者程序的),二不去动主程序,很难想到程序怎么会主动找你这个陌生的DLL,请高手
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
DLL劫持,就是你的DLL名要和要劫持的DLL名一样,而且连导出的符号名都要一样,然后,再把被劫持的DLL名改了,这个时候,系统或者程序首先就是加载的你的DLL,然后再加载他原来那个被你鸡翅的DLL,《windows核心编程》的第22章说的很清楚的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
楼上的说法很能够让人明白!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
a.exe 调用 b.dll 的 int c(int n)函数,你编写了一个d.dll,其中也有一个int c(int n)按照你的意思,d.dll要劫持b.dll,但是又要调用b.dll,所以d.dll会调用b.dll中的c
d.dll里面大概这么写
int c(int n)
{
typedef int (*p)(int);
p c2 = (p)GetProcAddress(LoadLibrary("b2.dll"),"c");
if(n != 0) //比如说
return c2(n);
return 0;
}
然后把d.dll改成b.dll,b.dll改成b2.dll
|
|
|