CE学习记录1

主题

春节放假终于有空学习下怎么制作外挂啦......学习写外挂大概是我一开始学习计算机的动力吧....只是一直似懂非懂..看教学视频各种不明白为什么....也没有专门的时间学习下怎么写....春节有空研究了下cheat engine学习了下怎么修改内存里的值达到作弊的效果....希望后期能和E语言结合在一起写成真正的外挂....(笑)

这篇文章主要记录下今天的研究成果..

效果

主机999元...装不了啥其他游戏....装了个红警3做测试...

最终效果如下:

学习过程

要修改某个值,比如金钱,首先应该找到储存金钱的内存地址...

比如这个金钱可能就是存在了一个int类型的变量里....

但是int money,这个money肯定是被包装在其他DTO或者什么VO对象里的.不可能是个static的变量(其实java static的变量我都找了半天没有找到基址..)...(CE里的黑色的地址,是new出来的.)

所以如果用这个地址的话,下次运行游戏就不行了,因为new可能会在内存另一块空间分配money...所以要找到一个相对于程序的静态的变量(也可能是那种编译的时候就能确定要怎么分配内存的变量),并且从这个变量可以找到money的地址.

然后比如你要修改money,money外层被player对象包裹着..那修改money肯定是player.money=xxx.那只要找到player就能找到money了..player外层又会被什么别的对象包裹...一层一层向外找就OK了.

看看是哪个指针会修改这个money地址里的值.

发现会把eax的值写入money的地址里.eax是16进制的268A=10进制的9866

然后money的地址是0412FD7C这个是通过esi+04得出的,esi的值是0412FD78.

所以说player.money调用的时候先取player的地址,再+04计算出money的地址,进而得出money地址里的值.

所以说会有一个指针指向player(esi的值).

所以继续搜索0412fd78.

然后类似于这个步骤,一层一层向外层对象查找.

找到最外层不变的基址(指针)以后再根据指针间的关联一层层推回来..

这样子找到了基址(指针),通过基址再去找money的地址(多级指针最终指向money的地址),不管游戏重启多少次,都不需要重新再找地址的.也是也外挂必备的吧..

感谢

超级有成就感....顺便强行复习了一下汇编....强行复习了下C++指针.....哈哈...

时间: 2024-10-27 07:34:49

CE学习记录1的相关文章

Chrome神器Vimium快捷键学习记录

今天下午折腾了一下Chrome下面的一个插件Vimium的使用,顿时发现该插件功能强大,能够满足减少鼠标的使用.至于为何要使用这个插件,源于我手腕上的伤一直没有好,使用鼠标的时候有轻微的疼痛.而且,由于我一般都是在SNS网站上停留,在人人和微博比较多,所以实际上发现每次看完一个一个页面都要点下一页的感觉很不爽,而同时最近在学习Vim,所以想到如果能够实现几个简单的快捷键,那么会相当方便.为此Google之,发现了这个给力的插件,以下为我的学习笔记.Vimium使用快捷键总结 j, <c-e>

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

Objc基础学习记录5

NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendingFormat:可以添加多个类型的字符串. int,chat float,double等 3.stringWithString 创建字符串, 4.rangeOfString 返回str1在另一个字符串中的位置. 5.NSMakeRange(0,3) 字符串0位到3位. 6.deleteCharac

Windows API 编程学习记录&lt;二&gt;

恩,开始写Windows API编程第二节吧. 上次介绍了几个关于Windows API编程最基本的概念,但是如果只是看这些概念,估计还是对Windows API不是很了解.这节我们就使用Windows API 让大家来了解下Windows API的用法. 第一个介绍的Windows API 当然是最经典的MessageBox,这个API 的作用就是在电脑上显示一个对话框,我们先来看看这个API的定义吧: int WINAPI MessageBox(HWND hWnd, LPCTSTR lpTe

Windows API 编程学习记录&lt;三&gt;

恩,开始写API编程的第三节,其实马上要考试了,但是不把这节写完,心里总感觉不舒服啊.写完赶紧去复习啊       在前两节中,我们介绍了Windows API 编程的一些基本概念和一个最基本API函数 MessageBox的使用,在这节中,我们就来正式编写一个Windows的窗口程序. 在具体编写代码之前,我们必须先要了解一下API 编写窗口程序具体的三个基本步骤:             1. 注册窗口类:             2.创建窗口:             3.显示窗口: 恩,

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

Python学习记录-2016-11-29

今日学习记录: 心灵鸡汤: 要有合适自己的目标,一个目标一个目标实现,切忌好高骛远: 最好的投资就是投资自己: 实现梦想 学习,学习,再学习: Talk is cheap. 从本身而言,余三十而立之年,从事测试行业7七年有余,一年半华为外包路由器,两年无线wifi测试,一年半网管软件测试,一年自动化测试经理,推行公司自动化测试进程,从开始的TCL,到现在的python,工欲善其事必先利其器,所以自己来学习,总体我认为我的目标是一直前进的,不断变化的,但是方向并没有大的错误,有些累,所以近期有些懈

程序的机械级表示学习记录

程序的机械级表示学习记录 X86的三代寻址方式 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全. 8086的分段模式. IA32的带保护模式的平坦模式. 对于机械级编程的两种重要抽象 ISA:机械级程序的格式和行为,定义为指令集体系结构,它定义了处理器状态.指令的格式,以及每条指令对状态的影响. 虚拟地址:机器级程序使用的存储器地址,提供的存储器模型看上去是一个非常大的数组.存储器系统的实际实现是将多个硬件存储器和操作系统软件组合起来的. 在GCC中获得汇编代码与反汇编 获得汇编代码:

python 系统地学习记录

由头: python值得一学. 尝试一下写学习记录,看看效果. 1.记录一些不熟悉或者重要的知识点. 2.记录一些遇到的问题,标签 Question. 书:python基础教程(第2版) Chapter 1:基础知识 本章的内容熟悉即可. 比较重要的是字符串,单双引号转义,str,repr... Time 1.5 h  2015.8.31 23:09 版权声明:本文为博主原创文章,未经博主允许不得转载.