热血江湖寻找背包基址与自动寻找喝药CALL
本帖最后由 猪行天下 于 2018-8-11 16:29 编辑写这篇文章,只是抛砖引玉,希望有更好的教程出现。前一段时间,捣鼓了下辅助,如是编写下了这个教程。本来做了个完整的辅助DEMO,奈何发布后就被删 ,在此就不发DEMO,只介绍方法与技巧。
好了,废话不说了,下面开始写正文:
1.寻找背包基址。
如果寻找背包?这个问题其实很简单,背包是一格格的,所以必然是一个数组或链表的形式。知道了此形式,那么懂编程的人必然知道该如何寻找了;在编程时,肯定会初始化,既然初始化,那么一般都会初始化为0。好了,知道了这些,那么就可以用CE来寻找了。
打开CE,附加游戏进程,以第一个格为例子,查找数据,规律如下:有物品大于0,没物品等于0。来回几次后,找到如下数据:
有两个,没关系,可以将地址+4+4来验证看是不是和对应物品能对应的上。点击手动添加地址,如图输入地址:
得到结果如下:
和背包对应,如下:
打开CE,点击如下图:
得到返汇编代码,如下图:
一般红框中的格式,就是背包的格式,其中EDI为背包基址,ebx为背包的第几个格,0x410为背包的偏移。随便找一个,点击显示反汇编,找到EDI的值,如下图:
背包的基址为 .打开OD,验证地址。在OD中输入 + ebx*4+0x410,得到如下数据:
看红线部分,和背包中有无物品对应,如下图:
没物品为0
查看物品详细数据,在OD中输入如下:
并右键点击如上图,就可查看当前物品的属性,如下:
通过以上,得到数据如下:背包物品访问地址:[ + ebc*4+0x410],加上对应的偏移,ebx为背包位置。
2。寻找自动喝药CALL寻找了背包基址,那么下面就可以还是寻找喝药CALL了。寻找喝药CALL有两种方法,一种是:OD附加进程,在物品数量出([ + ebc*4+0x410] + 0xC44),下一硬件写入断点,然后吃药,查找对应的CALL(CTRL + F9,然后F8)回溯。由于使用物品,所以会有物品的位置,以此为出发点,寻找CALL。一般一到两层,会找到使用CALL。或者放入快捷键中,下断点,如果一下断点,就停止,那么此方法不可行。另一种是:使用万能CALL,在WSASend (吃药会发包)API下断点,回溯2到3次,找到CALL。
此处使用第二种,万能CALL,早WSASend出下断点,用此方法,最终找到喝药CALL如下:
喝药的CALL
{
push 0x23
push 1
mov edi,0x02D1762C
mov edi,
mov ecx,dword ptr ds:
push ecx
mov ecx,edi
call 0x00804560
}
其中,EDI是背包基址(使用dd 0x02D1762C )可查看对应。push 0x23为物品位置 ,注入进程,修改push 0x23,点击注入,那么可以看到,自动喝药了。
教程到这也就结束了,欢迎大家一起讨论。 十五年前玩儿过这个游戏 哈哈哈,这帖子这么多年既然还没沉~~~~ 果然热血江湖 满满是 80 90后的回忆啊~~~
一剑走天涯~ 群刀,群医,拿着把破Q4的仗(气功4),去火山,竹林当 QY,GF哈哈哈,满满的回忆
以前玩的时候,都比较讲江湖义气,门派的人被欺负 都会去帮忙~~ 一直聊天
现在基本都是活死人了~ 热血江湖现在还开着了吗。。。
这个我需要
这个我需要
这个我需要 虽然用不到,还是支持楼主和鼓励楼主的!{:1_921:}{:1_893:} 正好学习一下。。 这个游戏貌似已经很老了,不过玩的开心就好 感谢分享嗷呜! 唯一看过官方卖辅助的也就是热血江湖了 玩玩私服得了官服热血神器了解下 有点厉害