hook api的阻止关闭程序问题

franchdream 2005-11-23 11:21:40
我想阻止其他人在任务管理器中终止我的程序,看了许多东西,连续两天熬夜了,找到了HOOK MOUSE和键盘的程序,可是还是没有头绪.听说要HOOK OpenProcess 可是没有具体的代码,连C++的都没有.看见C++讨论区里面有这个问题的讨论,不过没有把代码贴出来.
非常希望这里的高手赐教,指条路谢谢!
另外还想知道是HOOK本地还是HOOK全局?谢谢!
另外对于C++不熟悉,听说要写HOOKDLL一定要C++来写C#不行,我不会用C++写DLL,也请高手务必指教.
...全文
351 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
franchdream 2005-11-24
  • 打赏
  • 举报
回复
把进程从进程列表中隐藏掉,C++中有讨论, 不过只知道方法,对于C++不熟悉没有办法.《Windows 核心编程》也看了,不过感觉实在太牛了,高度还没有达到,其实最主要是对于c++搞不清楚.
谢谢!
s5689412 2005-11-24
  • 打赏
  • 举报
回复
我想你的意思是不是要屏蔽系统热键,所以需要键盘Hook啊?
不过即使别人不用任务管理器关闭你的程序,也可以用其他的类似程序来关闭,
那些程序可没有热键吧。
我倒觉得与其这样,不如想办法把进程从进程列表中隐藏掉,这类的讨论也很多,Google一下应该可以找到不少。

另外,要使用Hook,建议读读《Windows 核心编程》,有了这本书的基础,再看一些最新的讨论和文章,就可以了。
franchdream 2005-11-24
  • 打赏
  • 举报
回复
up
franchdream 2005-11-24
  • 打赏
  • 举报
回复
万分感谢!不过写DLL是不是一定要写个类似的函数:
BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
//
// Capture the application instance of this module to pass to
// hook initialization.
//
if (g_appInstance == NULL)
{
g_appInstance = hinstDLL;
}
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;

case DLL_PROCESS_DETACH:
break;

default:
OutputDebugString("Not sure what just happened.\n");
break;
}

return TRUE;
}
然后在C#中这样HOOK
hKeyboardHook = SetWindowsHookEx( 这里不知道要写什么,
HookProcedure,
Marshal.GetHINSTANCE(
"my.dll") 0);

?
hainang1234 2005-11-24
  • 打赏
  • 举报
回复
C#的dll文件是IL代码,不是windows的标准dll。
所以要用C++。
大概思路就是:写一个Dll文件,里面放个钩子函数,再在程序中启动这个钩子。钩子只能放在dll中,因为它其实是将dll中的钩子函数挂接到所有进程里面。
franchdream 2005-11-24
  • 打赏
  • 举报
回复
急,在线等.
franchdream 2005-11-24
  • 打赏
  • 举报
回复
沉得真快,自己顶一下.
s5689412 2005-11-24
  • 打赏
  • 举报
回复
如果你要在C#中做到Global Hook,可以看看这几篇文章,看能不能满足你的要求:

http://blog.joycode.com/mvm/archive/2004/10/18/35790.aspx(中文)

以下为英文:
http://www.codeproject.com/csharp/GlobalSystemHook.asp(C++ and C#)
http://www.codeproject.com/csharp/globalhook.asp(pure C#)
franchdream 2005-11-24
  • 打赏
  • 举报
回复
我现在已经有了一个HOOK DLL,是一个全局HOOK,在C#中如何调用他呢?
谢谢!
由于很多功能在内核中完成,所以如果发生由本工具直接或者间接导致的问题,本人概不负责。 非常感谢 看雪论坛的我是土匪, 卡饭的dl123100,leisong,zxjzwy,曲中求,紫瞳魔圣 嬴政天下的橡树, 非凡论坛的gda1139等热心朋友, 提供出现蓝屏时的dump文件,帮助我找到很多问题, 希望大家如果不幸遇到蓝屏时,把dump文件发到我的邮箱(ithurricane@126.com)以便分析修改, 谢谢大家~~~ 还要特别感谢一下hi百度的uruan,特意为PowerTool做了一个非常漂亮的Logo,很喜欢这个Design,多谢了~~~ 应用平台:for WindowsXp/Windows2003/Vista/Windows7(32 bit)(我只在这四个上面测试过,其他的系统上可能会出现问题) 目前版本主要功能: 1. 所有进程的枚举(包括内核中隐藏的进程) 2. 所有文件的枚举(包括内核中隐藏的文件) 3. 进程中所有模块的枚举(包括内核中隐藏的模块) 4. 进程的强制结束 5. 进程中模块的强制卸载 6. 模块被哪些进程加载的检索 7. 查看文件/文件夹被占用的情况 8. 可以Unlock占用文件的进程 9. 文件/文件夹的粉碎(可强删Unlocker1.8.9/金山/超级巡警文件粉碎机无法删除的顽固文件) 10. 阻止文件粉碎后用还原软件还原(采用美国国防部DOD 5220.22-m标准阻止文件还原) 11. 用磁盘解析技术检索硬盘数据 12. 内核模块和驱动的查看和管理 13. 启动项的查看和管理 14. 系统服务的查看和管理 15. 集成文件粉碎功能到系统右键菜单 16. 消息钩子的查看和卸载 17. SSDT/Shadow SSDT钩子的查看和卸载 18. 各种内核回调的查看和卸载 19. 多国语言版本的对应(中文和英文) 20. 暂停进程运行和恢复进程运行 21. 进程模块的内存的dump 22. 进程的线程的查看和结束 23. 进程的窗口的查看和控制 24. 进程的定时器的查看和摘除(该功能还没对应Windows2003) 25. 内核定时器的查看和摘除 26. 上传文件在线扫描病毒 27. 查看和摘除用户层的钩子 28. 查看和结束内核线程 29. 关机回调的清除 30. 查看和摘除mini文件驱动 31. 系统恢复功能(检测项目包括注册表关键部位,已安装的杀毒软件,AutoRun文件,Windows漏洞检测,共享文件夹) 32. 流氓快捷方式的检测和删除 33. 镜像劫持的检测和删除 34. 文件关联的检测和删除 35. IE相关的检测和删除 36. FSD Hook的检测和删除 37. Object Hook的检测和删除 38. 部分CPU/硬盘/显卡/主板的温度检测 39. 部分硬件信息的确认 40. 新增修复漏洞功能,可以下载和安装Windows补丁 41. 新增IDT钩子的检测和恢复 42. 新增禁止进城创建,新建文件,注册表修改等配置 42. 新增注册表功能,几乎可以无视一切隐藏注册表的钩子 43. 新增SPI的检测 2010-10-11 PowerTool V2.8 增加: 1. 新增SPI的检测 2. 新增窗口置顶,快速重启,释放内存,监视带有Auturun.inf的U盘等小功能 3. 新增进程的EAT钩子检测 改善: 1. 将启动时检测新版本改为了点击[在线升级]是下载新版本 2. 修正了文件和注册表跳转的BUG 3. 修正了安全模式下无法加载驱动的BUG 4. 修正了XP下畸形目录无法浏览的BUG 5. 修正了一键修复时报错的BUG 2010-09-26 PowerTool V2.7 增加: 1. 新增注册表功能,几乎可以无视一切隐藏注册表的钩子 2. 新增重要文件夹的快速跳转功能 3. 可备份windows服务和启动项 4. 新增自动检测新版本并且下载 改善: 1. 修正了禁止进程创建,注册表修改等配置的BUG 2. 修正了文件粉粹里无法浏览System Volume Information目录的BUG 3. 修正了Windows服务里菜单状态的BUG 4. 修正了无法上传到filterbit的BUG 2010-08-22 PowerTool V2.6 增加: 1. 新增修复漏洞功能,可以下载和安装Windows补丁 2. 新增IDT钩子的检测和恢复 3. 新增禁止进城创建,新建文件,注册表修改等配置
由于很多功能在内核中完成,所以如果发生由本工具直接或者间接导致的问题,本人概不负责。 非常感谢 看雪论坛的我是土匪, 卡饭的dl123100,leisong,zxjzwy,曲中求,紫瞳魔圣,tawny2008,天月来了,wo1234,FreeEquFraT 嬴政天下的橡树, 非凡论坛的gda1139等热心朋友, 提供出现蓝屏时的dump文件,帮助我找到很多问题, 希望大家如果不幸遇到蓝屏时,把dump文件发到我的邮箱(ithurricane@126.com)以便分析修改, 谢谢大家~~~ 还要特别感谢一下hi百度的uruan,特意为PowerTool做了一个非常漂亮的Logo,很喜欢这个Design,多谢了~~~ 应用平台:for WindowsXp/Windows2003/Vista/Windows7(32 bit)(我只在这四个上面测试过,其他的系统上可能会出现问题) 联系作者: Email: ithurricane@126.com QQ: 20158686 Blog: http://hi.baidu.com/ithurricane 目前版本主要功能: 1. 所有进程的枚举(包括内核中隐藏的进程) 2. 所有文件的枚举(包括内核中隐藏的文件) 3. 进程中所有模块的枚举(包括内核中隐藏的模块) 4. 进程的强制结束 5. 进程中模块的强制卸载 6. 模块被哪些进程加载的检索 7. 查看文件/文件夹被占用的情况 8. 可以Unlock占用文件的进程 9. 文件/文件夹的粉碎(可强删Unlocker1.8.9/金山/超级巡警文件粉碎机无法删除的顽固文件) 10. 阻止文件粉碎后用还原软件还原(采用美国国防部DOD 5220.22-m标准阻止文件还原) 11. 用磁盘解析技术检索硬盘数据 12. 内核模块和驱动的查看和管理 13. 启动项的查看和管理 14. 系统服务的查看和管理 15. 集成文件粉碎功能到系统右键菜单 16. 消息钩子的查看和卸载 17. SSDT/Shadow SSDT钩子的查看和卸载 18. 各种内核回调的查看和卸载 19. 多国语言版本的对应(中文和英文) 20. 暂停进程运行和恢复进程运行 21. 进程模块的内存的dump 22. 进程的线程的查看和结束 23. 进程的窗口的查看和控制 24. 进程的定时器的查看和摘除(该功能还没对应Windows2003) 25. 内核定时器的查看和摘除 26. 上传文件在线扫描病毒 27. 查看和摘除用户层的钩子 28. 查看和结束内核线程 29. 关机回调的清除 30. 查看和摘除mini文件驱动 31. 系统恢复功能(检测项目包括注册表关键部位,已安装的杀毒软件,AutoRun文件,Windows漏洞检测,共享文件夹) 32. 流氓快捷方式的检测和删除 33. 镜像劫持的检测和删除 34. 文件关联的检测和删除 35. IE相关的检测和删除 36. FSD Hook的检测和删除 37. Object Hook的检测和删除 38. 部分CPU/硬盘/显卡/主板的温度检测 39. 部分硬件信息的确认 40. 修复漏洞功能,可以下载和安装Windows补丁 41. IDT钩子的检测和恢复 42. 禁止进城创建,新建文件,注册表修改等配置 43. 注册表功能,几乎可以无视一切隐藏注册表的钩子 44. SPI的检测 45. 通过磁盘解析进行文件浏览 46. 文件强制拷贝功能,可拷贝网络视频的缓存文件 47. 通过磁盘解析取得和拷贝ADS流文件 48. 添加和查看文件重启删除信息 49. Disk/Atapi驱动钩子的检测和恢复 50. 进程权限的枚举和摘除 51. 检测键盘侦听软件 52. 检测被监视的文件 2010-12-05 PowerTool V3.2 增加: 1. 新增过滤驱动的检测,不仅可以显示驱动名还能显示设备名 2. 新增检测键盘侦听软件 3. 新增检测被监视的文件 4. 新增组策略中开关机脚本的解析(感谢天月来了和wo1234指点思路) 改善: 1. 修改了启动时大量占用内存的BUG(感谢曲中求的提醒) 2. 加强了文件厂商的取得,修正文件不存在的BUG(感谢tawny2008的提醒) 3. 改进了列表的现实,当显示不下,鼠标移动到上面去就可以完整显示(感谢FreeEquFraT的意见) 2010-11-17 PowerTool V3.1.2 改善: 1. 修改了加载驱动失败后无法启动的BUG 2. 修改了无法显示某些进程的BUG 2010-11-16 PowerTool V3.1 增加: 1. 新增Disk/Atapi驱动钩子的检测和恢复 2. 新增进程权限的枚举和摘除 改善: 1. 修改了与COMODO等HIPS不兼容,导致无法启动等问题 2. 加强了防止注入的逻辑 3. 加强了进程粉碎的逻辑 4. 修改了进程路经过长无法显示的bug 2010-11-03 PowerTool V3.0 增加: 1. 新增通过磁盘解析取得和拷贝ADS流文件 2. 新增动态切换多国语言界面(考虑到文件大小,没有把EnglishDll.dll绑定到PowerTool里面去,不需要英文界面的朋友,把EnglishDll.dll删掉也没关系) 3. 新增添加和查看文件重启删除信息 改善: 1. 重要的系统文件可以在PT直接编辑保存(保存之前会先备份文件) 2. 修改了文件和注册表的跳转 3. 区别文件夹颜色,隐藏属性的是蓝色,非正常文件夹是红色 2010-10-24 PowerTool V2.9 增加: 1. 新增通过磁盘解析进行文件浏览 2. 新增文件强制拷贝功能,可拷贝网络视频的缓存文件 改善: 1. 模块列表里默认不显示微软模块 2. 加强了文件粉碎的功能,可强删SysReveal删不掉的文件 3. 加强了目录删除的功能,可删除畸形目录 2010-10-10 PowerTool V2.8 增加: 1. 新增SPI的检测 2. 新增窗口置顶,快速重启,释放内存,监视带有Auturun.inf的U盘等小功能 3. 新增进程的EAT钩子检测 改善: 1. 将启动时检测新版本改为了点击[在线升级]是下载新版本 2. 修正了文件和注册表跳转的BUG 3. 修正了安全模式下无法加载驱动的BUG 4. 修正了XP下畸形目录无法浏览的BUG 5. 修正了一键修复时报错的BUG 2010-09-26 PowerTool V2.7 增加: 1. 新增注册表功能,几乎可以无视一切隐藏注册表的钩子 2. 新增重要文件夹的快速跳转功能 3. 可备份windows服务和启动项 4. 新增自动检测新版本并且下载 改善: 1. 修正了禁止进程创建,注册表修改等配置的BUG 2. 修正了文件粉粹里无法浏览System Volume Information目录的BUG 3. 修正了Windows服务里菜单状态的BUG 4. 修正了无法上传到filterbit的BUG 2010-08-22 PowerTool V2.6 增加: 1. 新增修复漏洞功能,可以下载和安装Windows补丁 2. 新增IDT钩子的检测和恢复 3. 新增禁止进城创建,新建文件,注册表修改等配置 改善: 1. 修正了内存,文件大小排序的BUG 2. 修正了删除不存在的文件导致explorer.exe崩溃的问题 3. 修正了文件检索默认乱码的问题 4. 增加服务能跳转到对应的注册表 5. 修改下拉箭头不能正常显示的问题 6. 把所有的文件绑定到PowerTool.exe上 2010-08-11 PowerTool V2.5 改善: 1. 修正由于硬件检测导致无法启动的BUG 2010-08-10 PowerTool V2.5 增加: 1. 部分CPU/硬盘/显卡/主板的温度检测 CPU:(Intel "Core Duo", "Core Solo", "Core 2 Duo", "Core 2 Solo", "Core 2 Quad", " Pentium", "Core i3/i5/i7/i9", "Celeron" series (Conroe/Merom architecture and newer)) AMD的CPU的温度检测方法和Intel的不一样,而且我手头也没有AMD的CPU,所以这次只写了Intel的CPU的温度检测 显卡: Nvidia 和 ATI的温度,主板集成的显卡无法检测 硬盘:支持S.M.A.R.T. 特性的硬盘 主板:目前该检测功能较弱,以后会继续加强,包括主板芯片组,风扇的转速等等 2. 部分硬件信息的确认 改善: 1. 进程的父ID和用户名 2. 修正XP里面无法显示进程运行时间 3. 修正删除文件夹时多次弹框 4. 修正Autorun.inf文件夹误报问题 5. 进程和模块的窗口可以拉伸 6. 共享文件夹可以取消共享 7. 修正定位文件只能定位到文件夹的BUG 8. 暂时删除了皮肤库 2010-08-01 PowerTool V2.4 增加: 1. FSD Hook的检测和删除 2. Object Hook的检测和删除 改善: 1. 进程右键单击的话不再会自动刷新 2. 修正模块排序问题 3. 修正进程排序问题 2010-07-27 PowerTool V2.3加强版 增加: 1. 系统重要文件的确认 2. 问题反馈功能 改善: 1. 加强了广告图标/流氓快捷方式的检测 2. 增加了7种启动项目的检测 3. 增加了IE的BHO插件和ActiveX插件 4. 微软进程被插入其他模块希望能用红色显示,区别于未插入其他模块的微软进程和其他应用程序进程 2010-07-18 PowerTool V2.3 增加: 1. 系统恢复功能(检测项目包括注册表关键部位,已安装的杀毒软件,AutoRun文件,Windows漏洞检测,共享文件夹) 2. 流氓快捷方式的检测和删除 3. 镜像劫持的检测和删除 4. 文件关联的检测和删除 5. IE相关的检测和删除 改善: 1. 修改了mini文件驱动的蓝屏BUG 2. 修改了自我保护导致蓝屏的问题(感谢dl123100) 2010-07-11 PowerTool V2.2 增加: 1. 查看和摘除mini文件驱动 2. 查看和摘除文件/鼠标/键盘/网络等过滤驱动 改善: 1. 和微点无法共存的BUG 2. 改进了进程API钩子检测的逻辑 3. 可调整窗体的大小 4. 增加导出功能 2010-06-27 PowerTool V2.1 增加: 1. 查看和摘除用户层的钩子 2. 查看和结束内核线程 3. 关机回调的清除 改善: 1. 文件刷新显示错误的BUG 2010-06-10 PowerTool V2.0 改善: 1. 浏览文件时程序崩溃的BUG 2. Win2003下看内核定时器时蓝屏的BUG 2010-06-09 PowerTool V2.0 增加: 1. 上传文件在线扫描病毒 改善: 1. 超长路径名导致无法显示和删除的BUG 2. 注册表遗留项目忘记删除BUG 3. 修改驱动增强稳定性 2010-06-06 PowerTool V2.0 增加: 1. 暂停进程运行和恢复进程运行 2. 进程模块的内存的dump 3. 进程的线程的查看和结束 4. 进程的窗口的查看和控制 5. 进程的定时器的查看和摘除(该功能还没对应Windows2003) 6. 内核定时器的查看和摘除 改善: 1. 加入皮肤库,美化了界面 2010-05-23 PowerTool V1.9 增加: 1. SSDT/Shadow SSDT钩子的查看和卸载 2. 各种内核回调的查看和卸载 2010-05-13 PowerTool V1.8 增加: 1. 集成文件粉碎功能到系统右键菜单 2. 新增消息钩子的查看和卸载 2010-05-03 PowerTool V1.7 修改: 1. 加强了文件粉碎的强度 2. 改进了通配符检索文件的逻辑 3. 所有的功能内,所有不属于Microsoft的文件均以蓝色显示,以示区别 增加: 1. 新增文件夹为单位的删除功能 2. 新增内核模块和驱动的查看和管理 3. 新增启动项的查看和管理 4. 新增系统服务的查看和管理 2010-04-18 PowerTool V1.6 修改: 1. 支持批量删除文件 增加: 1. 可以在所有NTFS格式硬盘的数据中检索文件,并可将检索结果删除 2010-04-03 PowerTool V1.5 修改: 1. 强化进程粉碎功能 增加: 1. 采用美国国防部DOD 5220.22-m标准阻止文件还原 2. 可以从其它进程里强制卸载模块 3. 可以检索模块被哪些进程使用了 2010-03-27 PowerTool V1.3 修改: 1. 改进了Unlock功能,可解锁/强删Unlocker/超级巡警文件粉碎机/金山文件粉碎机等 无法解锁的文件 增加: 1. 增加了简易的自我保护功能 2010-03-21 PowerTool V1.2 修改: 1. 改进了文件粉碎的逻辑,基本上可以删除顽固文件 2. 改进了进程粉碎的逻辑,基本上可以关闭顽固进程 增加: 1. 增加了文件的管理,可以彻底检测所有隐藏文件,安全可靠 2. 可以查看文件锁定/被占用的情况,并可以解锁/unlock 2010-03-16 PowerTool V1.1 改进: 1. 增加了进程管理,枚举隐藏进程/模块的功能,基本上所有的进程都能看到了 2010-03-01 PowerTool V1.0 功能: 1. 简易的文件/进程粉碎机

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧