首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
3个月没更新了- -| 回首页 | 2005年索引 | - -破解QQ2005Beta3的“键盘加密保护技术”

IceSword似乎被研究的差不多了

                                      

     驱动开发网上悬赏破解IceSword,重赏之下必有勇夫啊。

    http://bbs.zndev.com/read.php?tid=97320

    http://bbs.zndev.com/read.php?tid=98377

    最让我“吃惊”的是IS列举进程的办法竟然是通过PspCidTable,晕啊。我记得很久以前我写knlps0.4的时候,就在幻影论坛提到过这个办法。这个办法被公开就完全失效了,所以我没有用它来实现knlps0.5。我本以为,IS应该是利用了某些无法被轻易修改的系统数据结构来列举进程。线程调度链表算一种,但IS不是用它。我能想到的就只有在非分页内存里搜索EPROCESS了。其它各种各样的“表”都可以很容易的涂改掉,只要知道是哪张“表”。虽然非分页内存也可以看作一张“表”,但改起来比较麻烦。

    关于IS的反调试,知道谜底了自然觉得没什么大不了的。不过我是个完全不会猜谜的人,所以没猜到也不觉得可惜。既然pjf是挑战赛的裁判,估计IS2.0会有不小的改进吧。希望将来谜底公开的时候,不会让我“不觉得可惜”,呵呵。

    wuyanfeng对IS驱动的分析,没说是什么版本。所以我下载了一个1.12en版,看看有啥变化。反WinDbg调试有点不一样了,以前(1.06)是只在启动的时候判断一次KdDebuggerEnabled,如果非零就调用KdDisableDebugger,现在是不断地检查它。我把KdDisableDebugger入口改成了ret指令,结果调试器不会被断开了,但CPU占用100%。一计不成又生一计,我在KdDebuggerEnabled上设内存读断点,想等IS读的时候,给IS打个“补丁”。结果在调试状态下,总是系统的KeUpdateSystemTime和KdPollBreakIn例程在读取,IS完全没有机会动。两个系统例程读取KdDebuggerEnabled的值后,紧接着是jz和jnz指令,哈,分别改成jnz和jz,再把KdDebuggerEnabled改成0,搞定!建议pjf用关闭调试端口的办法反WinDbg。靠判断KdDebuggerEnabled实在太容易pass了。

    涂改了PspCidTable,发现还是可以隐藏进程,失望ing。

【作者: zzzevazzz】【访问统计:】【2005年09月22日 星期四 02:32】【注册】【打印

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2997142

来自Neeao's Security Blog的IceSword浼间箮琚爺绌剁殑宸笉澶氫簡的引用:

鏉ヨ嚜锛歔url=http://zzzevazzz.blogchina.com/2997142.html]zzzevazzz鈥榮 blog [/url] 椹卞姩寮?鍙戠綉涓婃偓璧忕牬瑙ceSword锛岄噸璧忎箣涓嬪繀鏈夊媷澶晩銆? http://bbs.zndev.com/read.php?tid=97320 http://bbs.zndev.com/read.php?tid=98377 鏈?璁╂垜鈥滃悆鎯娾?濈殑鏄疘S鍒椾妇杩涚▼鐨勫姙娉曠珶鐒?...

回复

- 评论人:XFreeBOY   2005-09-24 12:21:49   

对,我就发现有时提升了权限来杀hxdef进程也是杀不掉,但是把它里面的线程一个个结束掉就OK了!

- 评论人:zzzevazzz   2005-09-23 23:11:19   

把所有的线程都“终止”--排除出调度链表,不就搞定了吗?

- 评论人:XFreeBOY   2005-09-23 19:43:04   

老大可不可以分析下Icesword的结束进程的功能啊?应该也是与众不同吧.

- 评论人:XFreeBOY   2005-09-23 19:36:23   

为什么现在才被人分析出来,是大牛们都太懒了吧,呵呵

验证码:   
评论内容: