首页
社区
课程
招聘
[原创]某游戏辅助源码
发表于: 2016-7-8 10:26 55035

[原创]某游戏辅助源码

2016-7-8 10:26
55035
收藏
免费 3
支持
分享
最新回复 (114)
雪    币: 16
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
76
谢谢楼主,祝楼主上下增长
2016-8-3 16:07
0
雪    币: 85
活跃值: (51)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
77
谢谢,长不动了...
2016-8-3 21:04
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
78
万分感谢楼主分享,拿走啦
2016-8-8 10:32
0
雪    币: 204
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
79
不错。的确很好
2016-8-19 12:48
0
雪    币: 245
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
80
感谢。  留层mark 得空学习下。
2016-8-24 00:59
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
81
我们可以谈谈游戏合作,有兴趣邮件详聊948309995@qq.com,谢谢
2016-8-24 21:33
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
82
谢谢兄弟。。
2016-9-7 09:20
0
雪    币: 411
活跃值: (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
83
太牛叉了,膜拜大神啊。底层驱动开发难啊
2016-10-18 15:18
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
84
66666666666666666
2016-10-19 23:37
0
雪    币: 3
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
85
感谢  学习下
2016-10-27 22:56
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
86
小白刚来,膜拜一下,感谢分享~
2016-11-1 07:33
0
雪    币: 84
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
87
谢谢分享学习一下
2016-11-9 19:22
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
88
代码是精彩,不过有多个致命问题!
第一:
就是一看就是不支持多核心的CPU!居然使用关中断的办法!你不知道关闭中断,只是关闭当前线程依赖的核心的中断,而无法关闭别的中断么?而且,关闭中断前,没有任何的程序保证别的核心处于空闲状态!
第二:
还有HOOK 时没有关闭PG,这会导致蓝屏!
第三:程序不支持X64
第四:有安全的内存描述符的方式来修改内存,你为什么不使用,而是使用不安全的修改寄存器的方法来关闭写保护呢?

总之一句话,楼主在HOOK时能考虑一下程序的安全性,通用性,和不依赖标志寄存器进行操作么?因为你在操作标志寄存器等基础的操作时,系统也在使用这些寄存器,有可能造成冲突(除了msdn 中已经文档化可以使用的寄存器和通用寄存器除外),HOOK时,你还应该考虑多核心共享的问题!你只关闭了中断,你并没有考虑到,当你关闭中断时,其关闭的是本核心的中断而已,别的核心的中断照样运行!关闭中断进行HOOK时,你并不能保证被HOOK的代码是否在执行,如果你在HOOK时,代码正在执行怎么办?你的HOOK代码中没有任何机制确保呗HOOK的代码不在执行!正确的办法是向所有核心插入DPC ,然后再DPC,在DPC中执行HOOK,并且在插入DPC之前,先准备内存描述符(MDL),在DPC回掉中,使用操作MDL的方法写入HOOK,这样就可以避免使用标志寄存器带来的不便,同时保持稳定性!因为在HOOK完成之前,所有核心都陷入你的DPC代码中!你只要在HOOK完成之前,不退出DPC回掉,就可以保证呗HOOK的代码不在执行,同时,由于使用MDL进行HOOK的写入,可以保证最大的兼容性(MDL可是正规的微软的办法啊)
2016-11-15 22:58
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
89
对了 X64的windows的SSDT结构已经更改,并且这个结构已经不导出,要找到这结构还挺麻烦的!

建议你尽量使用微软的API进行HOOK,不然会很不稳定的!
2016-11-15 23:08
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
90
感谢分享
2016-11-15 23:37
0
雪    币: 85
活跃值: (51)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
91
棒棒哒,如果在以前听到您说到这些问题我会异常兴奋,还有可能两眼泛着泪光。确实存在一些问题,不过时间原因没能继续深扣。
再就是当初这个驱动只为脚本服务的,脚本不再搞了,驱动就变的没有意义了。
也考虑过把脚本扔掉,只做驱动,因为各种原因也扔掉了。

您很专业,我也很欣赏。这是14年写的,在那之前,网上没有找到比这更全面的,所以在当时我决定写一个出来。完全的看其他高手代码,网上各种文档,20天完成了。除了inline hook部分是完全原创外,其他应该都是借鉴和在自己的理解下改进而成的。

我现在改行了,这些问题就当成是一种遗憾吧。不过要谢谢你,让我知道代码里存在着哪些问题,在这之前,周围的人没有能给我中肯意见的。。。感谢!
2016-11-16 12:23
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
92
你看文档也看不全,XP系统是提供了一个大内核锁的,XP系统上调用这个锁,可以马上锁死系统其它的核心的!VISTA之后就取消了这锁,然后用更加细的锁代替了这个锁,实际上,经过我的测试,我们只需要,将windows提供的内核锁全部锁上,就可以最大限度保证在HOOK时别的核心无法得到调度运行,不过,遗憾的是,这些锁同样是没有文档化的,需要自己找资料!至于MDL的方法嘛,这个写只读内存的方法,确实是,微软已经文档化的!是正规的方法,它可以保证最大的兼容性!

你做这些事情的时候,要尽量使用微软提供的函数,这样保证最大的兼容性!不然,你自己弄得话,调试的时候,你就知道哭了!
2016-11-16 19:46
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
93
使用MDL,具体代码我懒得贴上去了,写个代码还得测试,烦死了,给你个思路吧!先申请一个MDL,将需要HOOK的位置与这个MDL绑定,然后通过MDL,修改内存属性,修改属性后的内存,还是不能直接使用的,需要通过MDL,映射出新的内存之后,操作这新的内存即可,这样系统会将内存中的内容同步到原来的HOOK中去的!映射新的地址之后,你不能马上操作!你需要建立一个计时器,一个计数器,和一个退出DPC的标志,这个标志的设置需要使用 ExInter系列的原子互斥的API操作,计数器也要使用ExInter系列的原子互斥的API,计数器用来统计所有的核心是否都进入DPC中了!
先启动计时器,等CPU核心进入DPC时,通过计数器统计一下所有的核心是否都进入了DPC,如果没有进入DPC,则等待,直到计时器时间走完,如这个时候还是没有让所有核心进入DPC的,则设置退出标志,放弃所有HOOK,销毁计时器!如果在计时器时间完成前,所有的核心都进入了DPC的话,则进行HOOK,完成之后设置退出标志,退出DPC,然后销毁计时器!这样HOOK就完成了,同时也能保证在HOOK时不会出现被HOOK的代码正在执行的情况!
2016-11-16 20:05
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
94
其实也不算什么专业了,只是以前曾经遇到过的问题!折磨得我都要哭了!系统核心的多线程共享,让我在调试的时候调试到哭!最后在一些资料上看到前人的告诫:“任何系统核心编程,都要考虑多线程同步的问题,否则会很不稳定的!",后来我才知道,如果能使用API实现功能的话,就应该使用API来实现,因为API是微软保证能实现稳定的程序!如果不能使用API,那就应该使用内存锁等强制同步手段来同步多线程!
2016-11-16 20:12
0
雪    币:
活跃值: (172)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
95
非常感谢,从来没有看过这类软件的源代码
2016-11-17 19:23
0
雪    币: 5
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
96
请问大神收徒吗?
2016-11-17 20:08
0
雪    币: 85
活跃值: (51)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
97
实力不够啊
2016-12-3 01:15
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
98
你还在弄么,我还在弄。   游戏虐我千百遍,我对游戏如初恋!
2016-12-6 23:54
0
雪    币: 29
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
99
MARK
2016-12-7 03:12
0
雪    币: 350
活跃值: (87)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
100
Sorry 源代码丢了!(弄核心编程太多,硬盘呗弄坏了)现在阶段,我主要进行应用的编程!
2016-12-13 20:43
0
游客
登录 | 注册 方可回帖
返回
//