嗜血印trainer

过年的时候分析的,感觉还挺好玩,写篇博客分享下。

首先是定位血条和蓝,用ce直接搜索就行了,进入测试模式因为9键可以回蓝开个技能然后搜索减少的数值,然后按9搜索变大的数值不断重复个几次就能定位到蓝量or血条。

右击查看哪边写入改地址后程序闪退,第一反应ThreadHideFromDebugger。简单来说就是debugport清零,调试器虽然可以附加上去但是收不到调试事件,像这边用的内存断点本质是修改页属性,但调试器收不到调试事件,程序跑到那后异常又没调试器接受处理就自然闪退了。

直接打开ce设置选用veh debugger即可。

image-20220226200228223

血量和蓝的内存相邻,float类型布局大概如下

1
2
3
4
当前血量
血量上限
当前蓝量
蓝量上限

按键1,2,3释放技能分别由不同的几个地方来处理扣蓝,分别hook即可,最简单的方法就是hook到9键(回蓝)那,这样就达成不扣蓝

扣血直接nop即可

这是一般的处理方式,但这个游戏有个好玩的点。

image-20220226200853955

程序开辟了一块内存,把所有的代码重定位后写入内存然后运行的,就是说代码的基地址是随机的,不能像常规的那样找偏移然后根据主程序的基地址+偏移来实现外挂。

但不是没办法处理,暴力搜索机器码定位就行了,和之前写ssdthook的时候很像,然后进一步定位出血条和蓝量的地址,后12位是固定的。

文章目录
|