首页
社区
课程
招聘
[原创]反NP监视原理(+Bypass NP in ring0)
发表于: 2007-1-3 11:58 86323

[原创]反NP监视原理(+Bypass NP in ring0)

2007-1-3 11:58
86323
收藏
免费 7
支持
分享
最新回复 (91)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
51
期待下篇,学习了。
2007-1-15 22:25
0
雪    币: 356
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
52
跳过r0保护我现在没有其他方法,只有一个办法,已驱动之道还施驱动彼身.以NP 更改了的SSDT中的 ZwOpenProcess为例,本来系统应该调用的服务会映射到NtOpenProcess,但是NP的驱动sys把SSDT中该服务对应的函数指针改成了NP_OpenProcess,但是你要清楚的知道,无论NP怎么做处理,在最后始终会调用NtOpenProcess,并且NP本身没有对他的驱动层代码做任何校验和保护.接下来我们要做的事情就是自己写个驱动,加载一个服务,在驱动中更改NP驱动层代码,只需要在NP_OpenProcess开始处直接跳转到NtOpenProcess就可以了.
NP的所有驱动层的SSDT都可以这样做.
2007-1-15 23:25
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
53
最初由 stupidass 发布
跳过r0保护我现在没有其他方法,只有一个办法,已驱动之道还施驱动彼身.以NP 更改了的SSDT中的 ZwOpenProcess为例,本来系统应该调用的服务会映射到NtOpenProcess,但是NP的驱动sys把SSDT中该服务对应的函数指针改成了NP_OpenProcess,但是你要清楚的知道,无论NP怎么做处理,在最后始终会调用NtOpenProcess,并且NP本身没有对他的驱动层代码做任何校验和保护.接下来我们要做的事情就是自己写个驱动,加载一个服务,在驱动中更改NP驱动层代码,只需要在NP_OpenProcess开始处直接跳转到NtOpenProcess就可以了.
NP的所有驱动层的SSDT都可以这样做.


一般调试游戏都是附加的多.这种方法可以附加吗?
2007-1-18 11:11
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
54
还好我什么都看不懂。
2007-1-18 12:35
0
雪    币: 356
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
55
最初由 steak 发布
一般调试游戏都是附加的多.这种方法可以附加吗?

显然可以attach啊.在NP运行的情况之所以不能附加或者附加会失败是因为他在SSDT中钩了ZwOpenProcess,ZwWriteVirtualMemory,ZwVirtualProtect,ZwIoDeviceControl,如果你用上面说的方法放这些SSDT钩子都失效,那么你就能够用调试工具正常的找到进程,并正常的进行attach(因为调试工具ATTACH的过程中会用这些API的.)
2007-1-19 13:14
0
雪    币: 5
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
56
是个好思路 如果在这个思路下扩展威力巨大 不过NP会隐藏保护进程给调试带来很多不方便 我研究了好几个星期了 一直没头绪 期待下文
2007-1-22 15:39
0
雪    币: 200
活跃值: (12)
能力值: ( 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也好,进程间访问也罢,系统都不会偏袒哪一方,系统了解了,除了直接底层驱动干扰,又还受什么影响呢.
2007-2-8 22:19
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
58
顶一下.
文中讲到建造自己的函数,这个方法对某些函数有效,但对SendInput却无效,当无NP时,SendInput能够正常工作,但NP启动后SendInput返回0,用GetLastError也返回0,也就是说NP不但Hook了SendInput,在底层还作了手脚
2007-3-4 11:23
0
雪    币: 207
活跃值: (12)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
59
谢谢楼主,学习,学习...
2007-3-5 01:49
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
60
但是NP在ring0确实有拦截。。。
2007-3-5 02:02
0
雪    币: 227
活跃值: (4820)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
61
帮顶!!!!!!!!!!我也想知多点!!!!!!!
2007-3-5 04:50
0
雪    币: 3758
活跃值: (3282)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
62
np不就是个毒么....
sony的rootkit就行不通, np的公关能力还比sony强么?
2007-3-5 11:27
0
雪    币: 293
活跃值: (110)
能力值: ( 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、搞逆向,都是多得它的指引。 多探讨技术,少思考利益,可能会更好点。
2007-3-7 11:57
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
64
看来搞定了吧?恭喜恭喜
2007-3-7 13:53
0
雪    币: 204
活跃值: (10)
能力值: ( 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定时扫描游戏代码段的操作。

希望大虾出来指点,小弟感激不尽。抛砖引玉
2007-3-9 11:21
0
雪    币: 293
活跃值: (110)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
66
既然在zby的帖子里说开了,就把ring0绕NP加到这里吧,这样就更完整点。
2007-3-16 14:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zby
67
非常感谢
2007-3-16 15:28
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
68
继续学习~~~~~~~~
2007-3-17 01:13
0
雪    币: 271
活跃值: (16)
能力值: ( 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 内核函数头检测

不错 不错 学习了
2007-3-22 11:54
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
70
后来加的才是正道...
2007-3-23 11:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
71
太感謝了
受用無窮
2007-4-20 18:35
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
72
仁兄,学习你的了~,好东西~
2007-4-25 17:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lcy
73
值得学习中了!!
2007-4-26 13:43
0
雪    币: 200
能力值: (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(访问被拒绝)。
2007-4-27 16:18
0
雪    币: 208
活跃值: (376)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
75
收藏一下!!!!!!
2007-4-27 17:47
0
游客
登录 | 注册 方可回帖
返回
//