社区
进程/线程/DLL
帖子详情
XP哪些进程不能注入DLL挂钩子?
sojia
2008-08-19 04:06:15
很奇怪,我的一个全局钩子自己运行完全没有问题,
我和同学用完全相同的XP盘状的两个虚拟机,
我的机器上运行完全没有问题,他的注入后说什么services.exe出错,
郁闷,我现在都怀疑是不是挂钩和硬件有关了。
以前他的是注入winlogon后蓝屏,我的没有问题,所以后来我就不注winlogon了
请教高手,这是什么原因引起的
或者挂钩有哪些要注意的??
...全文
196
8
打赏
收藏
XP哪些进程不能注入DLL挂钩子?
很奇怪,我的一个全局钩子自己运行完全没有问题, 我和同学用完全相同的XP盘状的两个虚拟机, 我的机器上运行完全没有问题,他的注入后说什么services.exe出错, 郁闷,我现在都怀疑是不是挂钩和硬件有关了。 以前他的是注入winlogon后蓝屏,我的没有问题,所以后来我就不注winlogon了 请教高手,这是什么原因引起的 或者挂钩有哪些要注意的??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lvshaoqing
2008-08-19
打赏
举报
回复
我刚才试了下,卡吧和瑞心的进程,哈哈完全不行....
sojia
2008-08-19
打赏
举报
回复
[Quote=引用 5 楼 cnzdgs 的回复:]
SendMessage可能存在两种问题:
1、SendMessage向其它线程的窗口发消息时,要等待窗口处理完该消息后才返回,有些时候程序是不能等待的,所以可能会引发问题;
2、每个进程都有自己独立的地址空间,进程间不能利用指针来传递数据,否则很容易产生异常。
根据你的问题描述来看,应该是Hook的代码本身出了问题,你把代码贴出来看看。
[/Quote]
除了SendMessage,有其他不使用指针传递消息的方法吗?
我现在只会用也只知道SendMessage这一个?
sojia
2008-08-19
打赏
举报
回复
[Quote=引用 5 楼 cnzdgs 的回复:]
SendMessage可能存在两种问题:
1、SendMessage向其它线程的窗口发消息时,要等待窗口处理完该消息后才返回,有些时候程序是不能等待的,所以可能会引发问题;
2、每个进程都有自己独立的地址空间,进程间不能利用指针来传递数据,否则很容易产生异常。
根据你的问题描述来看,应该是Hook的代码本身出了问题,你把代码贴出来看看。
[/Quote]
首先感谢!
注入DLL我用的是Windows 程序设计(王艳平)编写的类:class CRemThreadInjector。开始时枚举所有进程,远程注入,
HOOKAPI用得Jeffrey的CAPIHook类 ,都没有做修改。
HOOKAPI很多贴一两个吧:
extern CAPIHook g_WriteFile;
CAPIHook g_WriteFile("kernel32.dll", "WriteFile", (PROC)Hook_WriteFile);
HANDLE WINAPI Hook_WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped)
{
typedef HANDLE (WINAPI *PFNTERMINATEPROCESS)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
// 取得主模块的文件名称
char szPathName[MAX_PATH];
::GetModuleFileName(NULL, szPathName, MAX_PATH);
/////////////////////////////////////////////////////////
NTSTATUS status = -1;
HMODULE hNtdll = NULL;
IO_STATUS_BLOCK IoStatus = {0};
wchar_t FileInfo[MAX_PATH+2];
LPSTR p;
char szFilePath[MAX_PATH];
RtlZeroMemory(szFilePath, MAX_PATH);
hNtdll = LoadLibrary(_T("ntdll.dll"));
if(hNtdll!=NULL)
{
NtQueryInformationFile = (NTQUERYINFORMATIONFILE)GetProcAddress(hNtdll, "NtQueryInformationFile");
if(NtQueryInformationFile!=NULL)
{
if (hFile != INVALID_HANDLE_VALUE)
{
RtlZeroMemory((void*)&FileInfo, MAX_PATH);
status = NtQueryInformationFile(hFile, &IoStatus, (PVOID)FileInfo, MAX_PATH+2, FileNameInformation);
if (NT_SUCCESS(status))
{
wchar_t* temp=&FileInfo[0];
temp=temp+2;
char* AnsiPath=UnicodeToAnsi((LPCTSTR)temp);
GetFullPathNameA(AnsiPath, MAX_PATH, szFilePath, &p);
}
}
}
}
FreeLibrary(hNtdll);
////////////////////////////////////////////////////////////////
// 构建发送给主窗口的字符串
char sz[2048];
wsprintf(sz, "%d\r\n%s\r\nWriteFile\r\n%s\r\n", ::GetCurrentProcessId(), szPathName, szFilePath);
// 发送这个字符串到主对话框
COPYDATASTRUCT cds = { ::GetCurrentProcessId(), strlen(sz) + 1, sz };
::SendMessageTimeout(::FindWindow(NULL, "HookComu"), WM_COPYDATA, 0, (LPARAM)&cds, SMTO_ABORTIFHUNG, 10, NULL);
return ((PFNTERMINATEPROCESS)(PROC)g_WriteFile)(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped);
}
此外还HOOK了很多注册表的操作,大约HOOk了28个API
cnzdgs
2008-08-19
打赏
举报
回复
SendMessage可能存在两种问题:
1、SendMessage向其它线程的窗口发消息时,要等待窗口处理完该消息后才返回,有些时候程序是不能等待的,所以可能会引发问题;
2、每个进程都有自己独立的地址空间,进程间不能利用指针来传递数据,否则很容易产生异常。
根据你的问题描述来看,应该是Hook的代码本身出了问题,你把代码贴出来看看。
sojia
2008-08-19
打赏
举报
回复
[Quote=引用 2 楼 lvshaoqing 的回复:]
全局钩子有什么好的啊...最底层的东西又钩不到...而且全局钩子很容易出事情.
[/Quote]
那你有什么更好的方法吗?
sojia
2008-08-19
打赏
举报
回复
[Quote=引用 1 楼 cnzdgs 的回复:]
与你的代码有关,你试试什么都不做应该就没问题了。
[/Quote]
不知道全局钩子对操作有什么限制,
比如说不能发送进程间的消息等等?
我就是钩到我要的API 后用sendmessage返回主模块一个消息,
而且在我的机器上运行完全没有问题
lvshaoqing
2008-08-19
打赏
举报
回复
全局钩子有什么好的啊...最底层的东西又钩不到...而且全局钩子很容易出事情.
cnzdgs
2008-08-19
打赏
举报
回复
与你的代码有关,你试试什么都不做应该就没问题了。
利用输入法
注入
DLL
Ring3下
注入
DLL
的另类方法,能过杀软和游戏NP(源码)
注入
DLL
是做全局
钩子
或者拦截类软件都有可能用到的技术,如果做外
挂
的话我们也有 可能需要
注入
一个
DLL
到游戏
进程
中去干点什么“坏事”。 但我们知道现在要...
xp
系统隐藏
进程
代码
这种技术通常涉及到了
进程
注入
和线程操作,是逆向工程和系统编程的一个重要方面。 描述中提到的“纯汇编源码”意味着实现这一功能的代码是用汇编语言编写的,这是一种低级编程语言,可以直接控制计算机的硬件操作。...
驱动层
注入
dll
demo,源码未传
行为监控最好的方式是远程
注入
dll
,应用层设置的全局
钩子
,对非消息模式的
进程
无效;或者其他方法,有权限不同、session不同、
注入
滞后等弱点。本demo是在驱动层,
进程
创建完毕还未执行主线程时,即
注入
dll
,对系统...
WIN下 修改,伪装
进程
路径。支持
XP
,WIN7 WIN764
1. **
注入
DLL
**:通过
注入
DLL
到目标
进程
中,可以修改
进程
的内存,包括
进程
的模块列表,从而改变显示的
进程
路径。这通常需要使用`CreateRemoteThread`函数创建一个远程线程来执行
注入
操作。 2. **Hooking技术**:...
window内核监控工具源代码
有时行有时不行)(只要将这个
进程
的nt
dll
卸载了,
进程
就结束了,一个好的杀
进程
的办法撒,绿色环保无污染),
注入
dll
使用的是插入apc实现的。(
注入
的
dll
必须是realse版的。Debug版会出现***错误,全局
dll
注入
貌似...
进程/线程/DLL
15,466
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章