能力值:
( LV2,RANK:10 )
|
-
-
51 楼
TX要跨省追捕看雪老大 咋办
|
能力值:
( LV2,RANK:10 )
|
-
-
52 楼
试验后没用,照他那样修改后,直接蓝屏
|
能力值:
( LV8,RANK:120 )
|
-
-
53 楼
楼上的,仔细检查自己的代码.
分析我的思路和逻辑.
真正看懂了,做到了.再发表.起码不会信口雌黄
下面我给出你PM来的代码.有时间人也看看吧
可以看下你的逻辑吗?
我这样hook,dnf一启动就蓝了
__declspec(naked)VOID yjxsoft_com_OpenProcess() { __asm { call yjxsoft_com_dnf_proc test eax,eax jz label push dword ptr [ebp-38h] push dword ptr [ebp-24h] mov eax,ntopenprcaddr add eax,0bh push eax mov eax,TPObOpenObjectByPointerproaddr jmp eax label: push dword ptr [ebp-38h] push dword ptr [ebp-24h] mov eax,ntopenprcaddr add eax,0bh push eax jmp ObOpenObjectByPointeraddr
}
}
虽然凌晨3点了,我还是打算和你一起分析一下.
按你的逻辑
call yjxsoft_com_dnf_proc
应该是判断访问进程,返回值在EAX当中
ntopenprcaddr 里面所保存的应该是下面这句的地址
push dword ptr [ebp-38h]
因为你压入的返回地址是+了11个字节
然后TPObOpenObjectByPointerproaddr里面保存的是TP的过滤函数的地址
如果我分析的这些逻辑都和你设计的一样的话.....
先仔细看看你的代码,我那里的处理是经过反复测试的.而且,很多个XP3上面都没有蓝屏
另外,看你的名字应该是理解的hacker的真谛了。
怎会如此不堪?从提问的方式,到处理一件事情的手法...
本来凌晨3点了,我想索性直接点X关闭网页睡觉了。
|
能力值:
( LV8,RANK:120 )
|
-
-
54 楼
本来电脑都关了,又打开了
我获知的信息太少了。你可以自己调试一下
在虚拟机当中调试,这种过滤的办法不需要开游戏
在物理机打开WINDBG连接虚拟机,等蓝屏之后,去你HOOK的地方看看
就知一二
另外,游戏的过滤函数那里是一个相对地址
去第一页看图片上的机器码。
e89726a575
分析是不是自己取地址的时候,直接把它的相对地址取出来了?
导致在自己的过滤函数中跳到一个未知的区域导致蓝屏了
最后,还有DUMP文件。也可以调试
本来不改回复你的。这种问题,能解决的只有你自己
过不了这关,你就成不了个人。何谈hacker
|
能力值:
( LV2,RANK:10 )
|
-
-
55 楼
看雪又将出牛人。
|
能力值:
( LV7,RANK:100 )
|
-
-
56 楼
感谢牛人分享成果!
|
能力值:
( LV2,RANK:10 )
|
-
-
57 楼
在次膜拜了哈!
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
向牛人学习,我辈继续努力啊
|
能力值:
( LV2,RANK:10 )
|
-
-
59 楼
本来不改回复你的。这种问题,能解决的只有你自己
过不了这关,你就成不了个人。何谈hacker
楼主也不用这么攻击人吧.ID你看了不舒服,那我也没办法,另外楼主敏感了.我说的话伤害到你的话.我向你道歉
|
能力值:
( LV2,RANK:10 )
|
-
-
60 楼
支持一下
回去睡觉哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
61 楼
强帖.Mark.学习
|
能力值:
( LV2,RANK:10 )
|
-
-
62 楼
不得不承认人家的钻研精神和技术水平!佩服!
|
能力值:
( LV2,RANK:10 )
|
-
-
63 楼
楼主你用的是
move eax
jmp 地址
call 偏移地址 不是等于push 返回地址 + jmp吗
可能我理解的错误了.
|
能力值:
( LV3,RANK:30 )
|
-
-
64 楼
先mark下,,回来再研究
|
能力值:
( LV2,RANK:10 )
|
-
-
65 楼
大概明白了,DNF HOOK ObOpenObjectByPointeraddr的时候他内部也肯定处理了Ret返回地址问题了.所以我就不需要Push返回地址了.tp会自己处理的.非常感谢.
|
能力值:
( LV8,RANK:120 )
|
-
-
66 楼
之前言语不慎,见谅。绝无讽刺意味,因为每个人必过的那关就是自己。
你没理解错
我在JMP之前,压入了返回地址
push dword ptr [ebp-38h]
push dword ptr [ebp-24h]
push p_ReturnAddress
而这个返回地址p_ReturnAddress是通过
p_ReturnAddress = p+5;
在Nakd_NtOpenProcess函数中,一定要控制好堆栈的平衡
稍不谨慎,JMP到的函数就找不到返回地址了。会导致蓝屏
其实很好调试
你开着WINDBG先连接到虚拟机上,然后设置虚拟机的系统蓝屏后不要马上重启
等蓝屏了你物理机的WINDBG会断下来。这个时候转到你HOOK的地址跟一下不就知道了
实在不行,看看DUMP文件。
另外一个需要注意的地方就是,取TP的过滤函数地址的时候。要处理好
因为它HOOK的时候写入的是一个相对地址。
比如
call f601ecba
它的机器码是
E89726A575
E8是CALL的指令
后面的地址是个相对于当前地址的地址。
在计算它的时候精细一点。
就没什么了,一个简单的INLINE HOOK
你自己先尝试写一个对NTOPENPROCESS的HOOK,进行过滤
查看下谁在使用这个函数然后打印出来。
如果你这步做成功了,其他的就没问题了。
|
能力值:
( LV2,RANK:10 )
|
-
-
67 楼
呵呵..腾迅都在关注看雪..哈哈..看雪一出关于D .N . F的东西一会儿就要升级游戏..哈哈..笑死我了..
|
能力值:
( LV2,RANK:10 )
|
-
-
68 楼
思路比较明确,感谢楼主的启发文章
|
能力值:
( LV2,RANK:10 )
|
-
-
69 楼
继续深入mark
|
能力值:
( LV2,RANK:10 )
|
-
-
70 楼
可惜我没帮到你呀。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
71 楼
好贴。做个记号
|
能力值:
( LV2,RANK:10 )
|
-
-
72 楼
虽然看不懂 但是还是顶,希望以后能看懂
|
能力值:
( LV2,RANK:10 )
|
-
-
73 楼
NtOpenThread //防止调试器在它体内创建线程
请问楼主,为什么拦截了NtOpenThread可以防止调试器在它体内创建线程呢?
那会不会防止CreateRemoteThread在它体内创建线程呢?
|
能力值:
( LV3,RANK:30 )
|
-
-
74 楼
干点D N F的监控线程,你想干啥就干啥!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
75 楼
既然没意思,那你放个hp的瞧瞧
|
|
|