wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
20楼#
发布于:2008-04-06 14:41
主要是提供一种想法,而且很多人动不动就清CALLBACK例程,经过我这么一折腾,他再要清我的CALLBACK就没那么容易了.至于2K同样的处理更简单,不过考虑靠MS从今年6月以后就放弃XP了,所以不考虑也罢.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
21楼#
发布于:2008-04-06 14:51
只要把你那个清了就都清了,,他们都省事了。。。
驱动开发者 呵呵
jACKNI
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2008-07-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望19点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2008-04-06 22:10
汗,的确是我看错题目了。难怪驱动加载不起。
要过他的call back 不难。Terminate之前:
到pspCidTable表里把把psxx的 eprocess地址拷贝到自己的在pspCidTable的偏移地址,然后用你的PID覆盖psxx eprocess中的PID和 psxx 线程ethread 里头的PID。
然后通过自己的PID zwopenprocess,这时获得句柄其实就是psxx进程的句柄了。这时再 Terminate ,是可以绕过他的call back的,但是依然无法终止进程。唉。因为这个程序实在太强了。sys启动后,notify函数里只判断当前进程及线程的创建是否与psxx PID相同,只要相同不管创建还是终止,直接KeDelayExecutionThread。而psxxxexe在sleep的也不知咋滴就创建了一个线程,不是人为代码创建,系统自己创建的,虽然是自身创建,但由于它在psxx里头,因此自己的线程在notify的时候直接就被自己的驱动直接KeDelayExecutionThread。
所以你在zwterminate哪怕过了notify,也只能关闭ring3 sleeep那个线程。整个进程无法被关闭,因为在等待自己另一个线程从KeDelayExecutionThread中返回。而这个函数不返回。就这样保护了自己的进程。就不知道是故意安排还是歪打正着???
 
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
23楼#
发布于:2008-04-06 22:17
当然是故意安排了,PspExitThread和PspExitProcess都要走notify,因此只要你用这两条路退出,基本就必然走notify
一个进程当然至少有一个线程,sleep只是把线程切换出去而已
驱动开发者 呵呵
powerboot
驱动牛犊
驱动牛犊
  • 注册日期2007-12-15
  • 最后登录2009-12-26
  • 粉丝0
  • 关注0
  • 积分92分
  • 威望46点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2008-04-07 14:03
不知道这个答案是不是一个让人信服的结果啊
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
25楼#
发布于:2008-04-07 15:21
引用第24楼powerboot于2008-04-07 14:03发表的  :
不知道这个答案是不是一个让人信服的结果啊

信服的结果就是拿个另外进程的PID,TID替换到MJ的进程里,因为在CALLBACK里只能收到PID和TID之类的信息,即使去查EPROCESS也是错的,总而言之就是欺骗.可惜的是CALLBACK里没把EPROCESS也传进去.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
jACKNI
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2008-07-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望19点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2008-04-07 16:17
我试过了,还找不到好的关闭方案,在PID替换之后,我先另外插了个内核apc到那个mj那个KeDelayExecutionThread线程里,然后掉pspexitthread,总算把顽固线程关了。然后在zwterminate 关闭进程,zwterminate返回成功,用!process命令看,发现EPROCESS还没被替换出链表,但是mj进程里所有线程都被关闭了。F5后,虽然没线程,但是那个命令行窗口依然在.那叫一个汗啊。尝试terminate后调pspprocessdelete,掉完后,eprocess的确也被替换出链表了,但是F5就兰.
boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
27楼#
发布于:2008-04-07 16:37
哈哈 这么好玩啊,MJ真是流氓,以后流氓都用这个方法
lazydog
驱动牛犊
驱动牛犊
  • 注册日期2004-07-08
  • 最后登录2009-10-30
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望85点
  • 贡献值0点
  • 好评度72点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2008-04-07 16:46
看看多无聊的家伙们啊~
powerboot
驱动牛犊
驱动牛犊
  • 注册日期2007-12-15
  • 最后登录2009-12-26
  • 粉丝0
  • 关注0
  • 积分92分
  • 威望46点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2008-04-07 18:49
引用第28楼lazydog于2008-04-07 16:46发表的  :
看看多无聊的家伙们啊~

请LS的把这个保护破掉再来说我们无聊好不好?
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
30楼#
发布于:2008-04-07 19:14
f5是什么?

WOW巨牛,貌似替换PID的方法被证实不好用。会出问题
驱动开发者 呵呵
jACKNI
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2008-07-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望19点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2008-04-07 22:25
F5 就是键盘最上面一排地6个键-_-.
启动了ppxx后,
kptest.rar中,先用驱动加载工具加载kpsys.sys,然后启动kp.exe.就能把ppxx的进程给关了。
原理就是除了上面说的PID更改+unmapXXXX.
忘了,在xpsp2下测试通过
附件名称/大小 下载次数 最后更新
kptest.rar (22KB)  42 2008-04-07 22:25
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
32楼#
发布于:2008-04-07 22:28
F5估计就是GO的意思.替换的时机应该在调用CALLBACK之前和调用好以后,因为在CALLBACK是没有影响的,所以我认为不做HOOK是不好处理的.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
33楼#
发布于:2008-04-07 23:01
且不说这种方法有时候可以有时候不可以.如果把MJ的程序稍做改动,在DEVICEIOCONTROL保存的是当前的EPROCESS,然后在回调里比较传入的PID和自己的EPROCESS里的PID进行比较的话,马上就失效了.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
jACKNI
驱动牛犊
驱动牛犊
  • 注册日期2005-07-18
  • 最后登录2008-07-29
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望19点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2008-04-07 23:04
wowo老大所言极是,做hook的确是最好的办法。也是最稳定的办法。PID变更在稳定上和hook 没法比。
问题是ppxx有个线程太顽固,我也是没办法。大部分时间是花在了怎么干掉那个顽固线程上,还有的就是线程干掉了,它窗口居然还在。还有一些时间是花在了怎么干它窗口上?
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
35楼#
发布于:2008-04-08 08:09
因为你的操作干扰了系统的正常行为,所以可能出现很多莫名其妙的问题.整个WINDOWS浩如烟海,即使我们都K,WRK里的东西也不能保证和其保持一致,所以只能是局部处理,把影响的部分最小化.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
36楼#
发布于:2008-04-08 15:32
给窗口发关机消息呢?
没有战争就没有进步 X3工作组 为您提供最好的军火
codez
驱动牛犊
驱动牛犊
  • 注册日期2005-06-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望73点
  • 贡献值0点
  • 好评度49点
  • 原创分0分
  • 专家分0分
37楼#
发布于:2008-04-09 11:42
说了一圈,最后又回到我提出的两个办法而已。
1. 清链;
2. 改 pid;

人家都说这是作弊了好不好?你们换个方法吧。偶也学习一下
poize
驱动牛犊
驱动牛犊
  • 注册日期2005-08-17
  • 最后登录2013-09-13
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望32点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
38楼#
发布于:2008-04-10 16:46
强烈建议MJ出来公布答案
wang_sir
驱动牛犊
驱动牛犊
  • 注册日期2003-10-19
  • 最后登录2010-08-10
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望37点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
39楼#
发布于:2008-05-10 18:22
該進程能否 Inject?
如果可以注入一段代碼,這段代碼執行時,把EIP指到零。

行不行得通?
游客

返回顶部