LOL逆向之绕过驱动保护

  • A+
所属分类:逆向工程

本文首发i春秋社区,点击原文链接可查看原文

前言:

相信在上一篇文章大家进行动手操作的过程中已经发现LOL无法被调试或者是CE附加,这节课我们就来解决他。

工具:

  1. 火绒剑

  2. PChunter

  3. 台服LOL

  4. 国服LOL

外服LOL加载文件:

首先我们需要知道外服LOL加载了一些什么文件,然后在和国服进行对比,首先打开台服LOL开始对局后查看系统所加载的驱动:

LOL逆向之绕过驱动保护

游戏模块,只需要看游戏目录下的dll,因为如果不是当前目录的话就是加载的其他软件的dll:

LOL逆向之绕过驱动保护

进程钩子,有一些反调试相关得钩子:

LOL逆向之绕过驱动保护

国服LOL加载文件:

首先是系统驱动加载:

LOL逆向之绕过驱动保护

游戏模块:

LOL逆向之绕过驱动保护


进程钩子:

LOL逆向之绕过驱动保护

对比:

通过对比发现国服LOL加载了一个名为ACE-BASE.sys的文件,但是外服却没有加载。并且国服的游戏模块多了很多dll。Tersafe、tcj、TenRpcs、GameRpcs、policyProbe这些基本上都是游戏里面的检测。排除后得到ace-DRV32.dll此模块和ACE-BASE.sys文件进行通讯。

思路:

  1. 通过pchunter等工具卸载ACE-BASE.SYS、ACE-Drv32.dll这两个文件来达到绕过的目的

  2. 删除目标文件,或者创建空文件

  3. 3.

思路一实现:

此时我们使用CE是无法对游戏进行数据搜索的:

LOL逆向之绕过驱动保护


首先使用pchunter卸载dll:

LOL逆向之绕过驱动保护

然后使用pchunter卸载ACE-Base.sys,电脑直接蓝屏了。

思路二实现:

首先在C盘以及游戏目录下找到目标驱动文件:

LOL逆向之绕过驱动保护

删除掉,新建一个空白的.sys文件,然后将文件设置为只读:

LOL逆向之绕过驱动保护

再次打开CE查看是否有图标出现:

LOL逆向之绕过驱动保护

代码:

  1. #include <windows.h>

  2. #include <iostream>

  3. #include<direct.h> //头文件

  4. #include<io.h>

  5. using namespace std;

  6. #pragma warning(disable:4996)



  7. void main() {

  8. cout << "请输入LOLGame目录路径:"<< endl;

  9. char LOLdir[1024] = { 0 };

  10. cin >> LOLdir;

  11. char file[1024] = "\ACE-BASE.sys";

  12. strcat(LOLdir, file);

  13. cout << LOLdir;


  14. if (_access(LOLdir,0) == 0) {

  15. if (DeleteFile(LOLdir) == 0) {

  16. printf("nerrid:%d",GetLastError());

  17. return;

  18. }

  19. }

  20. CreateFile(LOLdir, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

  21. printf("%d", GetLastError());

  22. SetFileAttributes(LOLdir, FILE_ATTRIBUTE_READONLY);

  23. getchar();

  24. }


本文始发于微信公众号(夜暗心明):LOL逆向之绕过驱动保护

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: