魔鬼作坊第一部笔记

9

F1 没有技能的时候是 0 有的时候是非 0 快速扫描 首次扫描 0 走几步 降F2的技能放到 F1上 大于0 搜索

重复上面的步骤 *4 这样的一般都是数组 例如 mov eax,[eax+esi*4] 搜索eax的数值 动一下技能栏 就会显

一些数据 是读取 不是写入的 要注意下 继续搜 eax的 ebp和两个寄存器相同的不选 最上面两句想要 可以

只用一句 最后添加地址进行比对 *就是成 比如 0*4 就是 0

-----------------------------------------

10

od+ce配合找数据

用ce找到内存地址 然后od dd 地址 在快捷点1里面 就是第一个数据 断点 内存写入 然后移动快捷方式 断下

后 看代码 看看像不像数组 然后 取消内存断点 在代码上断点 然后移动 然后看 edi数值 然后找上去 找

ecx 断点 然后断下后 取消掉 看堆栈窗口 返回的东西 右键 反汇编窗口中跟随 按回车进去查看 下回线

会退出 进入后 在call上下断 看看哪个是正确的 断下后 看eax的值 在往上找 ecx 再找 ebx 再找 eax

就出来了 然后可以在 OD 中 dd查看 是否找正确了

 

 

-----------------------------------------

15课

OD死码 未识别标识 字母开头要加 0

ecx 环境 有时候是 人物基址

eax 选怪参数 145 可以用 dd eax看出来

-----------------------------------------

16课


到游戏领空 ctrl+g 401000 两次 然后再 ctrl+s 查找代码 断点 关键跳 然后断下 再F8 就到call了 然后可以 ctrl+a 分析代码 可以看后面的 注释 看看是否与标注的一样

可以dd 人物基址 然后 断点 关键跳 再 F8 再看看数值是否与ecx一样

-----------------------------------------

17

让人物死亡 然后 bp send 然后 点击回城 分析返回的数据 判断call 难不难调用 尽量选择参数少的 回车进去call 看看内部 分析 eax

call 基本都会返回一个数值 以便下面的运行 在call上下两个断 断下后 按 F8走 记录下 eax ecx 的数值 dd 时 字母开头要加0

dd ecx的值 就是 人物基址+二级偏移+一级偏移 一级偏移就是分析时的 d4 然后找eax的数值 一次一次尝试 找二级偏移 (一次一次加或减少) 找到来源地址


-----------------------------------------

22

查找 edi的数值 往上找 看到后 dd 看看 是不是与下面的相同

-----------------------------------------

25

利用技能栏数组 添加后 把 读取的数据 添加 然后 查找访问的代码 记录下代码 然后 OD 跳到那个地址 下
F2断点 往下走 看 call 进入call 技能call 就是了 知道技能call 可以直接调用 不需要 F1 到 F8 快捷键
最后 最好保存下死码

-----------------------------------------


27

利用 快捷键 然后 背包里面的东西 放大 技能栏1里 然后 用F1 使用 然后 看代码 记录下内存地址 上OD

跳转到那里 下一个断点 进入call 一下断就断下来 可以排除掉 断下后 F8往下走 F7进入 看到关键跳 看跳

到哪里 ecx 捡物要人物 然后测试下 查找 ecx的来源 可以dd看下角色基址 比较下 OD死码 最多8跳 分析下

代码 ctrl+a 可以看看分析 然后比对下

-----------------------------------------

29

还是利用 快捷键 然后 找到地址 把表情放里面 运行 跳转 选怪 打 下断 F7进入CALL 往下走 有关键跳

ctrl+a 分析代码 关键跳嗲段 然后 按普通攻击 找到了普通攻击call 下断 关键跳 双击走路切换

依次类推

wwitch()

case1

case2

case3


-----------------------------------------

32

喊话call 原理 就是 bp send 喊话时会向服务器发送一个数据封包 所以 就下断 然后回游戏回车发送文字

断下后 分析 看 edi eax ebp 的值 第一个是 unicode 型 每次都会变 第二个是类型 可以测试 看看 ebp 是

否会改变 退出游戏试试 测试出 ebp是常量


-----------------------------------------

33

找到 上一课 ebp的地址是很有必要的 可以通过ce寻找 OD也可以看到 注意代码写正确。

 

-----------------------------------------

34

找人物目的地坐标 ce 搜索两个数值之间 利用当前人物的 X坐标 搜索 然后 改动 X 坐标 然后我们再搜索现
在的 在搜索 太大的地址可以去掉 不太可能 将 会动的删掉 不是浮点的也可以去掉 点击后 目的地坐标就

已经存在那里了 不会变了 很麻烦 就是筛选 看比较特别的


-----------------------------------------

35


dd 现在的 地址 然后 右键 断点 内存写入 然后 断下后 删除断点 不然运行游戏出错 CRTL+a 分析代码

往上找 esi 的值 数据窗口中 右键 反汇编跟随 然后 看到 ecx 的由来 又要找 ebp 继续下断 往上跟

看到寄存器的值 等于 1 运行 $代码是一个call的头部 代码的头部 在反汇编中跟随 较大偏移一般是角色基

址 然后 dd 可以看看 然后 可以看 32位浮点数


-----------------------------------------

36

搜索 OD死码 要先到系统领空 不然有的时候搜不到 可以单步走看下 异或 就是清零 通常走路call有三个 大

部分游戏都这样

posted @ 2013-01-19 13:49  Rain's Bolg  阅读(545)  评论(0编辑  收藏  举报