zoukankan      html  css  js  c++  java
  • 学习逆向知识之用于游戏外挂的实现.第三讲,通过游戏外挂.分析红色警戒金钱基址.以及确定基址小技巧.

                              分析红色警戒金钱基址.以及确定基址小技巧.

    一丶基址简介

      通过第二讲.我们寻找植物大战僵尸无限阳光.学习到了相关的逆向知识.以及认识了基址.动态地址. 静态地址的区别.现在我们拿红色警戒这款单击游戏进行练手.

    PS: 主要目的是分析数据.学习逆向知识.并为之所用.并不是教大家如何制作外挂.

    1.怎么确定我们寻找到的是基址?

    有三种方法.

    1. CE中绿色表示基址,黑色表示内存地址.一般绿色的很有可能是基址(当然不一定是.不过大部分是)
    2. 退出游戏重新进入游戏.地址不会改变.其值的内容也不会改变.
    3. 搜索指针.找不到.那么基址的上一级地址就是指针地址. 这段话可能有点难以理解. 意思就是如果我们找到基址了.再看访问.如果没有地址保存这个基址指针.那么这个基址指针就是我们要寻找的基址指针了

    二丶运行红警进行金钱的查找.

      红色警戒我们可以在网络上下载.也可以在网盘中下载.都会打包上传.

    CE使用方法:

      1.附加Game.exe

      2.搜索金钱.

      3.改变金钱数值.

      4.CE点击再次扫描.

    如果执行完上面四步那么剩下的就是我们要找的地址了.

    我们说过.绿色的可能表示基址.我们可以一个一个尝试.

    PS: 不一一尝试了.其中步骤略过.经过尝试.前两个绿色的并不是我们要找的基址.最后一个修改我们游戏中才会进行修改.

    所以我们找到了动态地址.如下图所示

     所以我们要找什么改写了这个地址.通过第二节课内容.寻找我们的基址. 如下图所示

    通过上图.我们得出了汇编指令

    mov [ebx + 0x24c],eax

    由此得出.一级偏移是24c

    那么我们继续寻找ebx指针. 看看是谁保存了ebx指针 如下图所示

    通过查找.我们找出了三个绿色基址.但是根据第一次查找.我们会发现0x0084开头的有可能不是.不过我们也不确定.所以三个都要尝试.

    PS: 已经进行过尝试了. 基址指针是 0x00A1E0C4

    尝试的时候.使用CE的手动添加地址.尝试. 如下图所示

    所以我们根据我们找基址的三种方法进行尝试.

    可以得出确定我们要找的基址就是我们的找的地址了.

    三丶通过编程实现修改金钱.

    通过上面我们可以得出.  [0xA1E0C4] + 0X24C = 金钱的地址

                 [[0xA1E0C4] + 0x24c] = 金钱的值.

    所以我们可以使用易语言编写简单的修改金钱辅助.

    当然C++一样可以修改. 具体API可以参考上一篇文章.

    因为易语言好实现.所以使用易语言编写.

     成品:

     课堂代码以及游戏:   链接:https://pan.baidu.com/s/1T56c20QIcADoAGc6lhD8Lg 密码:pf5d

  • 相关阅读:
    答题活动小程序V3.0
    在线答题小程序关于完形填空题的设计
    如何搭建在线答题小程序
    考研政治刷题小程序我来了
    JVM中的枚举
    IO Stream byte[]
    成长经验系列之七-方法-跳出背了忘忘了背的循环
    JVM之GC Roots
    深入理解Java虚拟机-第三版-第二章JVM内存区域笔记
    JVM之DirectByteBuffer
  • 原文地址:https://www.cnblogs.com/iBinary/p/9515304.html
Copyright © 2011-2022 走看看