首页
社区
课程
招聘
[求助]求助HOOK API
发表于: 2007-8-12 21:14 11273

[求助]求助HOOK API

2007-8-12 21:14
11273
最近在写一个服务程序,想加入一个防杀功能,具体就是想HOOK TerminateProcess.

请高手指点一下,最好能给点代码参考一下,比较菜,没办法啊.

   谢谢!

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

收藏
免费 0
支持
分享
最新回复 (26)
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
从OpenProcess下手比较好。。
TerminateProcess涉及到hProcess=>ProcessId的转换(当然,可以用ZwQueryInformationProcess完成)
2007-8-13 00:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
HOOK API有很多啊,这个刚好符合你的要求,也是防杀功能

【原创】汇编ring3下实现HOOK API续之备份函数法
2007-8-13 01:04
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
OpenProcess  安装钩子后,容易失败...
钩TerminateProcess  网上有例子吗?
2007-8-13 19:19
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
5
防杀?放弃吧 别说ring3 就算ring0都难防!
2007-8-13 19:32
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
#5有点绝对吧? 呵呵

从插入APC(Hook KeInitializeApc),附加到进程(Hook Ke(Stack)AttachProcess),模拟发送消息(Hook NtUserPost(Thread)Message 这个可以简单的修改Shadow表来完成,前面两个得inline)三个方面入手基本就差不多了

我写st的时候也是inline  不过没管APC和消息模拟,呵呵~  
如果你能按照我说的来hook~  IS 1.22,RkU 3.7,DS 1.0.5.0都是杀不掉你的进程的  呵呵
2007-8-13 20:19
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
呵~  应该是你的hook的问题吧。。  我hook过NtOpenProcess,似乎没出现什么失败的情况
钩TerminateProcess的例子没找过,你可以自己用ZwQueryProcessInformation来查询给TerminateProcess传入的hProcess的PID值,然后判断该放行还是直接返回。
2007-8-13 20:21
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
对了  如果楼主没写过驱动就别看偶在#6说的了 那些都是驱动中干的
2007-8-13 20:24
0
雪    币: 217
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我可以异常注射到你进程中,一些call 0x413333  等代码,远程线程,或者SetHOOKEx,就是在你进程中不负责的运行代码,搞死你,你怎么防
2007-8-13 21:56
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
hook PsLookupProcessByProcessId, hook自己的LoadLibraryEx
2007-8-13 22:37
0
雪    币: 222
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
不好意思,好像记错了……编辑掉编辑掉
2007-8-14 03:25
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
12
嘿嘿! 不调用OpenProcess 不AttachProcess 甚至ring0都不用
1,如果是窗体程序 全局钩子注入->ExitProcess
2,任何程序,修改线程Context 执行ExitProcess
.....................
我想你总不会不让自己的程序关闭吧?

还有 所有的防御都是基于HOOK 但是绕开hook的代码 也是一件非常简单的事
如 ring3 HOOK OpenProcess 我就直接调用NtOpenProcess  NtOpenProcess也hook了 我就直接调用sysenter。ring0也inline HOOK了,可以恢复或绕开被HOOK代码,请问 所有种种情况 防得了么
2007-8-14 20:52
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
13
嘿嘿~  我的确干过这种事~ 在ring0 inline PspExitThread 只要企图退出的线程是我自己的~ 全部拦截 ~  嘿嘿
2007-8-15 12:50
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
14
hook的狠程度貌似在这儿没有提及  如果要狠的话 就在所有xxSwapXXXX上下钩子 然后互相回复 并且检查程序本身的hook

这些都是很简单的
2007-8-15 12:51
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
15
顺便说一下你的全局钩子注入+ExitProcess
拦截dll注入………………恩。。。简单到没天理………………
2007-8-15 12:52
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
16
IceSword的驱动中就禁止了自己的关闭~  恩。。自己去试验~ 具体不多说
2007-8-15 12:54
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
17
没必要打口水战 炉子 就用尽你所想到的变态方法做一个EXE丢上来 看看能不能关闭
你有本事hook 别人就有本身恢复或绕过

IceSword很牛 我承认! 但是我只用任务管理器就可以关闭它的进程:打开两个IceSword.exe,打开任务管理器找一个可以看到用户名的冰刃进程关,然后继续关第二个。
怎么样?简单吧!你认为你可以把所有情况想到并实现?
2007-8-15 16:23
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
18
如果你的程序启动在先 你可以拦截注入,如果我的钩子安装比你的程序启动先呢?防钩子注入 还会非常简单?有简单方法 你教教我
2007-8-15 16:31
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
19
拼启动顺序只是个无聊的事情——MJ0011

反关闭没必要去弄所谓的hook  把PspCidTable涂掉 你关进程80%的可能都要蓝  自己试验去
2007-8-15 18:50
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
20
顺便说一下 现在已经走题了  如果你真的没事干的话 你开个单贴来说 我在9月之前奉陪
2007-8-15 18:52
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
21
你让我拿出来我的反关闭的
那你的process killer呢?
貌似先找事的不是我
2007-8-15 19:46
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
NaX
22
算了 没什么好争的 如果我的话伤了你 对不起
2007-8-15 19:52
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
基本上自己都可以杀掉.
只能防君子,小人是防不住的.
2007-8-15 22:55
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
24
LS的是SB?

这和君子小人有毛的干系?
2007-8-16 13:57
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
25
为什么这么多人都让楼主放弃呢?
扼杀别人的想法很有意思么?
2007-8-16 20:42
0
游客
登录 | 注册 方可回帖
返回
//