发表在
原创文章
2016-8-18 22:30:28
|
查看全部
| 阅读模式
首先呢,这款游戏的DLL是有加密的,但是不懂为什么 就是不想写解密过程。
解密过程中要感谢 Dawn和小白YeY两个大牛的帮助
用到的工具就不介绍了,不懂的自然不懂,懂的秒懂.
这里主要讲到分析代码判断的技巧,下面开始操它:
01. 如图,打开DLL文件F3一击,直中要害 搜索cooldown即技能冷却
http://r.photo.store.qq.com/psb?/V11pxbbD3JTyvs/kljdKNYe.5EZEALqOhsytYk3pflQbiR0NFCa5M8LNTY!/o/dAIBAAAAAAAA&ek=1&kp=1&pt=0&bo=nASAAkAGZAMDAB4!&su=123243953&sce=0-12-12&rf=2-9
没意思,这么裸露它的代码
如果眼没瞎的话 请往下看.
if (skill != null)
简单的一个判断,我是酱紫理解的,如果 技能 非空指令 则 执行下面的命令
那么 思路就简单了 修改判断为真 如图
http://r.photo.store.qq.com/psb?/V11pxbbD3JTyvs/.X7sZI0jp675*ecbBr54bgut.4t51xDgaXwMH9BMxi4!/o/dP0AAAAAAAAA&ek=1&kp=1&pt=0&bo=RAOAAq0D0AIDAJw!&su=1236012737&sce=0-12-12&rf=2-9
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://r.photo.store.qq.com/psb?/V11pxbbD3JTyvs/h9DQT93p1d5NauoAibPcbYFUG1DB2XNs9Z0oTgqM1Og!/o/dK0AAAAAAAAA&ek=1&kp=1&pt=0&bo=6AOAAmYE0QIDAP0!&su=1145051169&sce=0-12-12&rf=2-9
往下翻会看到一行跳转代码 就操它了
http://r.photo.store.qq.com/psb?/V11pxbbD3JTyvs/psqSHS5ihB1A5GfBohCRIU379CW413nmT8OJWJdNatA!/o/dKUAAAAAAAAA&ek=1&kp=1&pt=0&bo=YwTXAWME1wEDACU!&su=1162845953&sce=0-12-12&rf=2-9
选中brfalse 鼠标右键Edit修改 brfalse改brture Update保存即可
以为这样就完事了吗?天真。
02.在搜索结果中 还有一个重要信息Moba.Skill.MobaSkillData.get_iCoolDown() : Int32
http://r.photo.store.qq.com/psb?/V11pxbbD3JTyvs/IeBV*sb5D..l*1Kywm5U6RUKSpv5OON6Heh7Lhzs*ZE!/o/dPgAAAAAAAAA&ek=1&kp=1&pt=0&bo=3QOAAmcE2QIDAME!&su=15086417&sce=0-12-12&rf=2-9
特殊技能CD,即闪现治疗回蓝等等...
如果特殊技能CD大于0 那么就是为有CD状态
那么思路又来了, 强制让它小于等于0 就OK了,当然Bge使其等于0也是可以的。
如下图
http://r.photo.store.qq.com/psb?/V11pxbbD3JTyvs/Vsuq5V8lfpIci.tC5Uv2d9nqOoKbRShwJYwzn1gKqrM!/o/dKsAAAAAAAAA&ek=1&kp=1&pt=0&bo=awTbAWsE2wEDACU!&su=1126665217&sce=0-12-12&rf=2-9
在IL指令中 ble 如果第一个值小于或等于第二个值,则将控制转移到目标指令
这里所说的第一个值是在ble代码上方的值则作为第二个值为0而第二个值为下方即技能CD,所以是0小于或等于技能CD
逆向思维 逆向思维 就是反其道而行之嘛,bgt 如果第一个值大于第二个值,则将控制转移到目标指令 鲜明对比
ble鼠标右键Edit修改其为bgt或bge Update保存.
来自玩机技术客户端
|
|