前言:我们在写call调用游戏进程里call时候,经常外挂运行工作一段时间后,游戏就会断线或崩溃掉,但是经过检查,发现自己调用CALL的代码又没发现写错误,这到底是怎么呢
其实这些是现在游戏的一些游戏反外挂检测导致的,并不是我们调用call的代码没写对,现在的游戏调用自己游戏进程里的各种CALL,都是游戏自己的主线程来执行的,如果不是游戏的主线程调用CALL,就会奔溃游戏或游戏掉线,因为我们的外挂程序都是在游戏进程里创建新的线程来执行我们的代码的,创建来线程来执行CALL,而不是用游戏的主线程,创建的线程,只是游戏进程里的子线程,如果游戏对CALL调用时候检测执行代码的线程来检测是否是游戏主线程执行的,那么游戏就会认为你是在非法调用CALL的外挂程序,所以就会断掉自己的网络,以便来阻止我们外挂操作游戏
下面为了生动点让大家了解这里面的道理,我们来设计一个模拟游戏程序
exe模拟游戏程序
exe的代码如下:我们里面设置一个模拟测试游戏的某个CALL功能函数,这个函数在被调用时候会去判断是否是进程主线程来执行的,还是外界其他程序创建线程(非自己主线程)来执行调用的,然后做出相关提示这样来真实模拟游戏以自身主线程来执行自己进程内函数的效果,如发现不是自己进程主线程调用函数,就弹出警告(相当于游戏崩溃或掉线)
再贴上调用模拟游戏程序
exe里面的测试函数,的调用函数
exe代码:调用函数
exe就相当于我们的外挂程序,调用指定进程里的函数CALL功能,这里我演示了2种调试方式一种是绑定游戏(模拟游戏程序
exe)主线程来调用目标进程里的CALL功能
一种是我们普通方式调用目标进程里(模拟游戏程序
exe)的CALL功能,好了,我们来看测试效果:运行后,我们发现,当我们的外挂(调用函数
exe)以普通方式调用游戏(模拟游戏程序
exe)进程里的CALL时候,游戏(模拟游戏程序