零基础学习软件逆向!教你一步步成为逆向大佬!!!(入门篇)

请各位看官点一点关注,制作不易,您的关注就是我制作的动力!!!

目录

目录

1.计算机中关于数符的表示方法 

2.Cheat Enginee(CE)的详细使用指南

2.1CE简介

2.2 CE安装和下载说明

2.3核心功能介绍

2.4系统详细使用文档



1.计算机中关于数符的表示方法 

  1. 无符号二进制数

在字长范围内,所有二进制位都是数值位。

字长8位:  0~255           00H~FFH

字长16位: 0~65535            0000H~FFFFH

字长32位: 0~4294967295  0000 0000H~FFFF FFFFH

在字长范围内,最高二进制位为符号位,其余位为数值位。

字长8位:数值范围  80H~7FH    -128~+127

字长16位:     8000H~7FFFH  -32768~+32767

字长32位:   8000 0000H~7FFF FFFFH  -2147483648~+2147483647

在计算机中,任何一个带符号数,都是以补码的形式进行存贮和管理的。

[+121]原= 0111 1011       0000000001111001

[-121]原= 1111 1001       1000000001111001

[+0]原= 0000 0000        0000000000000000

[-0]原= 1000 0000        1000000000000000

补码表示

(1)正数,同原码

(2)负数,原码的每一位(符号位除外)取反,再在末位加1

例:字长8位,求-11的补码

原码          1000 1011

各位取反         1111 0100

末位加1         1111 0101

由补码求真值(补码对应的十进制数)

原码就是数字本身,例如:

(+7)的原码=0000 0111 最高位为符号位(0表示正数)

(-7)的原码=1000 0111 最高位为符号位(1表示负数)

反码就是将原码按位求反(符号位不变),例如:

(+7)的反码=0111 1000 符号位不变

(-7)的反码=1111 1000 符号位不变

注意:当负数以补码的形式表示时,求该数的原值仍用“求反再加一”的方法,例如,

如果是正数,就不能用上述方法。正数的补码就是该数的本身,

其实补码是针对负数来说的,计算机中只有加法器(没有减法器),引入补码的目的是为了将减法计算变为加法计算。


2.Cheat Enginee(CE)的详细使用指南

2.1CE简介

CE是一款游戏作弊引擎,全称为Cheat Engine,简称为CE。

通常用于单机游戏的内存数据修改,可以搜索游戏中的内存数据,并进行修改、锁定等操作。内置调试器,可以进行反汇编调试、断点跟踪、代码注入等诸多高级功能。支持 lua 语言,可以实现自己定义的逻辑功能,而不仅仅是简单的锁定数据。也可以在代码注入的同时注入 lua 插件,使游戏进程与 CE 进程进行交互。 CE 的大部分功能都可以通过 lua 来操作。它还支持 D3D Hook 功能,可以在游戏中显示十字准星,也可以绘制功能菜单,同时也可以对 D3D 的调用栈进行跟踪调试。自带变速功能,通过 Hook 游戏相关函数改变游戏速度。自带了一个 Trainer 的功能,可以将自己在 CE 中实现的功能单独生成一个 exe 文件,并可以使用 lua 创建比默认样式更加复杂的窗体或功能。

2.2 CE安装和下载说明

  1、首先在官网网站下载CE软件包,下载完成后运行exe安装文件,就可以进入Cheat Engine安装界面,如下图所示,我们点击next。

 2、进入到CE许可协议界面,我们先点击界面左下角的I accept the agreement选项,然后在点击界面下方的next。

3、进入到CE安装路径选择界面,我们可以直接点击next,软件会默认安装到系统C盘中,或者点击界面的Browse选项,然后选择合适的安装路径,再点击next。

 4、进入到CE软件菜单文件夹选择界面。这个我们可以直接使用默认的文件夹,如果你想要更换可以点击Browse,选择好之后再点击next。

5、进入到CE软件准备安装界面,我们在界面可以看到之前设置的安装路径、菜单文件夹等选项,确认无误后我们在点击Install。

  6、CE软件正在安装中,如下图所示,你需要耐心等待安装进度条完成,小编亲自安装过,速度是很快的,所以不用等太久。

  7、CE安装完成,可以界面下方的Finish选项,就可以关闭安装界面打开软件使用了。

 2.3核心功能介绍

选中进程后,点击①首次扫描,右侧地址处会出现一堆地址,在④处写入要查找的数据,点击②再次查找。若不小心点击再次扫描可点击③撤销扫描。在⑤处勾选十六进制,则可以将④处的数值变化为十六进制,在⑥处可选择扫描类型,在⑦处可选择数值类型,在⑧处可指定扫描的内存范围。2.4系统详细使用文档

详细参考网址:Cheat Engineicon-default.png?t=M85Bhttps://cheatengine.org/tutorials.php

参考CE傻瓜教程:

1精确数值扫描

主要目的是遍历出我们想要的动态数据,比如角色的生命,人物的魔法等,都会用到精确扫描。 

本窗口的左下方显示的"健康:XXX",
在你每次点击"打我"按钮时,它的值便会减少。
要进入下一关,你必须找到这个数值并把它改成 1000 。

1.首先游戏规则是每次我们点击打我按钮则健康值则会减一,我们首先搜索100。

现在开始搜索精确数值 100 数值中输入100 点击首次扫描按钮

这次扫描我们得到 35 个结果。

 关键一步:为了找到更加精确的数据,我们回到 Tutorial 点击打我按钮,此时血值已有变化了:

 我们再输入95点击再次扫描按钮 结果只剩1个(这就是我们要找的),我们双击此地址将其添加到地址栏:

此时地址栏里面只有1个结果了,这个就是我们要找的内存地址,双击将其加入到地址栏

在数值95上面双击,并修改把 95 改成 1000 点击确定按钮,此时通关.

此时回到Tutorial-i386.exe程序,会发现教程的下一步按钮变成可用,再次点击打我按钮,数值变大了,继续点击下一步进入下一关。

 2 未知数值扫描

本关主要用来搜索进度条,人物血条等,因为这些数据通常是一个进度条,我们无法直接看到的数据,此时可以通过变更的数据一步步筛选找到动态地址。在上一关中我们知道初始数值的大小,所以我们可以利用"精确数值"扫描,但本关中仅有一个状态栏,我们并不知道它的初始数值。
我们只知道这个数值在0到500之间,并且每次点击"打我"之后便会减些,每次减少的健康值会显示在进度条的上方。
这一关很重要,因为某些游戏中血显示的不是数字而是血条,这样的话教程2中的方法就失效了,所以需要用到未知数值扫描。

 此时在CE修改其中点击新扫描然后选择未知初始数值,其他的选项不用动。

点击 首次扫描然后出现了肯定是很多结果,因为太多了,CE没有显示出来。老办法,回到Tutorial.exe,点击打我 ,CE会告诉你血量减了多少,比如 -6

扫描减少的数值: 下拉框,选择减少了的数值,按再次扫描(此时血量减少了)

二、扫描不变的数值: 拉框,然后选择 没变动的数值(此时血量没有变化)

 反复操作: 再回到Tutorial ,点击 打我 => 扫描减少了的数值 => 扫描没变动的数值 反复操作,最后就会只剩4个地址

简单判断: 简单判断下(Tutorial中告诉你了这个数值是小于500的),很容易就找到了最终的地址。

 双击把地址加到地址栏,然后更改数值为5000。

 

血量减少=>CE搜索减少的数值
血量不变=>CE搜索不变的数值
血量增加=>CE搜索增加的数值

这样反复筛减,就能很容易找到最终的结果。

3浮点数的扫描

在前面的教程中我们使用4字节的方式进行扫描,但有些游戏使用了"浮点数"来存储数值。浮点数是带有小数点的数值(如 5.12 或 11321.1),正如本关中的健康和弹药,两者都以浮点方法储存数据,不同的是,健康值为单精度浮点数,而弹药值为双精度浮点数。"精确数值"扫描的方式虽然也可以完成本关的工作,但是浮点数扫描的方式会更加简便。

 

  1. 在扫描浮点数时,我们需要将数值类型改为浮点数,浮点数扫描时不必输入后的小数 97.0000 扫描时输入97就可以了。

  1. 此时将97这个浮点数改为5000即可。

 3.接着搜索双浮点数,也就是找到弹药的内存地址。

 4.最后改写弹药将99.5改成5000即可通关。

 

 这里面要注意的是:浮点数的长度是4字节,使用4字节也可搜索到浮点数,但需要使用模糊搜索。双浮点数的长度是8字节,使用8字节也可搜索到浮点数,但需要使用模糊搜索。

4指针

接下来我们将找到内存中的基址, 为什么要找指针,在前面的实例中,如果每次重启游戏,地址是一直在变化的,我们把它叫做动态地址。其实并不是所有的地址都会变化的,内存中也有不会变化的地址,我们将不会变化的地址,我们把它叫做基址,实现思路:用不变的地址定位会变化的地址,即用基址定位动态地址。

1.首先,我们先找到程序的动态地址,如下我们搜索100。

 2.点击改变数值后,继续搜索。

 3.找到血量的地址后,加入到地址栏,然后在地址上按右键=>找出是什么改写了这个地址,然后点击改变数值按钮,出现一行代码,双击那行代码(或者点击详细信息)。

 4.然后出现一个信息框,CE让我们下一步找 01732898,继续操作:

 5.返回到CE,点击新扫描,先勾上十六进制,填入01732898,点击首次扫描。

一定要勾上十六进制,否则CE在搜索16进制字母时会报错。

这个地址00601630 显示的是绿色的,因为它就是基址。

注意:在CE中显示绿色的地址是基址,黑色的地址是动态地址

6.手动添加一个指针,点击手动添加地址

 图示操作,输入 00601630 然后点击确定

 7.注意看:指针在地址栏显示的是 p->地址 这种类型的。

 我们将数值改成5000,再点击前面的锁定

然后点击 Tutorial 中的 改变指针 按钮,这关就可以过了。

 说明:
1、并不是所有的游戏都要找基址然后做指针,有的游戏直接就是基址
2、基址是绿色的,如果找到最后有多个绿色地址,在一般情况下选择第1个

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
网传资源,如有侵权请联系/留言,资源过大,上传乃是下载链接,失效请留言,下面上大纲: 01.Android环境配置与常用工具介绍 02.Android smali 与 java 代码介绍1 : d% y( z) X- o& ~, e0 _; c1 I 03.Android smali 与 java 代码介绍2 c+ K& I/ q( b 04.Android smali 与 java 代码介绍3 % ]7 Z+ f! I! [5 S. O. N 05.Android smali 与 java 代码介绍4 7 A9 G6 c k; B 06.Android smali 与 java 代码介绍5 ; [. D3 O0 ~9 _0 ]3 W 07.常用Android快速定位关键点方法介绍 " v+ h0 Z5 x& }1 o4 c/ L 08.从0开始打造自己的破解代码库 09.Android 结构基础讲解 10.快速Hook代码搭建之 Cydia Substrate 11.快速Hook代码搭建之 Xposed 12.安装部署Android源码编译环境 13.Android源码目录结构与修改引导 / |3 T: f, f8 [2 @+ p 14.Android源码修改与刷机介绍 & D- q# v- o) o) ?/ u( A 15.Android Jni 编程 & Y6 ^/ J* G3 ] 16.arm 汇编代码讲解1 . J) E# f# h! Q4 x2 P+ K 17.arm 汇编代码讲解2 18.arm 汇编代码讲解3 19.arm 汇编代码讲解4 20.arm 汇编代码讲解5 ' B! y1 m7 _% U8 r2 G! R% h& L! a4 J0 B 21.class.dex文件格式讲解 22.Android 动态代码自修改原理 23.Android 动态代码自修改实现1 . F; Z5 @* D* r 24.Android 动态代码自修改实现2 25.Android dvm 脱壳1 26.elf结构详解1, d9 H, S" s2 }8 j' B6 v 27.elf结构详解2 8 A9 q+ O" `- v 28.elf文件变形与保护 1 g, b1 q, P( P& W, k3 F7 U 29.elf文件修复分析 9 K p" k/ `- s, w/ r: R( X 30.so加壳文件修复 31.常用调试检测方法与过检测方法 * G( L. J' P1 \+ }: N; r 32.Android源码定制添加反反调试机制 ' v/ q6 K1 {6 ] 33.Android dvm 脱壳2 34.Android dvm 脱壳3 H2 X- A# M4 s+ A6 K- b 35.Dalvik dex处理分析 ) x+ l1 l1 J R2 N) T" R) ^2 o 36.IDA脱壳脚本编写1) O7 `% E" Q. @1 X! o ~ 37.Odex修复方法 38.IDAOdex修复脚本编写 " X' w1 h: w3 N" u8 P5 z 39.Android 加壳原理 40.Android 加壳保护工具编写1 1 x4 k0 P/ V' C9 a( O 41.Android 加壳保护工具编写2 42.Android 加壳保护工具编写3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刚子116

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值