首页
社区
课程
招聘
发一个自己写的简单32位游戏保护
发表于: 2018-4-14 00:47 21721

发一个自己写的简单32位游戏保护

2018-4-14 00:47
21721

    大神可以绕道了,这个只是一个练手项目,并且用的是很传统的知识
     程序没有经过很详尽的测试,如果想玩请在虚拟机中弄。
更新信息:
     2018/4/16:优化了inlinehook库,在hook之前挂起其他cpu,降低挂钩高频函数蓝屏问题
     2018/4/16:  代码转到githubhttps://github.com/chinatiny/GameDemon.git有个版本控制方便护更新
    在这里分享的目的:因为很多东西取之看雪就还之看雪,希望能够帮助对这块感兴趣的人。


部分功能:
    1. 驱动和游戏的心跳检测,做的很简单
    2. 反ark,其实仅仅针对了pchunter,因为是练手项目所以没必要把每个ark都给来一遍
      原理我的另外一篇帖子:https://bbs.pediy.com/thread-225434.htm
     
3. 反双机调试:
     原理我的另外一篇帖子:https://bbs.pediy.com/thread-225759.htm

    
4. 反3环调试
    原理是我另外两篇帖子:
    https://bbs.pediy.com/thread-225741.htm
    https://bbs.pediy.com/thread-225667.htm

   

   

5. 反常见注入
   apc、原子表,远程线程,消息钩子,劫持(因为需要服务器的配合,我这里仅仅在检测时候做在调试控制台做了 打印 )、输入法(有三种方式只处理了其中一种)、挂起进程shellcode(三种方式只处理两种)、导入表( 因为需要服务器的配合,我这里仅仅在检测时候做在调试控制台做了 打印 )、lsp(需要服务器的配合,我在这里仅仅检测的时候在控制台做了打印)
   这个截图是消息钩子:
   



6.自己写了个inlinehook库:
   详情见我另外一个帖子:https://bbs.pediy.com/thread-225863.htm

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-4-23 14:01 被kanxue编辑 ,原因:
收藏
免费 6
支持
分享
最新回复 (31)
雪    币: 9217
活跃值: (1886)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
学习
2018-4-14 08:18
0
雪    币: 2
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
2018-4-14 08:45
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
写这么多钩子,32位被重载一下,就全被突突了。
ps:
hook高频函数,没挂起其他cpu,真的迷之自信。

表示内存隐藏不用vt,也不是shadowwalker策略

我认为32位os练手形式的加深理解:
应该在任务调度,页表切换,SYSENTRY入口
windows加深应该是object hijacking(32位Hp)

hook这玩意纯体力劳动加深理解??




最后于 2018-4-14 10:12 被cvcvxk编辑 ,原因:
2018-4-14 10:03
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
5
cvcvxk 写这么多钩子,32位被重载一下,就全被突突了。ps:hook高频函数,没挂起其他cpu,真的迷之自信。表示内存隐藏不用vt,也不是shadowwalker策略我认为32位os练手形式的加深理解:应该在 ...
谢谢大神指正,你们是经历过从32位对抗到现在这个地步,而我们这些新手没有
在学习的过程中很感谢你们这些前辈拨开迷雾给小白做科普
每个阶段都有自己专注的重点,我的这个阶段主要专注于传统的技术
内核重载大家都会,但是任何事物的发展都遵循胚胎发育原则,一般都是先有1到2,先当菜鸟再当大神
高频的钩子,没有挂起其他的cpu的确是一个问题,在写到一半的时候考虑到这个问题,后续有时间再不断的更新
======================
1.  感谢你的无私奉献,我在你的帖子里面学到很多东西
2.  问下内存隐藏如果用传统技术该怎么做,希望大神给下链接,毕竟有很多像我们这种初学者
最后于 2018-4-14 10:39 被又出bug了编辑 ,原因:
2018-4-14 10:19
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
又出bug了 谢谢大神指正,你们是经历过从32位对抗到现在这个地步,而我们这些新手没有 虽然我有正向的经验,但是接触这个东西不到半年准确来说是3个月左右 每个阶段都有自己专注的重点,我的这个阶段主要专注于传统的 ...
我只是说hook无法加深理解os,理解os,你需要一本书:《操作系统原理》,《 操作系统:精髓与设计原理 》 《深入理解计算机系统》
归根结底:万法不离其本
Windows只是个法,不是道。

内存隐藏学微软的KVASCODE啊,就是把页表切割。
再简单点学TP。


最后于 2018-4-14 10:23 被cvcvxk编辑 ,原因:
2018-4-14 10:22
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
7
cvcvxk 又出bug了 谢谢大神指正,你们是经历过从32位对抗到现在这个地步,而我们这些新手没有 虽然我有正向的经验,但是接触这个东西不到半年准确来说是3个月左右 ...
谢谢指点,你的回复使我受益匪浅!
不过对于hook无法加深理解os不敢苟同!
仅仅在网上看了什么视频什么帖子没有理解原理,为了hook而hook的确不能
但是hook的时候需要明白为什么要挂钩这里,有时候需要对着wrk看代码,看实现。
学中做和做中学,本来就是相互促进的一个过程,有时候仅仅看原理没有什么成果,一般都会气馁的!
最后于 2018-4-14 10:36 被又出bug了编辑 ,原因:
2018-4-14 10:35
0
雪    币: 12848
活跃值: (9142)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
8
hook高频函数不挂起其他核心我也想吐槽  2333333
顺便你说的反注入,不需要扯那么多有的没的,参考一下BattlEye就行了,人家的实现是相对比较可靠的
另外,内存隐藏没什么卵用,注入就完事了。

给你推荐个好东西:BlackBone了解一下?
最后于 2018-4-14 10:42 被hzqst编辑 ,原因:
2018-4-14 10:41
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
9
hzqst hook高频函数不挂起其他核心我也想吐槽  2333333顺便你说的反注入,不需要扯那么多有的没的,参考一下BattlEye就行了,人家的实现是相对比较可靠的另外,内存隐藏没什么卵用 ...
哈哈,前几天在在git上看到你的工程了,写的真吊,不过太大了后面以后一定拜读下,然后向你请教。
反注入参考BattlEye:对于这块我之前真不知道,是闭门造车,但是一般参考别人之前一般自己思考和尝试下。反过来说,大神把BattlEye的反注入方式说出来,凡是关注这个帖子的人都知道学习反注入需要去看BattlEye,这样也是变相的造福大众了
BlackBone了解一下? :在看了
最后于 2018-4-14 10:53 被又出bug了编辑 ,原因:
2018-4-14 10:50
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
10
又出bug了 cvcvxk 又出bug了 谢谢大神指正,你们是经历过从32位对抗到现在这个地步,而我们这些新手没有 虽然我有正向 ...
看得进去原理,耐得住寂寞,才能走的更远。
看原理很有成果,比如切页表实现内存隐藏这类东西,写个行64位简易操作系统啊,做个虚化平台啊,搞编译器啊。
至于hook,有一句俗语叫:Hook痴呆,VT治国,回调治病,ETW涨智商

2018-4-15 12:56
1
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
11
cvcvxk 看得进去原理,耐得住寂寞,才能走的更远。 看原理很有成果,比如切页表实现内存隐藏这类东西,写个行64位简易操作系统啊,做个虚化平台啊,搞编译器啊。 至于hook,有一句俗语叫:Hook痴呆,VT治 ...
谢谢前辈的回答,你的内存隐藏相关的思路,让我心中对这块又有了新的理解!
=========================
看得进去原理,耐得住寂寞,才能走的更远。
看原理很有成果,比如切页表实现内存隐藏这类东西,写个行64位简易操作系统啊,做个虚化平台啊,搞编译器啊。
=====
我同意你的看法,原理性的东西比较重要,我自从简单的过了下reactos内存管理、进程线程调度、对象管理后,然后再看wrk相关的东西理解会不一样
你说的做个虚化平台啊,搞编译器东西我都心有向往,但是人既要仰望星空也要脚踏实地,我见到比较好的方法是积累一波爆发一波,先从简单的做起:一屋不扫何以扫天下。后面还有很多问题向前辈们请教。话说我加了你的群,不过貌似大家对叙利亚、俄罗斯核武器问题比对技术问题感兴趣
==============
至于hook,有一句俗语叫:Hook痴呆,VT治国,回调治病,ETW涨智商
说这句话的人,肯定经历过痴呆、治国、治病、涨智商的各个阶段
我不知道你听说一个人没有叫做王阳明,我算是半个王学门人,他说话一句话作为我的信仰:圣人之道,吾心自足!
吾心是一个小马,我会谦虚的请教比我年长、智慧比我高、比我聪明、比我有经验的的人然后吸取经验教训,但是需要有自己的看法和决定这个叫做自足!所以小时候我们学了篇语文课文叫做《小马过河》
最后:衷心感谢每个对我指出问题的人!


最后于 2018-4-15 18:12 被又出bug了编辑 ,原因:
2018-4-15 18:02
0
雪    币: 3736
活跃值: (3867)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
V校说得非常对,受教了。
2018-4-15 19:20
0
雪    币: 171
活跃值: (514)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
cvcvxk 看得进去原理,耐得住寂寞,才能走的更远。 看原理很有成果,比如切页表实现内存隐藏这类东西,写个行64位简易操作系统啊,做个虚化平台啊,搞编译器啊。 至于hook,有一句俗语叫:Hook痴呆,VT治 ...
V校牛逼!!!!!顶!!!!
最后于 2018-4-15 22:38 被Lthis编辑 ,原因:
2018-4-15 22:37
0
雪    币: 66
活跃值: (2712)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
一篇好文章  引出无数好评论,读这帖子,真值了!
2018-4-16 11:43
0
雪    币: 407
活跃值: (2628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
厉害,mark一下.
2018-4-21 21:40
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
16
看到改进后的inlinehook了。
还是继续吐槽:
KeNumberProcessors  这个是尴尬的东西,会遇到你想不到的问题——
Win7以上系统用KeQueryActiveProcessorCountEx,
VISTA用 KeQueryActiveProcessorCount,
2000系统才用 KeNumberProcessors(NT4也可以),
XP用 KeQueryActiveProcessors (2K用这个也行)

用每个cpu都插入DPC挂起会遇到某个kernel,dpc插入但没执行,导致其他执行dpc时间太久,于是watchdog蓝屏——
要用IPI,LAPIC,x2APIC投递IPI,或者使用函数KeIpiGenericCall

最后吐槽一句:6字节hook,你可以给它补充成8字节,然后lock cmpxchg8b大法hook上去
最后于 2018-4-22 09:06 被cvcvxk编辑 ,原因:
2018-4-22 09:02
0
雪    币: 368
活跃值: (431)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
17
cvcvxk 看到改进后的inlinehook了。还是继续吐槽:KeNumberProcessors  这个是尴尬的东西,会遇到你想不到的问题——Win7以上系统用KeQueryActivePro ...
谢谢指正。这些问题都是我没有想到的
后面继续优化
2018-4-22 10:34
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
mark一下,慢慢学习
2018-4-27 10:03
0
雪    币: 12848
活跃值: (9142)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
19
cvcvxk 看到改进后的inlinehook了。还是继续吐槽:KeNumberProcessors  这个是尴尬的东西,会遇到你想不到的问题——Win7以上系统用KeQueryActivePro ...
然鹅XP下HotPatch就是用GenericCallDpc  patch的
2018-4-27 10:16
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
20
hzqst 然鹅XP下HotPatch就是用GenericCallDpc patch的
所以xp自己写个ipi就行了啊
每个cpu上hook一下idt,然后x2apic和LAPIC投递ipi很简单啊
2018-4-27 10:49
0
雪    币: 300
活跃值: (2442)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
mark一下
2018-4-27 11:00
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
mark
2018-6-16 10:29
0
雪    币: 573
活跃值: (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
牛逼啊 感谢 大佬分享。论坛有你很精彩啊。
2018-8-12 04:08
0
雪    币: 573
活跃值: (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
hzqst hook高频函数不挂起其他核心我也想吐槽  2333333顺便你说的反注入,不需要扯那么多有的没的,参考一下BattlEye就行了,人家的实现是相对比较可靠的另外,内存隐藏没什么卵用 ...
我以为大佬说得 BattlEye 是开源的 谁知道。。。
2018-8-12 04:11
0
雪    币: 7
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
mark
2018-8-16 15:46
0
游客
登录 | 注册 方可回帖
返回
//