- 大学三年级
- 2453267
- 681
- 15
- 1235 朵
- 2419 个
- 633 个
- 17540
- 2014-04-06
|
1#
t
T
发表于 2022-04-07 12:20
|
|只看楼主
大家好,我是类人猿!之前帖子是关于图文,可能很多同学看起来费劲。下面我用乐玩插件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(高级应用)第六课视频观看:函数说明:AsmCall 函数简介: 执行用AsmAdd加到缓冲中的指令. 函数原型:
int AsmCall(hwnd,mode)参数定义:
hwnd 整形数: 窗口句柄 mode 整形数: 执行模式,取值如下 0 : 在本进程中的当前线程中进行执行,这时hwnd无效. 1 : 对hwnd指定的进程内执行,注入模式为创建远程线程 2:在hwnd所属线程中,以免崩溃模式执行(此模式下出现绝大多数错误都不会造成进程崩溃),).此模式下的call的执行是排队的,如果同时有多个call在此窗口执行,那么必须排队.所以执行效率不如模式1. 3:在hwnd所属线程中执行,如果模式2执行失败,可以尝试用此模式. 返回值: 整形数: 成功返回执行汇编代码以后的EAX的值.一般是函数的返回值,失败返回-100.
示例: ret=lw.AsmClear() ret=lw.AsmAdd ("mov eax,1") ret=lw.AsmAdd ("push 0123456") ret=lw.AsmAdd ("call 0343434") ret=lw.AsmCall(hwnd,1)
可以在工具的汇编调试里进行测试。
按键精灵课程源码:- Import "D:\软件\乐玩插件8.02\lw.dll"
- Dim ret
- TracePrint (lw.ver())
- If ret="8.02" then
- TracePrint "注册成功,版本没问题"
- End If
- Dim hwnd, intX,intY,addr
- hwnd = lw.FindWindow("赤壁", "ChiBiElementClient Window")
- TracePrint (hwnd)
- lw.SetMemoryProcess hwnd, 1
-
- addr = lw.VirtualAllocEx(100) //申请memory空间
- ret =lw.WriteFloat(addr,396.0) //写入坐标
- ret =lw.WriteFloat(addr+8,352.0)
- ret=lw.AsmClear()
- ret=lw.AsmAdd ("push 0x0")
- ret = lw.AsmAdd("push 0x1")
- ret=lw.AsmAdd ("push " & Hex(addr))
- ret=lw.AsmAdd ("push 0DF1974")
- ret = lw.AsmAdd("mov ecx,0xDF1970")
- ret=lw.AsmAdd ("call 00868920")
- ret=lw.AsmCall(hwnd,1)//注入call
- ret = lw.VirtualFreeEx(addr)//释放memory
- Function 十六到十(十六进制字符串)
- //例子:Msgbox lib.算法.十六进制转十进制("FFFFFF")
- Dim D,H,i,Ia
- D = 0
- H = UCase(十六进制字符串)
- For i = 1 To Len(H)
- Ia = Asc(Mid(H, i, 1)) - 48
- If Ia > 9 Then Ia = Ia - 7
- D = D * 16 + Ia
- Next
- 十六到十 = D
- End Function
复制代码
|