能力值:
( LV2,RANK:10 )
|
-
-
51 楼
期待下篇,学习了。
|
能力值:
( LV2,RANK:10 )
|
-
-
52 楼
跳过r0保护我现在没有其他方法,只有一个办法,已驱动之道还施驱动彼身.以NP 更改了的SSDT中的 ZwOpenProcess为例,本来系统应该调用的服务会映射到NtOpenProcess,但是NP的驱动sys把SSDT中该服务对应的函数指针改成了NP_OpenProcess,但是你要清楚的知道,无论NP怎么做处理,在最后始终会调用NtOpenProcess,并且NP本身没有对他的驱动层代码做任何校验和保护.接下来我们要做的事情就是自己写个驱动,加载一个服务,在驱动中更改NP驱动层代码,只需要在NP_OpenProcess开始处直接跳转到NtOpenProcess就可以了.
NP的所有驱动层的SSDT都可以这样做.
|
能力值:
( LV6,RANK:90 )
|
-
-
53 楼
最初由 stupidass 发布 跳过r0保护我现在没有其他方法,只有一个办法,已驱动之道还施驱动彼身.以NP 更改了的SSDT中的 ZwOpenProcess为例,本来系统应该调用的服务会映射到NtOpenProcess,但是NP的驱动sys把SSDT中该服务对应的函数指针改成了NP_OpenProcess,但是你要清楚的知道,无论NP怎么做处理,在最后始终会调用NtOpenProcess,并且NP本身没有对他的驱动层代码做任何校验和保护.接下来我们要做的事情就是自己写个驱动,加载一个服务,在驱动中更改NP驱动层代码,只需要在NP_OpenProcess开始处直接跳转到NtOpenProcess就可以了. NP的所有驱动层的SSDT都可以这样做.
一般调试游戏都是附加的多.这种方法可以附加吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
54 楼
还好我什么都看不懂。
|
能力值:
( LV2,RANK:10 )
|
-
-
55 楼
最初由 steak 发布 一般调试游戏都是附加的多.这种方法可以附加吗?
显然可以attach啊.在NP运行的情况之所以不能附加或者附加会失败是因为他在SSDT中钩了ZwOpenProcess,ZwWriteVirtualMemory,ZwVirtualProtect,ZwIoDeviceControl,如果你用上面说的方法放这些SSDT钩子都失效,那么你就能够用调试工具正常的找到进程,并正常的进行attach(因为调试工具ATTACH的过程中会用这些API的.)
|
能力值:
( LV2,RANK:10 )
|
-
-
56 楼
是个好思路 如果在这个思路下扩展威力巨大 不过NP会隐藏保护进程给调试带来很多不方便 我研究了好几个星期了 一直没头绪 期待下文
|
能力值:
( LV2,RANK:10 )
|
-
-
57 楼
复制系统函数到自己的代码是下策,动态分配内存,交叉复制整个系统模块
做法很简单,系统四个DLL,kernel32.dll,gdi32.dll,user32.dll,ntdll.dll,外加自己一个功能模块的DLL,全部从内存中移位运行
DLL模块都有重定位表,且系统DLL都不加壳保护,所以可直接利用重定位表将系统DLL在内存中复制后进行修正,一定要修正,而且是交叉修正,除ntdll.dll直接与底层通信不需要修正外,其余3个系统DLL是必须要修正的
VirtualAllocEx为四个DLL分配空间,返回的值作为四个DLL的HMODULE,复制四个DLL的全部字节到该空间,修正各个输入输出节的偏移,不修正,其调用依然调用系统内存区函数,修正后,彼此交叉调用,完全断绝NP监视,自然,NP如果发展到驱动底层拦截ntdll.dll的ring0调用,那就当我没说这个方法了
要让自己的代码不受NP干扰,修改进程的内存,有很多方法都可以实现,注入DLL也好,进程间访问也罢,系统都不会偏袒哪一方,系统了解了,除了直接底层驱动干扰,又还受什么影响呢.
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
顶一下.
文中讲到建造自己的函数,这个方法对某些函数有效,但对SendInput却无效,当无NP时,SendInput能够正常工作,但NP启动后SendInput返回0,用GetLastError也返回0,也就是说NP不但Hook了SendInput,在底层还作了手脚
|
能力值:
( LV4,RANK:50 )
|
-
-
59 楼
谢谢楼主,学习,学习...
|
能力值:
( LV13,RANK:410 )
|
-
-
60 楼
但是NP在ring0确实有拦截。。。
|
能力值:
( LV3,RANK:20 )
|
-
-
61 楼
帮顶!!!!!!!!!!我也想知多点!!!!!!!
|
能力值:
( LV15,RANK:500 )
|
-
-
62 楼
np不就是个毒么....
sony的rootkit就行不通, np的公关能力还比sony强么?
|
能力值:
( LV9,RANK:410 )
|
-
-
63 楼
随着对NP的了解深入,发现这篇文章的谬论真不少啊!自己先汗一下!比如NP ring3 HOOK 系统函数根本就没有用到ReadProcessMemory、WriteProcessMemory、GetCurrentProcess等(不过NP ring3 HOOK的整个远程代码中还是少不了系统函数的,GameMon.des也没有全部做好保护),所以这篇文章所介绍的在GetCurrentProcess设陷阱的方法依然管用(NP版本961)。真是让高手见笑了,不过我也不打算改,就让它作为一个成长的见证吧!现在反npggNT.des注入的方法真是多如牛毛,最主要原因就是GameMon.des向目标进程注入npggNT.des后,不检测是否已经成功,也不会不断检测是否被卸载,所以我们想怎么搞都行。不过反npggNT.des注入的意义并不是很大(不能模拟鼠标键盘,不能直接打开游戏进程,不能直接读写游戏内存,呵呵,还有什么可干的呢?),在ring0反HOOK才是正道。
对于我来说,NP是一位很好的老师,想当初(5个月前),从不懂Windows核心编程、不懂汇编,到现在学ring0 HOOK、搞逆向,都是多得它的指引。 多探讨技术,少思考利益,可能会更好点。
|
能力值:
( LV13,RANK:410 )
|
-
-
64 楼
看来搞定了吧?恭喜恭喜
|
能力值:
( LV2,RANK:10 )
|
-
-
65 楼
最初由 堕落天才 发布 随着对NP的了解深入,发现这篇文章的谬论真不少啊!自己先汗一下!比如NP ring3 HOOK 系统函数根本就没有用到ReadProcessMemory、WriteProcessMemory、GetCurrentProcess等(不过NP ring3 HOOK的整个远程代码中还是少不了系统函数的,GameMon.des也没有全部做好保护),所以这篇文章所介绍的在GetCurrentProcess设陷阱的方法依然管用(NP版本961)。真是让高手见笑了,不过我也不打算改,就让它作为一个成长的见证吧!现在反npggNT.des注入的方法真是多如牛毛,最主要原因就是GameMon.des向目标进程注入npggNT.des后,不检测是否已经成功,也不会不断检测是否被卸载,所以我们想怎么搞都行。不过反npggNT.des注入的意义并不是很大(不能模拟鼠标键盘,不能直接打开游戏进程,不能直接读写游戏内存,呵呵,还有什么可干的呢?),在ring0反HOOK才是正道。 对于我来说,NP是一位很好的老师,想当初(5个月前),从不懂Windows核心编程、不懂汇编,到现在学ring0 HOOK、搞逆向,都是多得它的指引。 多探讨技术,少思考利益,可能会更好点。
看见最近堕落天才对NP做了不少分析,还是挺有见解的. 小弟不才,作了一个某游戏的内挂, 不过这个游戏没有用NP来保护. 现在用np保护的游戏很多,小弟也有兴趣探讨一下如何搞定NP,并公布于众,以长我们民族外挂之志气.
如果,我们分析NP的目的是制作游戏内挂, 对于堕落天才兄弟的分析,我提几个问题。 首先明确,我们必须有一个技术可以自由的修改游戏的代码段,才可以实现数据包拦截等等功能。
1. 反npggnt.des注入别的非游戏进程有什么用处? 因为npggnt.des对于游戏进程本身的监控还是没办法解除,照样不能写游戏的代码段
2. 如果采用ring0 hook的功能,据我所知也不过就是hook一些内核函数,比如ntcreatefilea等等。 这样还是没有用处,解决不了问题
通过在np启动之前注入游戏进程的方法,还是很容易将一个dll或者直接是一段程序写入游戏的进程空间的。但是小弟的困惑是好像这些都无法对付np定时扫描游戏代码段的操作。
希望大虾出来指点,小弟感激不尽。抛砖引玉
|
能力值:
( LV9,RANK:410 )
|
-
-
66 楼
既然在zby的帖子里说开了,就把ring0绕NP加到这里吧,这样就更完整点。
|
能力值:
( LV2,RANK:10 )
|
-
-
67 楼
非常感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
68 楼
继续学习~~~~~~~~
|
能力值:
( LV4,RANK:50 )
|
-
-
69 楼
Bypass NP in ring0 (2007年3月16日):
1,Add MyService
2,hook sysenter
3,SystemServiceID->MyServiceID
4,MyService JMP ->SystemService Function + N bytes(参考【原创】SSDT Hook的妙用-对抗ring0 inline hook )
1、2、3 ->绕过NP SSDT检测
4 ->绕过NP 内核函数头检测
不错 不错 学习了
|
能力值:
( LV6,RANK:90 )
|
-
-
70 楼
后来加的才是正道...
|
能力值:
( LV2,RANK:10 )
|
-
-
71 楼
太感謝了
受用無窮
|
能力值:
( LV2,RANK:10 )
|
-
-
72 楼
仁兄,学习你的了~,好东西~
|
能力值:
( LV2,RANK:10 )
|
-
-
73 楼
值得学习中了!!
|
能力值:
(RANK:10 )
|
-
-
74 楼
**********************************************************************
Bypass NP in ring0 (2007年3月16日):
1,Add MyService
2,hook sysenter
3,SystemServiceID->MyServiceID
4,MyService JMP ->SystemService Function + N bytes(参考【原创】SSDT Hook的妙用-对抗ring0 inline hook )
1、2、3 ->绕过NP SSDT检测
4 ->绕过NP 内核函数头检测
NP968下通过
**********************************************************************
绕过ssdt不用这么麻烦。问题在于新版np绕过了还是无法访问被隐藏进程,
NtOpenProcess返回C0000022(访问被拒绝)。
|
能力值:
( LV12,RANK:330 )
|
-
-
75 楼
收藏一下!!!!!!
|
|
|