随笔分类 - YJX_VC_rxjh
郁金香VC热血江湖
摘要:利用分析数据 实现走路/寻路 【03:30】0x0146DFF8 目的地坐标基址 【04:50】准备 测试代码 【05:00】0x06600168,这个地址 不是一个基址(ZC: 但是我记得游戏重启后 还是这个地址,它都没有变化的... 换台机应该就肯定不对了),本节课来找到它的基址 【05:22】
阅读全文
摘要:走路功能集成到函数 (a)、走路CALL 状态开关分析 (b)、分析状态开关 基址+偏移 (c)、完成走路CALL函数Walk(x,y) 【00:45】走路CALL基本都已经分析完毕,还是没有找到精确的走路CALL。换一个思路,从 走路CALL的状态开关来分析 【01:00】∵ 我们发现,它有一点特
阅读全文
摘要:对上节课找到的几个疑似走路CALL 逐一进行测试,确定真正的走路CALL 【00:20】有可能几个CALL都是 走路/寻路 【04:00】上一节课 和 这一节课,游戏应该是已经 重启了,然后这里的 ECX居然真的是没有变化(还是0x065FEC8C) 【04:55】ZC: 貌似ESI的值(源地址)
阅读全文
摘要:走路CALL 及 相关分析 (a)、分析走路状态开关 (b)、测试走路CALL (c)、确定功能CALL及参数 ZC: 本课中,找CALL的过程 比较曲折,精神/经验/手法 值得学习 ZC: 所有的参数 都去看看 指向的是什么数据,没准就能看到点什么...就像本课里面的鼠标坐标... ZC: 【01
阅读全文
摘要:喊话功能VC++实现 (a)、分析喊话CALL的参数基址+偏移 (b)、VC++代码实现 【03:45】先找 ESI的来源 【04:20】用CE来搜索一下 当前 ESI的值 【05:08】会直接找到 基址 + 非基址。可以直接用这个基址(ZC: 也不需要验证一下的?),等会再调试一下 看看会不会变
阅读全文
摘要:3.1.1 喊话功能 ZC: 本节课的找CALL过程 比较曲折,值得回味/学习/总结/参考... ZC: SuperARC说话,能用此方法吗? 【01:25】找一个突破点:【01:55】输入框 输入文字(这里输入的是"1111111111111111111111111") --> CE搜索喊话内容的
阅读全文
摘要:2.5.9 F1~F10技能栏 功能CALL分析 【02:00】猜测/假设,分析 上节课得到的指令地址 位于什么地方,大概的情况是什么样子的 【05:00】找上层的CALL,看看 本CALL有哪些参数 【06:00】重复按下 F1~F10技能栏中的技能/物品,重复断下 查看 参数EAX的值 【06:
阅读全文
摘要:2.5.8 F1~F10技能栏数组基址+偏移 【01:30】观察到 技能栏有两个,今天我们找技能栏1的F1~F10 【01:55】∵ 数组的地址 在32位的编程中 是4字节,数组结构 打住如下 ... ... 【03:15】技能栏中每一格放的 可能是对象的ID,也可能是对象的首地址。(ZC: 我倒没
阅读全文
摘要:2.5.7 捡物功能 分析实现 【00:40】捡物功能 原理 【01:20】方法1: (CTRL+A 游戏里打开任务动作窗口) 【01:50】找出 F1~F10技能栏数组-->【02:25】捡物动作 放到 F10 上 --> 按下 F10,CE查找访问此地址的代码 --> 找到 F10 代码地址 -
阅读全文
摘要:2.5.5 CTabCtrl控件 【05:10】VC6 中的 CTabCtrl控件 【05:22】InsertItem 【07:52】OnInitDialog中 调用 CTabCtrl.InsertItem 【12:25】CTabCtrl 比较麻烦的地方,每个 Tab都要手动插入 Dialog资源(
阅读全文
摘要:使用指定物品的函数 UseGoods(int index) 返回物品在背包中的下标 int GetGoodsIndex(char* name) 【05:05】int GetGoodsIndex(char* name) 【10:53】“mov di,di” 是调试的时候用的,花指令,没有用的,用来定位
阅读全文
摘要:【01:25】ZC: 开始讲 浮点数 【03:52】CE中设置的选项是"简化",∴ 输入的浮点数 77 不需要带小数部分 【12:03】CE离开附加的进程的方式--> 再做一次 附加某进程的操作,就卸载那个进程了... 【14:20】浮点数(16进制表示的时候) 一般都是 以C开头的 (ZC: 为何
阅读全文
摘要:物品背包数组基址+偏移分析 【01:20】突破口: CE 物品的数量(精确的数值) 【01:45】物品的数量 是 物品对象的属性 【14:35】游戏出错了,按照刚才的方法 重新来一次 【21:55】推导公式 【24:20】OD测试一下,看我们分析的是否正确 ZC: 完全是在猜 (大胆假设,小心求证.
阅读全文
摘要:挂机打怪功能 (1)、更新选怪CALL地址 (2)、自动选怪代码编写 (3)、自动打怪代码编写 (4)、代码测试 【02:55】重新找 选怪CALL 【05:25】写入的 硬件断点 "hw [59EC688]+1530" 【06:12】硬件中断在写入时 【06:25】有时候它(硬件写入中断)会断在下
阅读全文
摘要:2.5.1 普通攻击CALL关键代码的分析 【00:55】游戏升级,基址 需要重新定位 【02:55】选中怪 CE搜索的值 就 小于0xFFFF(或 根据我们前面的经验可以设置成0x0FFF。ZC: 现在游戏里面的怪ID已经大于0x0FFF了) 【03:42】ZC: 这里 他 CE 右键-->“查看
阅读全文
摘要:2.4.4 选怪功能的优化 【07:20】左右: 怪对象 的选中状态,是在 设置哪个怪被选中之前的一个函数里来操作的。(ZC: 我还估计“设置哪个怪被选中” 和 怪对象被选中状态的设置 是在同一级的函数里面... 可能“设置哪个怪被选中”比较繁琐,∴单放一个函数,这里需要注意 我不要主观臆断 造成找
阅读全文
摘要:2.4.3 遍历怪物列表,实现选怪功能 【02:25】思路: 遍历数组 [i*4+0599a110],条件(怪对象指针存放于ecx): 1、[ecx+0x8] == 0x2E 对象的分类(是怪物 还是别的) 2、[ecx+0x31C] <=100 怪物与玩家的距离 3、[ecx+0x380] ==
阅读全文
摘要:2.4.2 分析 (怪物)对象属性 【08:20】od中 dd命令,16进制数 如果第1个字符是字母的话 前面需要加一个数字"0",如 "dd [0d59*4+0599a110]" 【20:12】CE功能 ==> 锁定当前选中怪/锁定选中怪ID ==> 手动添加地址 【24:00】ZC: 这里,怪
阅读全文

浙公网安备 33010602011771号