首页
社区
课程
招聘
[旧帖] [求助]DLL的劫持 0.00雪花
发表于: 2011-8-26 16:47 1790

[旧帖] [求助]DLL的劫持 0.00雪花

2011-8-26 16:47
1790
我想问下假设有个a.exe调用了 b.dll中的 abc函数,我现在想劫持这个abc函数,假如我另外写个dll 名abc1.dll,我怎么让a.exe先去调用我的abc1.dll在去调用abc.dll, 注意:dll不同名哦,求指教。有例子最好。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你为什么不把abc.dll改为abc1.dll,用你的dll替换abc.dll呢
2011-8-26 16:59
0
雪    币: 21
活跃值: (216)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
嗯,通知楼上的。
2011-8-26 17:36
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不用替换的话就好办,在不替换的情况下另外写个DL,怎么办
2011-8-26 20:31
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我怎么都没有看明白的啊
2011-8-26 23:04
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
网上DLL劫持的技术一大堆。。。唉。。。
2011-8-27 16:02
0
雪    币: 61
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
一个程序在编写好的时候都设定了加载什么DLL,一不假冒(假冒系统的或者程序的),二不去动主程序,很难想到程序怎么会主动找你这个陌生的DLL,请高手
2011-8-27 16:09
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
DLL劫持,就是你的DLL名要和要劫持的DLL名一样,而且连导出的符号名都要一样,然后,再把被劫持的DLL名改了,这个时候,系统或者程序首先就是加载的你的DLL,然后再加载他原来那个被你鸡翅的DLL,《windows核心编程》的第22章说的很清楚的
2011-8-28 16:41
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼上的说法很能够让人明白!
2011-8-30 16:08
0
雪    币: 31
活跃值: (10)
能力值: ( 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
2011-8-31 18:08
0
游客
登录 | 注册 方可回帖
返回
//