一、游戏的CALL 1.调用MessgeBoxA函数call示例 (1)找到MessageBoxA call地址 (2)分析MessageBoxA call的参数 (3)注入代码测试调用MessageBoxA call push 0x11 push 75AEBB1F push 75AEBB1F push 0 call 75ACAB20   

  1. 窗口菜单类CALL分析 1) .windows菜单基本知识: 菜单被点击的时候发送的是WM_COMMAND消息 窗口处理函数 LRESULT CALLBACKwindowProc (   _in HWND hwnd,   in UINT uMsg,   in wPARAM wParam   __in LPARAM lParam ) ; 当点击菜单的时候,windowProc会被系统调用: uMsg  赋值为: wM_COMMAND wParam  赋值为:对应的菜单的ID〈我们要分析的数据就是这个) 2) 用OD打开扫雷游戏程序,定位窗口处理函数的地址 窗口处理函数地址:01001BC9 3) 在扫雷游戏windowProc函数处下条件断点 条件是:uMsg == WM_COMMAND   如: edx == WM_COMMAND的条件断点

01001BC9 /. 55 PUSH EBP ASCII "酎 " 01001BCA |. 8BEC MOV EBP,ESP 01001BCC |. 83EC 40 SUB ESP,40 01001BCF |. 8B55 0C MOV EDX,DWORD PTR SS:[ARG.2] 01001BD2 |. 8B4D 14 MOV ECX,DWORD PTR SS:[ARG.4] 在这里下断点 01001BD5 |. 53 PUSH EBX 01001BD6 |. 56 PUSH ESI

4)分析出各项菜单被点击时, windowProc的4个参数的值 EBP+8 /000F117E ; UNICODE "tls_hotkey32" 参数hwnd EBP+C |00000111  参数uMsg EBP+10 |00000209  参数wParam EBP+14 |00000000  参数lParam

如: wParam 初级菜单ID: 0x209 中级菜单ID: 0x20A 高级菜单ID: 0x20B 5)注入代码调试   push 0   push 0x209   push 0x111   push 0x000F117E   call 0x01001BC9    二、分析游戏基地址 1.基地址的概念 全局变量 字符常量等的地址 2.查找和验证基地址 1)使用CE内存查找工具查找数据地址 1.首次先让要查找的数据稳定在某个范围(或者某个精确的值) 使用CE的首次扫描功能 2.改变要查找的数据,根据变化筛选出数据地址 2)OD中验证是否就是基地址 通过下内存断点的方式来验证 add  dword ptr [ 1005194],eax ;这种立即数寻址的基本都是基地址

三、游戏菜单点击和读取基地址    四、扫雷游戏的辅助编写 1.雷区数据分析 雷区数据基地址  0x01005361   宽  基地址0x01005334 高  基地址0x01005338 char a [ 24][ 32]  //ReadProcessMemory

  1. 分析数据意义 0x8F  翻开是雷 0x10  结束标示

五、植物大战僵尸游戏

  1. 分析阳关基地址  006A9EC0

2.分析金币基地址 通过CE工具收索游戏本次运行的金币基地址 猜想 金币和数字对应比例,可能是1:1,也可能是其他比例 分析:金币显示的值不是数字1:1关系,我们只能通过范围搜索的方式定位金币的地址了 植物大战僵尸:显示金币和数字之间的比例10:1 金币的地址不是绿色基地址,所以我们需要找到[基地址+偏移地址]的方式来表示它 金币基地址  006A9EC0    3.分析植物安放的冷却时间 猜想 冷却时间是一个计数器变量,每隔一段时间增加一定的数量 递减:10 9 8 7 6 5 4 3 2 1 0 递增:0 1 2 3 4 5 6 7 8 9 10 通过CE工具收索游戏本次运行的计数器变量地址

if(计数器的值>上限值) {   植物就判定为可安放状态 } 植物就判定为不能安放状态    思路一:改掉计数器上限的值,可以缩短冷却时间 思路二:直接修改代码段,改变程序的执行流程   

  1. 分析植物大嘴花吞噬的冷却时间 思路:找出判断大嘴花吞噬时间的代码,并改变执行逻辑 1.先定位大嘴花吞噬时间计数器变量的地址 2.通过CE或者OD工具定位谁访问了这个地址,从而定位到判断大嘴花吞噬冷却时间的代码 3.分析判断大嘴花吞噬冷却时间的代码

  2. 分析按放植物ca11 思路:找出按放植物的ca11代码 1.先定位代表鼠标右键选中植物类型的地址 2.分析ca11代码的参数及堆栈 3,将自己的写的植物按放的汇编代码注入到游戏进程空间中

5.远程线程注入代码 步骤: 1)打开目标进程 OpenProcess,获取到目标进程句柄 2)在目标进程分配内存空间 VirtualAllocEx 3)往分配的内存空间中写入代码 4)远程调用 CreateRemoteThread执行目标进程指定地址的代码 5)等待远程线程执行完成 WaitForSingleObject 6)释放目标进程空间 VirtualFreeEx 7)关闭目标进程句柄

results matching ""

    No results matching ""