请教:如何实现程序的自我保护

35 views
Skip to first unread message

Jie Chen

unread,
Nov 20, 2013, 10:14:19 PM11/20/13
to ks-...@googlegroups.com
Hi all,

code.ijinshan.com看到金山卫士的源代码,想学习下关于程序自我保护的问题。也就是除了指定的按钮,无法从任务管理器等方式杀掉。

请问对应的样例代有么?

Jtian

unread,
Nov 20, 2013, 11:05:36 PM11/20/13
to ks-deve
金山开源的代码只有一个界面库,没有你要找的功能的。关于你的问题,有两种简单的方式可以达到你的目的,1.R3层,dll注入任务管理器进程,hook掉TerminateProcess函数,...;2.R0层,hook掉ZwTerminateProcess函数,...。
两种方法各有有缺。



------------------ 原始邮件 ------------------
发件人: "Jie Chen";<fyk...@gmail.com>;
发送时间: 2013年11月21日(星期四) 中午11:14
收件人: "ks-deve"<ks-...@googlegroups.com>;
主题: [ks-deve] 请教:如何实现程序的自我保护

Hi all,

code.ijinshan.com看到金山卫士的源代码,想学习下关于程序自我保护的问题。也就是除了指定的按钮,无法从任务管理器等方式杀掉。

请问对应的样例代有么?

--
--
邮件来自Google Groups:"ks-deve"金山卫士开源社区技术邮件列表
主题: 任何有关开源作品的开发/增进/再应用 等技术话题
发言: ks-...@googlegroups.com 订阅后向此邮箱发信
订阅: ks-deve+...@googlegroups.com 向此邮箱发邮件即可
退订: ks-deve+u...@googlegroups.com 向此邮箱发邮件即可
注意! 这是邮件列表不是BBS,只是被翻译成"论坛"
规约: http://code.ijinshan.com/trac/wiki/KnossDiscussRule
官网: http://code.ijinshan.com/
论坛: http://bbs.code.ijinshan.com
建议: 有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

---
You received this message because you are subscribed to the Google Groups "ks-deve 金山卫士开源社区开发讨论列表" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ks-deve+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

cee1

unread,
Nov 20, 2013, 11:16:36 PM11/20/13
to ks-...@googlegroups.com
在 2013年11月21日下午12:05,Jtian <water...@qq.com> 写道:
> 金山开源的代码只有一个界面库,没有你要找的功能的。关于你的问题,有两种简单的方式可以达到你的目的,1.R3层,dll注入任务管理器进程,hook掉TerminateProcess函数,...;2.R0层,hook掉ZwTerminateProcess函数,...。
> 两种方法各有有缺。

多谢答复!

R0层的形式,也就是以驱动的方式么?
不知道哪有实现的样例代码可供参考?

cee1

unread,
Nov 21, 2013, 10:06:28 AM11/21/13
to ks-...@googlegroups.com
在 2013年11月21日下午12:16,cee1 <fyk...@gmail.com> 写道:
> 在 2013年11月21日下午12:05,Jtian <water...@qq.com> 写道:
>> 金山开源的代码只有一个界面库,没有你要找的功能的。关于你的问题,有两种简单的方式可以达到你的目的,1.R3层,dll注入任务管理器进程,hook掉TerminateProcess函数,...;2.R0层,hook掉ZwTerminateProcess函数,...。

R0层hook掉ZwTerminateProcess函数,似乎在64位的vista以后版本无法实现。
Any idea?

Jtian

unread,
Nov 21, 2013, 10:18:16 AM11/21/13
to ks-deve
64位的没研究过,大家都说windows64位的驱动层不支持hook,貌似是因为有个PatchGuard(可能有绕过去的方法,但是方法不实惠)。64位的话,还是放弃R0层hook的方法吧。


------------------ 原始邮件 ------------------
发件人: "cee1";<fyk...@gmail.com>;
发送时间: 2013年11月21日(星期四) 晚上11:06
收件人: "ks-deve"<ks-...@googlegroups.com>;
主题: Re: 回复:[ks-deve] 请教:如何实现程序的自我保护

Jason Wang

unread,
Nov 21, 2013, 11:19:14 AM11/21/13
to ks-...@googlegroups.com
ObjectHook 在x64上应该可以

cee1

unread,
Nov 21, 2013, 11:53:06 PM11/21/13
to ks-...@googlegroups.com
在 2013年11月21日下午11:18,Jtian <water...@qq.com> 写道:
> 64位的没研究过,大家都说windows64位的驱动层不支持hook,貌似是因为有个PatchGuard(可能有绕过去的方法,但是方法不实惠)。64位的话,还是放弃R0层hook的方法吧。

R3注入任务管理器进程的话,一般安全软件会有提示,需要用户确认?
另,如果用户不通过任务管理器,使用其他方式,例如金山卫士的任务管理器,也能关掉受保护的进程吧?

看到金山毒霸有自我保护方式,不知道是怎么实现的。


--
Regards,

- cee1

cee1

unread,
Nov 22, 2013, 12:09:32 AM11/22/13
to ks-...@googlegroups.com
在 2013年11月22日上午12:19,Jason Wang <wjcs...@gmail.com> 写道:
> ObjectHook 在x64上应该可以
>
多谢回复。

请问,Hook哪个Object的什么函数?google了下没查到什么直接的资料,哪边有进一步的信息?(论坛、群...)
Reply all
Reply to author
Forward
0 new messages