首页
社区
课程
招聘
[原创]利用中转输出表制作HijackDll(附工具源码)
发表于: 2012-8-5 16:48 65392

[原创]利用中转输出表制作HijackDll(附工具源码)

2012-8-5 16:48
65392
收藏
免费 8
支持
分享
最新回复 (99)
雪    币: 745
活跃值: (3823)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
26
支持原创,up
2012-8-14 22:05
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
楼主 的 思路很不错..
2012-8-15 15:59
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
28
Export Redirection,呵呵

主要还是要考虑一下,同名如何中转系统DLL

lpk.dll  ->  %systemroot%\system32\lpk.dll
2012-8-15 23:08
0
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
思路不错,好贴留名!
2012-8-16 14:06
0
雪    币: 178
活跃值: (633)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
什么时候能再开发一款内存补丁工具呢?

这个工具要实现的功能:
1、不针对内存中某个具体地址,而是搜索内存中的特征值,找到后,用自己的代码替换。
2、搜索过程允许使用通配符。
3、能过大部分的外壳保护
4、如果能加上CAD的ARX文件的补丁方式更佳。

这样做的优点就是,做出来的DLL内补支持软件升级。不需要每次都反复去搞。

现在所有的内存补丁工具均没有这个功能,不好使。
2012-8-17 11:23
0
雪    币: 90
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
利器啊~~~~
2012-8-18 05:35
0
雪    币: 877
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
求test.dll 源码 我自己的DLL 无法达到劫持的效果。总是会有一个函数无法定位
2012-8-18 11:06
0
雪    币: 78
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
33
我的程序会将你自己的DLL原来的导出函数清空的,然后克隆被劫持dll的所有导出信息为你的dll的中转输出,要不把你的dll发上来看看呢?
2012-8-18 12:19
0
雪    币: 877
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
我写了一个EXE 调用DLL A , 然后重新编译A 为B (修改提示框的字) 然后用B劫持A ,
当exe调用导出函数的时候 弹


我DLL代码如下
BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
        MessageBox(NULL,"正常","正常",MB_OK);
    return TRUE;
}

extern "C" __declspec(dllexport) int fnDllll2(void)
{
        MessageBox(NULL,"fn","fn",MB_OK);
        return 42;
}

DLL见 附件

方便的话 可以分享下您的TEST .dll 的代码嘛
上传的附件:
2012-8-18 14:23
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
35
参考AutoDebug,实现下
2012-8-18 14:58
0
雪    币: 877
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
我用ida 逆向了一下 他的test 还是不一样 不知道是不是DLL 需要特殊处理啊。劫持的DLL main函数式进去了但是不能使程序正常使用。
2012-8-18 15:01
0
雪    币: 78
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
37
呵呵,不好意思,当初写程序的时候就考虑过你自己写的DLL有附加数据的情况,比如说debug版的PE,如图:



后来嫌麻烦就没考虑这个问题,你可以想上图那样把多余的数据删除,或者使用release版本的dll做劫持dll,被劫持的dll倒没有任何限制,或者你修改我的代码来去掉这个bug也是很容易的
上传的附件:
2012-8-18 17:45
0
雪    币: 877
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
测试了一下用了release的 中转DLL 还是没转到EXE调用的函数 只是dllmain 进去了。2个DLLMAIN 都打出来了 但是只要一调用被劫持DLL的导出函数 就挂了。
2012-8-18 21:15
0
雪    币: 877
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
另外为什么你的导出表是空的 ,还有用ida看的时候你的函数列表 就5个函数 我自己的DLL 却N多函数,麻烦分享下代码。我就不纠结DLL的写法,努力写功能啦@
2012-8-18 21:17
0
雪    币: 877
活跃值: (137)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
报告成功了,原来是中专dll名 不能写.DLL 后缀 这个原因导致的。 直接写名字 就成功了。
另外想请教一下, 如果想exe掉的某个函数先在劫持DLL 执行 然后再去被劫持DLL 执行 这种要怎么实现
2012-8-18 21:26
0
雪    币: 2882
活跃值: (1279)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
41
什么时候能再开发一款内存补丁工具呢?

这个工具要实现的功能:
1、不针对内存中某个具体地址,而是搜索内存中的特征值,找到后,用自己的代码替换。
2、搜索过程允许使用通配符。
3、能过大部分的外壳保护
4、如果能加上CAD的ARX文件的补丁方式更佳。

这样做的优点就是,做出来的DLL内补支持软件升级。不需要每次都反复去搞。

现在所有的内存补丁工具均没有这个功能,不好使。

有的功能,ydlpk已经算有了。
2012-8-20 17:51
0
雪    币: 259
活跃值: (284)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
为什么我用如下的汇编写的DLL不成功。。。大家帮帮忙
.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc

includelib user32.lib
includelib kernel32.lib
INCLUDE                MACRO.ASM

.data
        lpszByDll db "Welcome",0
       
.data?
        hInstance dd ?
       
.CODE

;入口.如果DLL需要加载资源,需要保存hIinstDLL这个句柄到全局变量.它才是模块句柄
;使用GetModuleHandle获得的永远是主程序的句柄
LibMain proc hInstDLL:DWORD, reason:DWORD, unused:DWORD
        .if reason == DLL_PROCESS_ATTACH                                        ;动态库被加载时调用,返回0加载失败!
                invoke MessageBoxA,NULL,CTEXT("ASDFSADFSADF"),NULL,MB_OK
                mov eax,hInstDLL
                mov hInstance,eax
                mov eax,TRUE
                ret
        .elseif reason == DLL_PROCESS_DETACH
               
        .elseif reason == DLL_THREAD_ATTACH
               
        .elseif reason == DLL_THREAD_DETACH
          ;添加处理代码
        .endif
ret
LibMain Endp

End LibMain
2012-8-24 10:55
0
雪    币: 703
活跃值: (327)
能力值: (RANK:380 )
在线值:
发帖
回帖
粉丝
43
火翼(xxxxxxx)  11:02:41
10年前就很多人用这个方法了
从pe格式确定就存在的
很老的技术,不过这样有代码、有说明、有工具还是第一次。
2012-9-4 11:05
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
顶一个,支持下
2012-9-4 17:08
0
雪    币: 707
活跃值: (1301)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
45
在看雪找一下就有相关代码了,不如自己写个,反正我是自己实现了
2012-10-22 14:20
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
真不错有现成工具。
2012-12-20 21:33
0
雪    币: 484
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
好东西啊,收藏了
2012-12-20 21:37
0
雪    币: 242
活跃值: (1664)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
48
这个技术含量高要支持。
2012-12-22 19:11
0
雪    币: 124
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
谁能把这代码翻译成Delphi版吗
2013-1-2 16:02
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
这个不错,谢谢楼主
2013-1-2 16:52
0
游客
登录 | 注册 方可回帖
返回
//