1. R3隐藏模块
断LDR 链+ 抹去PE头
2. 如何防止通过call stack 检测调用的合法性
-
跳过目标call内检测的代码,因为检测一般也是通过hook实现,所以我们可以直接跳过这段检测代码。
-
建立假的栈帧 ,具体为我们先构造好我们自定义的栈帧,再通过jmp 指令跳到指定call 的内部,这样就避开了使用call导致自动创建栈帧。
3.定位call
1.虚函数差异调用定位
即通过一个动作发生前后虚函数调用的差异来判断实现特定功能的虚函数
2. Send函数回溯定位
通过对send函数的跟踪来定位关键call,但是值得注意的是在实际中可能send函数由一个专门的发包线程来执行,所以不容易回溯出关键信息,此外游戏有可能自己复制一份send函数的代码到内存区域中执行,所以在send函数处下断有可能根本无法断下来。对于这种情况我们可以在内存中搜索send函数的特征码来找到其函数。
4.Hook
-
对于FPS (Frame Per Second) 的理解
每一秒刷新的次数即每一秒程序逻辑需要运行的次数,每过fps分之一的时间,游戏就要重新计算一次数据。 -
IAT HOOK
在外挂中的应用:可以用于游戏加速,Hook获取时间的函数然后增大两次获取之间的差值,就可以使游戏获得更高的FPS ,进而达到加速的目的。
检测方法:查看IAT判断是否被HOOK -
虚函数HOOK
对于虚函数表的HOOK我们可以知