Open bigsinger opened 8 months ago
我觉得从简洁的角度来说,MSVC 的内联汇编比 CE 的脚本繁琐。如果用 aa_engine.dll 可以直接复制粘贴 CE 脚本,更简单。 还有就是这个得注入 DLL 吧。 除了简洁以外还有没有别的好处?
我觉得从简洁的角度来说,MSVC 的内联汇编比 CE 的脚本繁琐。如果用 aa_engine.dll 可以直接复制粘贴 CE 脚本,更简单。 还有就是这个得注入 DLL 吧。 除了简洁以外还有没有别的好处?
- 从杀软的角度看,aa_engine.dll 和 CreateRemoteThread,WriteProcessMemory 这些调用都很危险,注入行为不能解决误杀的问题,注入本来就是异常的软件行为
- aa_engine.dll 打包到 Releases 那里了,我再去 ReadMe 里加下说明吧
- 寻址确实方便,不过和 aa_engine.dll 比起来,又回到了汇编简洁度的对比上
- 用的是 CreateRemoteThread + LoadLibrary 吗?
用消息钩子注入,不会出现CreateRemoteThread,WriteProcessMemory 等敏感API, 比较稳定
ok,那我可以参考下。如果不开源,可以发到我的邮箱 wwang230513@gmail.com
ok,那我可以参考下。如果不开源,可以发到我的邮箱 wwang230513@gmail.com
开源的,请参考:https://github.com/bigsinger/open/tree/master/src/DllLoader_WH_MOUSE 项目
很抱歉作为新手能力低下,给这个本就美中不足的世界火上浇油,制造了许多垃圾代码,污染了贵仓💀。包含本项目旧版资源泄露问题: https://github.com/AdjWang/RA2YurisRevengeTrainer/blob/03c472498d28e10227e153e0ab061b0ea818b7ae/RATrainer/trainerbase.cpp#L12 https://github.com/AdjWang/RA2YurisRevengeTrainer/blob/03c472498d28e10227e153e0ab061b0ea818b7ae/RATrainer/trainerbase.cpp#L44
根据微软的文档1和文档2,CreateToolhelp32Snapshot
和 OpenProcess
函数返回的句柄需要手动释放。这个 DWORD TrainerBase::getID()
函数实现的功能恐怕要重构了……
我最近重写了修改器,可以参考新的实现:
https://github.com/AdjWang/RA2YurisRevengeTrainer/blob/4f39fb0377d61ea774e2a90125626487b8129181/src/trainer.cpp#L439
经过一番斗争,我觉得还是采纳这个注入模式,下一版做出来。
变态的功能可以在非联网情况下跟电脑对打的时候开启,如果联网对战,建议只开放不变态的功能,例如地图全开,信标自动删除老的实现无限制下信标的功能 #19 这样相当于只是增加了游戏体验。
https://github.com/bigsinger/Ra2Tool 是从你的项目fork的,感谢你的付出。 注入模式相对来说非常简单,只需要写好汇编代码即可,例如我对辅助功能目前只保留了不变态的全图功能,只需要按照如下调用即可: