首页
社区
课程
招聘
[原创]Detours Express 分发dll时去掉detoured.dll这个库
发表于: 2008-11-26 15:51 13068

[原创]Detours Express 分发dll时去掉detoured.dll这个库

2008-11-26 15:51
13068
Detours Express 分发dll时去掉detoured.dll这个库

编辑 src\detours.cpp这个文件

注释掉以下3处:
1,
//#include "detoured.h"

2,
//#ifdef DETOURS_INTERNAL_USAGE
//#error Feature not supported in this release.
//
//#else
//    Detoured();
//#endif

3,
//#ifdef DETOURS_INTERNAL_USAGE
//#error Feature not supported in this release.
//
//
//#else
//    return Detoured();
//#endif

把3这里改成:return ::GetModuleHandle(NULL);

这样重新编译后,在编dll时就不用引用detoured.lib
分发dll时也不用detoured.dll了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 200
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享,去试试看...
2009-2-21 12:31
0
雪    币: 200
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
试了下可以,真不错.原来是有一个调用了一次dll检查是不是已经注入了...大多数情况下用不到
2009-2-21 13:02
0
雪    币: 135
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢
2009-2-21 13:19
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不愧是高人啊!

感谢分享
2009-6-4 13:57
0
雪    币: 3246
活跃值: (374)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
6
DetourCreateProcessWithDllA()/DetourCreateProcessWithDllAW()的第11个参数用到detoured.dll,不过可以传递NULL。

这个空DLL是微软客服用的。

Detours loads the detoured.dll shared library stub into any process which has been modified by the insertion of a detour. This allows the Microsoft Customer Support Services (CSS) and the Microsoft Online Crash Analysis (OCA) teams to quickly and accurately determine that the behavior of a process has been altered by a detour. CSS does not provide customer assistance on detoured products from Microsoft or any other vendor.
2009-8-19 12:48
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
7
我是来膜拜楼上的
2009-8-20 13:33
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
去掉了是可以 ~  不过使用DetourCreateProcessWithDll函数就会有问题

DetourCreateProcessWithDll  就会提示 应用程序初始化失败!
2010-2-1 16:12
0
雪    币: 144
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
很费解为什么要修改呢,在自己的代码中重写Detoured覆盖不就行了?
HMODULE WINAPI Detoured()
{
        return AfxGetInstanceHandle();
}
2010-2-1 19:06
0
雪    币: 223
活跃值: (287)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
把3这里改成:return ::GetModuleHandle(NULL);
这个会不会出问题?
我的是弄成了静态库,然后在自己的DLL中弄了个Detoured函数返回DLL的基址.
2010-2-2 09:05
0
雪    币: 221
活跃值: (2301)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
detoure是不是对压缩壳没有效果?
2010-2-2 23:28
0
雪    币: 291
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
修改creatwth.cpp 中的
DetourCreateProcessWithDllW 和DetourCreateProcessWithDllA 函数

//    LPCSTR rlpDlls[2];
       LPCSTR rlpDlls[1];
//     if (lpDetouredDllFullName != NULL) {
//         rlpDlls[nDlls++] = lpDetouredDllFullName;
//     }
//     if (lpDllName != NULL) {
//         rlpDlls[nDlls++] = lpDllName;
//     }
        if (lpDllName != NULL) {
                rlpDlls[nDlls] = lpDllName;
        }
即可解决此问题
2010-4-19 16:53
0
雪    币: 485
活跃值: (78)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
13
此法失效。可以载入自已的DLL,不过没效果就是说DLL没有HOOK
2010-12-2 16:10
0
游客
登录 | 注册 方可回帖
返回
//