VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 5528|回复: 16

[求助] 问一个难与不难之间的问题,DLL直接远程注入hook 按键(非按键消息注入)

[复制链接]
发表于 2012-10-23 07:55:16 | 显示全部楼层 |阅读模式
  问题是这样的:一个DLL直接远程注入一个EXE,随便一个按键呼出界面。


  这个问题说不难是因为做按键消息hook 很简单。说难把 做按键hook 我只知道用消息按键HOOK来做。

点评

那你就把按键消息hook写到DLL里面呗,然后在DllMain里面启动Hook  发表于 2012-10-23 22:04

本帖被以下淘专辑推荐:

 楼主| 发表于 2012-10-23 22:06:23 | 显示全部楼层
就是问题怎么去写是一个问题!

点评

估计是哪个都不会  发表于 2012-10-24 08:02
“你只知道用消息按键HOOK来做”,意思是说你会写,否则应该说你哪个都不会才对……要不你先写个VB的  发表于 2012-10-23 23:13
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-24 08:17:37 | 显示全部楼层
好吧!我把写了的代码上传。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

VB的写好之后就照葫芦画瓢,翻译成C/C++的  发表于 2012-10-24 13:44
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-24 13:51:17 | 显示全部楼层
我就是想写VB的 直接写一个DLL出来但不知道怎么写!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-26 08:17:32 | 显示全部楼层
有人指点一下嘛?自己写的代码已经在3楼!

点评

C/C++不会用的话,用PowerBasic/FreeBasic写DLL也行,反正语法和VB差不多  发表于 2012-10-26 10:33
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-26 18:40:18 | 显示全部楼层
@acme_pjz  代码已经写出来了!只是不是直接远程注入DLL 需要一个EXE 来安装消息钩子 我想直接省略了 EXE 直接用什么注入器都可以!

点评

你写的钩子是仅对本程序有效,还是全局的?如果已经是注入的话就只需要仅对本程序有效的钩子,在DllMain的PROCESS_ATTACH里面装钩子  发表于 2012-10-26 23:23
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-27 07:53:35 | 显示全部楼层
@acme_pjz  只是局部对程序本身! 问题是怎么封装!不知道 是不是 SetWindowsHookEx 最后一个参数设置不好的问题!注入后没反应!

点评

我不知道,为什么要用Ex的函数?  发表于 2012-10-27 12:15
回复 支持 反对

使用道具 举报

发表于 2012-10-27 12:46:44 | 显示全部楼层
步骤:把dll注入目标进程,dllmain事件里面创建一个线程,在线程里面创建一个窗体并隐藏,在窗体的load事件里面安装一个键盘钩子,在钩子函数里面判断按键 if 按键 = 热键 then 窗体显示

点评

估计DLL不是VB写的  发表于 2012-10-27 12:56
回复 支持 反对

使用道具 举报

发表于 2012-10-27 13:21:08 | 显示全部楼层
如果能实现这样的功能是不是就能满足你的要求.
弄一个全局键盘Hook(当然这个是VC写的,不过有封装好的),然后如果有按钮消息,就在VB的回调函数中处理,在这个回调函数中做你想做的事.(比如当前你要注入并操作的EXE主窗体刚好有焦点,你又按下了你设定的热键,这时候就弹出你想要的窗体,窗体在VB这边做好)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-27 18:32:31 | 显示全部楼层
菜鸟学飞 发表于 2012-10-27 12:46
步骤:把dll注入目标进程,dllmain事件里面创建一个线程,在线程里面创建一个窗体并隐藏,在窗体的load事件里面 ...

可以帮我改改3楼的代码吗?随便回复一下@
acme_pjz,DLL是VB写的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-5 11:21

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表