利用ACL保护游戏

使用一种比较偏僻的方法来实现应用层反调试。这个方法是windows的 访问控制列表(ACL)。应用这个方法可以阻止其他进程打开被保护进程。

调试器在附加一个进程时需要OpenProcess,如果在程序中加入访问控制列表,拒绝某些程序访问,就可以阻止其他进程包括调试器打开游戏进程。

使用访问控制列表保护的基本方法如下:

1. 初始化一个Secrity Identifier安全身份牌,用来后续添加访问列表项。

2. 获取当前进程的安全身份牌

3. 初始化一个访问控制列表。

4. 添加访问列表项,包括阻止的和允许的。

5. 将设置好的访问控制列表添加到本进程。

这样,当前进程就具有访问控制列表了。

效果图:



难点在于windows这套访问控制的API的使用方法。Windows访问控制模型很复杂很头疼一个API会牵出一大把初始化要用的API。相关API和结构体复杂,可是参考文献奇少,MSDN上关于一些访问控制相关API的使用和结构体的描述都含糊不清也没有什么代码实例。只能慢慢摸索和测试。


猜你喜欢

转载自blog.csdn.net/chence19871/article/details/50732724
ACL