首页
社区
课程
招聘
[求助]HOOK 控制台程序
发表于: 2013-12-18 15:15 6706

[求助]HOOK 控制台程序

2013-12-18 15:15
6706
我的目的是 监控系统里 控制台程序的 输入参数

之前使用 setwindowhookex 的方法 发现只能hook gui程序 并不能 hook所有的 控制台程序,谁能给点思路 谢谢大家了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 101
活跃值: (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
HOOK CreateProcess 吧

BOOL WINAPI CreateProcess(
  __in          LPCTSTR lpApplicationName,
  __in_out      LPTSTR lpCommandLine,
  __in          LPSECURITY_ATTRIBUTES lpProcessAttributes,
  __in          LPSECURITY_ATTRIBUTES lpThreadAttributes,
  __in          BOOL bInheritHandles,
  __in          DWORD dwCreationFlags,
  __in          LPVOID lpEnvironment,
  __in          LPCTSTR lpCurrentDirectory,
  __in          LPSTARTUPINFO lpStartupInfo,
  __out         LPPROCESS_INFORMATION lpProcessInformation
);



  __in          LPCTSTR lpApplicationName,
  __in_out      LPTSTR lpCommandLine,

这个两个参数
2013-12-18 15:26
0
雪    币: 29
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
能具体点么  你所指的hook方法 是在ring0下 去hook  createprocess函数么 还是在 ring3下 使用dll注入的相关方法
2013-12-18 15:34
0
雪    币: 101
活跃值: (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
你是想监控cmd命令行中输入的进程参数之类的吧
比如说notepad.exe c:\1.txt
想监控到c:\1.txt?是这样吗

r0、r3到无所谓,因为你输入这个命令之后cmd是会调用CreateProcessW或者CreateProcessA来打开进程的,你从他的第一个和第二个参数中就可以找到这个命令行的输入参数了。

如果想钩内核参数就找CreateProcess对应的内核函数就好了,可能是Zw<XXX>
2013-12-18 16:45
0
雪    币: 29
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
对 就是你说的这个目的
我现在迷惑在 如何对这个 createprocess 进行hook 其实hook commandline也可以 就是没有想到如何使系统里的所有控制台程序都能被 hook住  之前 使用setwindowhook 这个只能hook gui的程序 hook不住 控制台,远程线程注入只针对 特定的一个进程 不能针对系统所有的进程
2013-12-18 16:53
0
雪    币: 101
活跃值: (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
我刚试了一下,Ring3hook CreateProcessW就可以了。你试试
2013-12-18 17:21
0
雪    币: 14
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼主说的是注入。。
2013-12-18 17:45
0
雪    币: 98
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
HOOK掉createprocess  然后suspend 注入 在resume。。。 什么悟性
2013-12-18 19:08
0
雪    币: 29
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
怎么 注入的dll 能让 注入到 系统全局
2013-12-19 09:12
0
雪    币: 29
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
resume 能 注入到 系统全局么 就是注入到 所有进程 有点迷惑
2013-12-19 09:14
0
雪    币: 101
活跃值: (82)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
你把你setwindowshookex的代码贴出来我看看,我用的也是这个能消息注入到全局
2013-12-19 10:54
0
雪    币: 29
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
是的 能注入全局 问题是 setwindowshookex是针对 windows消息循环的 console程序 都没有消息循环机制,所以收不到消息 也就触发不了 hook
2013-12-19 15:25
0
雪    币: 29
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
比如 你写一个最简单printf(” hello world“)  程序  运行一下  就无法输出参数  因为hello world没有消息循环 不是GUI程序
2013-12-19 15:27
0
游客
登录 | 注册 方可回帖
返回
//