首页
社区
课程
招聘
[旧帖] 注入后HOOK的问题 0.00雪花
发表于: 2009-9-22 22:39 5043

[旧帖] 注入后HOOK的问题 0.00雪花

2009-9-22 22:39
5043
编译了一个EXE 里边写了LoadLibrary函数加载一个HOOK .DLL
这个DLL的功能 ,HOOK完美运行。

但问题来了
我把这个HOOK .DLL注入到IE
DLL HOOK 功能运行失败,其他功能正常也就是加载成功。
我断了点在SetWindowsHookEX的回调函数中 完全没断到 。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看不太懂。。。
2009-9-23 12:32
0
雪    币: 18
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
如下 SetWindowsHookEx(WH_GETMESSAGE, KeyboardProc, 0,GetCurrentThreadId());
2009-9-23 22:05
0
雪    币: 18
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2009-9-24 23:18
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能不能再具体描述?
2009-9-25 09:28
0
雪    币: 339
活跃值: (29)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
贴部分代码吧。确实不太懂你在说什么。
2009-9-26 10:28
0
雪    币: 108
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
........无语
2009-10-14 13:07
0
雪    币: 162
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
你自己调用dll的时候直接调用了他的函数吧,你注入的时候需要让目标程序也执行你的功能才行
2009-10-14 14:19
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
你在DLlmain里写吧!
2009-10-15 10:05
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
首先打开进程,关于注入.我给你贴一分易语言的代码,我想你应该更容易理解,希望你能看的明白
完整注入代码如下:
*注意:要先打开进程获取句柄
.版本 2

.如果真 (pHandle = 0)
    .如果真 (取反 (隐藏错误信息))
        信息框 (提取错误信息 (#打开进程失败), #错误图标, 提取错误标题 (#打开进程失败))
    .如果真结束
    返回 (提取错误代码 (#打开进程失败))
.如果真结束
DLLName = DLL文件全名
Path = 选择 (取文本右边 (DLL装载路径, 1) = “\”, DLL装载路径, DLL装载路径 + “\”) + DLLName
dwSize = 取文本长度 (Path) + 1
lpbuf = VirtualAllocEx (pHandle, 0, dwSize, 4096, 64)
.如果真 (lpbuf = 0)
    .如果真 (取反 (隐藏错误信息))
        信息框 (提取错误信息 (#分配内存失败), #错误图标, 提取错误标题 (#分配内存失败))
    .如果真结束
    CloseHandle (pHandle)
    返回 (提取错误代码 (#分配内存失败))
.如果真结束
Ret = WriteProcessMemory (pHandle, lpbuf, 到字节集 (Path) + { 0 }, dwSize, 0)
.如果真 (Ret = 0)
    .如果真 (取反 (隐藏错误信息))
        信息框 (提取错误信息 (#写内存失败), #错误图标, 提取错误标题 (#写内存失败))
    .如果真结束
    VirtualFreeEx (pHandle, lpbuf, dwSize, 16384)
    返回 (提取错误代码 (#写内存失败))
.如果真结束
Handle = GetModuleHandle (“kernel32.dll”)
Handle = GetProcAddress (Handle, “LoadLibraryA”)
hThread = CreateRemoteThread (pHandle, SECURITY, 0, Handle, lpbuf, 0, 0)
WaitForSingleObject (hThread, -1)
GetExitCodeThread (hThread, dwRet)
RemotBaseadDr = dwRet
VirtualFreeEx (pHandle, lpbuf, dwSize, 16384)
CloseHandle (hThread)
.如果真 (DLL函数名 ≠ “”)
    LocalbaseadDr = LoadLibraryEx (Path, 0, 0)
    Handle = GetProcAddress (LocalbaseadDr, DLL函数名)
    .如果真 (Handle = 0)
        .如果真 (取反 (隐藏错误信息))
            信息框 (提取错误信息 (#取函数地址失败), #错误图标, 提取错误标题 (#取函数地址失败))
        .如果真结束
        FreeLibrary (LocalbaseadDr)
        CloseHandle (pHandle)
        返回 (提取错误代码 (#取函数地址失败))
    .如果真结束
    TrueAddress = RemotBaseadDr + Handle - LocalbaseadDr
    FreeLibrary (LocalbaseadDr)
    lpbuf = VirtualAllocEx (pHandle, 0, 5, 4096, 64)
    .如果真 (lpbuf = 0)
        .如果真 (取反 (隐藏错误信息))
            信息框 (提取错误信息 (#分配内存失败), #错误图标, 提取错误标题 (#分配内存失败))
        .如果真结束
        CloseHandle (pHandle)
        返回 (提取错误代码 (#分配内存失败))
    .如果真结束
    Code = { 233 } + 到字节集 (到整数 (TrueAddress - lpbuf - 5))
    Ret = WriteProcessMemory (pHandle, lpbuf, Code, 5, 0)
    .如果真 (Ret = 0)
        .如果真 (取反 (隐藏错误信息))
            信息框 (提取错误信息 (#写内存失败), #错误图标, 提取错误标题 (#写内存失败))
        .如果真结束
        VirtualFreeEx (pHandle, lpbuf, 5, 16384)
        返回 (提取错误代码 (#写内存失败))
    .如果真结束
    hThread = CreateRemoteThread (pHandle, SECURITY, 0, lpbuf, 0, 0, 0)
    WaitForSingleObject (hThread, -1)
    VirtualFreeEx (pHandle, lpbuf, 5, 16384)
    CloseHandle (hThread)
.如果真结束
CloseHandle (pHandle)
2009-10-16 01:59
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
11
哇塞,易语言很强大啊。
感觉是在写程序的流程图。
2009-10-16 12:05
0
雪    币: 18
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
无论如何 我都会感谢你的
2009-10-16 12:54
0
雪    币: 208
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
哇哈哈,给钱给钱.
2009-10-16 22:10
0
雪    币: 109
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
不知楼主的意思是注入到别的进程,hook里的功能不能用么?

http://bbs.bccn.net/thread-288326-1-1.html
学32汇编的时的注入练习
楼主参考下
2009-10-18 01:39
0
游客
登录 | 注册 方可回帖
返回
//