- 大学三年级
- 2453267
- 681
- 15
- 1235 朵
- 2419 个
- 633 个
- 17540
- 2014-04-06
|
1#
t
T
发表于 2022-04-07 14:09
|
|只看楼主
大家好,我是类人猿!之前帖子是关于图文,可能很多同学看起来费劲。下面我用乐玩插件memory汇编命令给大家做一期视频关于memory逆向讲解教学。主要是针对我们主流游戏的memory读写和汇编call、hook等演示试看。memory需要系统学习的,包括汇编等知识。逆向不像图色模拟懂几个命令教可以开干的。如果想系统学习可以报名我的班级来学习按键精灵pc逆向,系统课程大概80集左右。 下面是乐玩篇(部分)试看演示教程: 2022按键精灵memory教程:乐玩篇1.乐玩memory功能插件注册2022按键精灵memory教程:乐玩篇2.memory读取游戏人物数据2022按键精灵memory教程:乐玩篇3.防止更新之特征码定位基地址2022按键精灵memory教程:乐玩篇4.某3D游戏坐标数据查找来源和读取2022按键精灵memory教程:乐玩篇5.某3D游戏memory寻路call分析读取2022按键精灵memory教程:乐玩篇6.按键精灵写某游戏寻路call2022按键精灵memory教程:乐玩篇7. 加密数据和乐玩提取call的返回值2022按键精灵memory教程:乐玩篇8. 游戏memory属性和汇编代码修改2022按键精灵memory教程:乐玩篇9. 特征码定位汇编修改的地址(高级应用准备)2022按键精灵memory教程:乐玩篇10. 构造游戏钩子hook(高级应用)
…………………………………… 按键精灵源码:- ret=Plugin.lwEX.RegCom ("F:\编程工具\乐玩插件8.02\lw.dll")
- if ret=1 then
- TracePrint "注册成功"
-
- End If
- Set lw = createobject("lw.lwsoft3")
- TracePrint lw.ver()
- hwnd = lw.findwindow("Plants vs. Zombies 1.2.0.1073 RELEASE", "MainWindow")
- TracePrint hwnd
- ret = lw.SetMemoryProcess(hwnd, 1)
- //83 F8 04 74 0F 83 F8 05 74 05 83 F8 06 75 5D 83 F8 04
- addr = lw.FindCode("C7 87 78 55 00 00 06 27 00 00 81 BF 78 55 00 00 40 1F 00 00 0F 8C A0 00 00 00 6A 0C E9 94 00 00 00",0,"PlantsVsZombies.exe",1 )-19 //addr 得到定位的地址
- vir_addr = lw.VirtualAllocEx(256)//申请memory空间
- ret = lw.WriteData(vir_addr ,"60 81 87 78 55 00 00 00 10 00 00 61 C3") //构造fake函数
- TracePrint hex( vir_addr)
- jmpvalue = vir_addr - addr - 5 //计算 跳转的距离 jmp 的距离 call的距离
- old_protect = lw.VirtualProtectEx(addr, 5,64)
- ret = lw.WriteByte(addr,232) //call 232 jmp 233
- ret = lw.Writeint(addr + 1, jmpvalue) //写入申请的memory地址
- ret = lw.WriteByte(addr + 5, 144)//call 232 jmp 233
- //add dword ptr ds:[edi+0x5578],eax
- //mov eax,dword ptr ds:[edi+0x5578]
- TracePrint "定位到的memory地址是:"& hex(addr)
- //old_protect = lw.VirtualProtectEx(4504098, 4,32) //恢复memory原来的属性
复制代码
|