前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Cheat Engine 官方教程汉化

Cheat Engine 官方教程汉化

作者头像
王 瑞
发布于 2022-12-28 10:16:30
发布于 2022-12-28 10:16:30
2.9K00
代码可运行
举报
运行总次数:0
代码可运行

CE修改器官方教程汉化版,区别于前款教程,官方教程中使用的是Tutorial64位程序,如下是经过翻译后的官方文档。

第一步:欢迎

当教程启动时,您应该会看到类似的东西,您只需在阅读帮助文本后单击“下一步”按钮即可。

在后面的步骤中保存密码,以防崩溃(从注入中)并在以后重新启动。

运用CE如何附加到进程

  • 1.打开要附加到的进程/游戏(如果尚未打开)。
  • 2.打开作弊引擎(如果尚未打开)。
  • 3.单击作弊引擎窗体工具栏中的计算机图标,如果作弊引擎刚刚打开,它应该会闪烁,或者在作弊引擎主窗体菜单上选择进程。

4.从列表中选择进程。

5.单击打开按钮或双击该过程。您应该会在窗体顶部看到进程名称。您现在已附加到该进程。

第二步:精确值扫描

对于步骤2,您将看到类似这样的东西。

我们需要找到的是健康,这里是一个整数。

因此,设置内存扫描程序以查找整数,然后进行精确值扫描,然后将该值设置为当前运行状况值,大多数整数将存储在4字节变量中,因此让我们从那里开始。

注意:整数可以存储在 1 字节变量(字节)、2 字节变量(int16/短)、4 字节变量 (int32/int) 或 8 字节变量 (int64/long) 中。

准备就绪后,单击第一个扫描按钮

您应该在找到的地址列表中看到一个地址列表,如下所示。

现在点击点击我按钮,然后重新输入当前值,然后单击下一次扫描按钮

请注意列表中的红色值,这表示该值已更改。

单击下一次扫描后,您可能需要继续单击击中我,然后重新扫描,告诉找到的地址列表足够小,可以使用。

只需双击找到列表中的地址,即可将其添加到作弊表中。然后更改值并冻结地址,双击地址列表中的值进行编辑,通过单击启用码/冻结框将其冻结。

现在应该启用下一个按钮,单击它以转到下一步。如果下一个按钮尚未启用,请再次单击点击我按钮。

第三步:未知的初始值

当您开始步骤 3 时,您应该会看到表单如下所示。

就像帮助文本所说的那样,请确保在开始新扫描之前单击新扫描按钮。

这将清除找到的结果以开始扫描新值。

在这里,我建议继续单击点击我按钮,只是为了查看值是如何减小的,以帮助确定要扫描的值类型。

请注意,该值减小了一个整数,即非小数。

因此,我将扫描仪设置为4个字节和未知的初始值。然后单击第一个扫描按钮

现在点击点击我按钮。然后将扫描类型设置为减小值,然后单击嵌套扫描按钮

请注意找到的地址数量,对于当今的大多数游戏来说,这有点小,对于大多数游戏来说,找到的结果很容易达到数百万。

现在,只需使用点击我按钮继续减小该值,然后扫描减小的值,直到找到的结果足够小,可以使用。

现在我们只需选择一个地址并更改值以查看它是否具有所需的效果,这就是它的工作原理。

在这里,我建议您在更改值(或只是Ctrl + C)之前始终注意这些值,以便在它们不是正确的值时将其设置回去,以防止在游戏中执行此操作时更改一堆未知地址并损坏保存文件。

一旦您将值设置为 5000,下一步按钮应立即变为启用状态。更改值并单击点击我按钮后,进度条应填充,但这不是必需的。

现在应该启用下一个按钮,单击它以转到下一步。如果下一个按钮尚未启用,请再次单击点击我按钮。

第四步:浮点数

当您开始步骤 4 时,您应该会看到表单如下所示。

因此,请单击新建扫描按钮。然后为扫描仪设置一个浮点数精确值,输入当前运行状况值。设置时,单击第一个扫描按钮。

因此,只需像以前一样扫描以查找健康地址,然后将其添加到地址列表中。

现在再次单击新的扫描按钮。然后将扫描仪设置为双精度值,输入当前弹药值。设置时,单击第一个扫描按钮。

因此,只需像以前一样扫描以查找弹药地址,然后将其添加到地址列表中即可。

现在将值更改为5000,然后下一步按钮应变为启用状态。然后单击下一步按钮以继续执行下一步。

第五步:代码查找器

当您开始步骤 5 时,您应该看到表单如下所示。

因此,首先找到该值,然后将其添加到地址列表中。此时继续保存表和密码,以防调试器设置不正确。

在地址列表中拥有地址后,右键单击它,然后选择找出访问此地址的内容。

作弊引擎将提示您有关附加调试器的信息,只需单击按钮即可。

然后将打开一个调试器窗体,现在单击更改值按钮,您应该获得显示在调试器窗体中的代码。

我们想要的是一个书面指令。因此,我们将寻找一些类似于以下内容之一的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mov [**],**
add [**],**
sub [**],**
*** [**],**

选择写入指令的代码行,可以单击显示拆装器按钮以查看内存中的代码,然后单击替换按钮。最后不要忘记单击停止按钮。

替换按钮会将该行代码替换为NOP。作弊引擎将提示您输入它将添加到高级选项列表中的条目的名称。

输入名称,然后单击确定按钮。

现在,单击教程中的更改值按钮。下一步按钮应变为启用状态,然后单击下一步按钮以前进到下一步。

当高级选项列表中的条目被替换时,它们将显示为红色文本。

可以通过单击作弊引擎主窗体左下角状态栏中的高级选项按钮来查看高级选项列表。

要还原列表中某个条目的原始代码,请右键单击该条目,然后选择使用原始代码还原

请注意,恢复后文本为黑色。

第六步:指针

当您开始步骤 6 时,您应该看到表单如下所示。

因此,首先找到该值,然后将其添加到地址列表中。

在地址列表中拥有地址后,右键单击它,然后选择找出访问此地址的内容。

然后单击更改值按钮,让进程访问该地址。

选择代码以查找指针的基址时,请尝试选择不写入与基址相同的寄存器的指令。

在这里,我们对方括号[]之间的值感兴趣,因此这里我们需要RDX的值。

这里的偏移量是0,如果指令有这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mov [rdx+12C],eax

然后偏移量将为12C(0x12C),请注意,这是十六进制。

现在将扫描仪设置为8个字节精确值,选中十六进制复选框,然后获取找到的值并将其作为要扫描的值。

准备就绪后,单击第一个扫描按钮。

在找到的地址列表中查找带有绿色文本的地址,这些是静态地址。

将一个添加到作弊表,双击已添加到地址列表的内存记录的地址,复制该地址,然后选中指针复选框,然后将该地址粘贴到指针基址中。

所以我的指针看起来像["Tutorial-x86_64.exe"+XXXXXX]+0这样。

设置指针时单击确定按钮。

现在将值冻结5000并单击更改指针按钮,下一个按钮应该变为启用状态。

如果下一个按钮未启用,则从找到的列表中选择另一个地址,查找更改其值的绿色地址,并将其设置为与上一个地址一样,并查看它是否指向正确的值,如果是这样,请更改值冻结并单击更改指针按钮。

单击下一步按钮前进到下一步。

第七步:代码注入

当您开始步骤 7 时,您应该会看到表单如下所示。

在这里,我们将遵循与步骤 5 相同的过程,但不是单击替换,请单击显示反汇编器按钮。

这将在指令的地址打开反汇编器视图表单。

选中该指令后,按 Crtl+A 打开自动汇编程序窗体。

在自动组装器表单菜单中,选择模板,然后选择完全注入

这将生成一些脚本来启动。

现在,我们需要添加一些将值增加 2 的代码,然后删除减小该值的原始代码。

为了增加价值,我们可以使用INC或ADD

所以让我们尝试这样的事情。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
...
newmem:
  add dword ptr [rsi+780],2

code:
  //sub dword ptr [rsi+00000780],01
  jmp return

address:
  jmp newmem
  nop
  nop
return:
...

现在将脚本添加到作弊表,然后启用脚本并单击“点击我”按钮。

这应该启用下一步按钮,因此单击下一步按钮转到下一步。

第八步:多级指针

当您开始步骤 8 时,您应该会看到表单如下所示。

手动迭代

在这里,我们将遵循与步骤6相同的步骤,除了我们将看到哪些内容访问了我们找到的基址,并且我们将继续重复此操作,直到找到静态基址。

这是我的第一个调试器输出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
10002D8D1 - B9 A00F0000 - mov ecx,00000FA0
10002D8D6 - E8 3522FEFF - call Tutorial-x86_64.exe+XXXXXX
10002D8DB - 89 46 18  - mov [rsi+18],eax  <<<<<<
10002D8DE - 89 C2  - mov edx,eax
10002D8E0 - 48 8D 4D F8  - lea rcx,[rbp-08]

RAX=00000000000007F7
RBX=000000000125CD60
RCX=0000000000000FA0
RDX=00000000828087F3
RSI=0000000001287960  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D8DE
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

我确实在基址的第一次扫描中发现了一个静态基数,但我记得这是一个虚假的基数。所以这里我们想要的是一个process.exe+offset形式的基址,你可以尝试其他看起来像module.dll+offset的基址,但我想说的是,在这里它们将被证明是错误的指针。是的,大多数较新的游戏都会有许多错误的值和指针。

调试器从地址保持输出:0000000001287960

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
10002D88B - E8 90961200 - call Tutorial-x86_64.exe+XXXXXX
10002D890 - E9 65000000 - jmp Tutorial-x86_64.exe+XXXXXX
10002D895 - 48 83 3E 00 - cmp qword ptr [rsi],00  <<<<<<
10002D899 - 74 5F - je Tutorial-x86_64.exe+XXXXXX
10002D89B - 48 8B 36  - mov rsi,[rsi]

RAX=0000000000013117
RBX=000000000125CD60
RCX=000000000125CD60
RDX=0000000000003CE3
RSI=0000000002D6D540  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D899
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

调试器输出的地址保持:0000000002D6D540

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
10002D845 - E8 D6961200 - call Tutorial-x86_64.exe+XXXXXX
10002D84A - E9 AB000000 - jmp Tutorial-x86_64.exe+XXXXXX
10002D84F - 48 83 7E 18 00 - cmp qword ptr [rsi+18],00  <<<<<<
10002D854 - 0F84 A0000000 - je Tutorial-x86_64.exe+XXXXXX
10002D85A - 48 8B 76 18  - mov rsi,[rsi+18]

RAX=00000000000166D2
RBX=000000000125CD60
RCX=000000000125CD60
RDX=000000000000302E
RSI=0000000002D6CE40  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D854
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

调试器输出的地址保持:0000000002D6CE40

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
10002D800 - E8 1B971200 - call Tutorial-x86_64.exe+XXXXXX
10002D805 - E9 F0000000 - jmp Tutorial-x86_64.exe+XXXXXX
10002D80A - 48 83 7E 10 00 - cmp qword ptr [rsi+10],00  <<<<<<
10002D80F - 0F84 E5000000 - je Tutorial-x86_64.exe+XXXXXX
10002D815 - 48 8B 76 10  - mov rsi,[rsi+10]

RAX=000000000000B567
RBX=000000000125CD60
RCX=000000000125CD60
RDX=00000000000050A1
RSI=000000000123F1C0  <<<<<<
RDI=0000000100258308
RSP=000000000102F070
RBP=000000000102F0B0
RIP=000000010002D80F
R8=0000000100161BA0
R9=00000000008E06A0
R10=0000000000000002
R11=0000000000000206
R12=00000000012607C0
R13=0000000100161BA0
R14=0000000100258300
R15=0000000100257A18

现在我们扫描该基址000000000123F1C0,您应该找到一个静态地址,但在实际游戏中,您将继续前进,直到找到静态基址。

以该静态地址为基址,我的指针将如``[[[["Tutorial-x86_64.exe"+XXXXXX]+10]+18]+0]+18`所示。

指针扫描可以通过首先找到所需值的地址,保存生成的指针映射,重新启动游戏,再次搜索地址,保存另一个指针映射,然后比较两者来快速解决此问题。

找到指针后,将其冻结在 5000,然后单击更改指针按钮。如果您找到了正确的底座,则下一步按钮应在大约2秒后启用。因此,单击下一步按钮转到下一步。

第九步:共享代码

当您开始步骤 9 时,您应该会看到表单如下所示。

因此,就像帮助文本所说的那样,解决方案远远不止一种。

首先,我们需要找到其中一个地址并将其添加到表中。

如果您在查找地址时遇到问题,请记住尝试不同的值类型,并且不要忘记开始新的扫描。

然后,就像在步骤7中一样,我们想要查看访问地址的内容,以找到写入参与者运行状况的函数。

如果您想尝试其他方式,请继续保存密码,这是本教程的最后一步。

因此,在这里,最好了解我们实际上在寻找什么来区分盟友和战斗人员。

当编写游戏或引擎时,演员和玩家可能会这样编写。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//// Actor, base for all actors
class Actor(object){
   string Name = 'Actor';
   Coord Coords = new Coord(0, 0, 0);
   float Health = 100.0;
   ...
}
//// Player
class Player(Actor){ //// Player inherits form Actor
   string Name = 'Player';
   int Team = 1;
   ...
}

团队本身可以是一个结构,比如说,如果它被声明为一个对象类,比如Coords变量,我们希望寻找一个指向参与者团队结构的指针。

因此,我们可以做到这一点的一种方法是在玩家结构中找到团队ID或团队结构。

在球员结构中查找球队ID

找到减少生命值的功能后。右键单击反汇编器视图窗体中的指令,然后选择找出此指令访问的地址。

然后单击所有 4 个值的攻击按钮。调试器列表中应具有所有 4 个地址。

因此,请继续将它们添加到地址列表中。

然后,让我们打开剖析数据结构表单。

你会得到一些弹出窗口,在想到它们之后,你应该看到这样的表单。请注意,我必须扩展窗体的宽度才能移动列。

现在在我的偏移量上,0x10被猜测为一个指针,在64位进程中宽度为8字节。我看到0x10的指针的值看起来真的不像指针。

因此,我必须将其切换到4字节,并添加一个新的元素集,其偏移量为具有4字节值类型的0x14。这通常是它的工作方式。

所以在这里我们可以看到团队变量在结构的偏移0x14。

现在我们需要向脚本添加一些注入代码,然后添加一些代码来检查结构的团队变量,以确定哪些参与者是盟友,哪些是战斗员。

所以我们想要一些这样的。

因此,启用此脚本后,当游戏写入演员健康时,以下是跳转到钩子代码后将发生的事情:

  • 1.保存(PUSH)RFLAGS寄存器,不是完全需要,但在比较时仍然是一个好习惯。
  • 2.检查演员是否在团队 1 中。如果 actor 在团队 1 中,则我们以浮点格式将新值设置为 5000。
  • 3.检查演员是否在团队 2 中。如果 actor 在团队 2 中,则我们将新值设置为 0,采用十六进制格式。(浮点数 0 == 整型 0 == 十六进制 0)
  • 4.恢复(POP)RFLAGS寄存器,如果寄存器是PUSHed的,这是完全需要的。

启用此脚本后,单击重新启动游戏并自动播放按钮,然后您应该看到表单更改并如下所示。

因此,单击下一步按钮以完成本教程。然后,您应该会看到一个表单,告诉您已完成本教程。

在寄存器中发现差异

找到减少生命值的功能后。

右键单击反汇编器视图窗体中的指令,然后选择找出此指令访问的地址。

然后单击所有 4 个值的攻击按钮。

调试器列表中应具有所有 4 个地址。

现在让我们看看登记册,看看我们是否能找到盟友和战斗人员的差异。

单独选择每个地址,然后按 Ctrl+R

排列表单以使其更易于比较。

因此,在这里我们可以看到战斗人员的RSI为1。

所以像这样的脚本应该可以工作。

因此,启用此脚本后,当游戏写入演员健康时,以下是跳转到钩子代码后将发生的事情:

  • 1.保存(PUSH)RFLAGS寄存器,不是完全需要,但在比较时仍然是一个好习惯。
  • 2.检查 RSI 寄存器是否为
    • 1,如果 RSI 寄存器为 则我们将新值设置为十六进制格式的 0。(浮点数 0 == 整型 0 == 十六进制 0)
    • 2,如果 RSI 寄存器不是 1,那么我们假设 actor 是盟友,因此我们以浮点格式将新值设置为 5000。
  • 3.恢复(POP)RFLAGS寄存器,如果寄存器是PUSHed的,这是完全需要的。

启用此脚本后,单击重新启动游戏并自动播放按钮,然后您应该看到表单更改并如下所示。

因此,单击下一步按钮以完成本教程。

然后,您应该会看到一个表单,告诉您已完成本教程。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CE修改器使用教程 [基础篇]
Cheat Engine 一般简称CE,是一个开放源代码的游戏修改软件,其功能包括,内存扫描、十六进制编辑器、调试工具,Cheat Engine 自身附带了辅助制作工具,可以用它直接生成窗体工具,CE可以说是目前最优秀的修改器不是之一,这个工具绝对值得你去学习,只要花一点时间就够了。
王 瑞
2022/12/28
4K0
CE修改器使用教程 [基础篇]
2.5 CE修改器:寻找数值指针
上一步阐述了如何使用代码替换功能对付变化位置的数据地址,但这种方法往往不能达到预期的效果,所以我们需要学习如何利用指针,在本关的Tutorial.exe窗口下面有两个按钮,一个会改变数值,另一个不但能改变数值而且还会改变数值在内存中存储的位置。接下来我们将找到内存中的基址,为什么要找指针,在前面的教程中,如果各位细心观察的话就会发现 在笔者截图中的出现地址和你的地址并不相同。也就是说,这些地址是一直在变化的,我们把它叫做动态地址,我们必须寻找到该动态地址的基址,并以此来保证唯一性。
王 瑞
2023/11/13
1.3K0
2.5 CE修改器:寻找数值指针
CE修改器使用教程 [入门篇]
Cheat Engine 一般简称为CE,它是一款开放源代码的作弊软件,其主要功能包括、内存扫描、十六进制编辑器、动态调试功能于一体,且该工具自身附带了安全工具,可以用它很方便的生成自己的脚本,CE可以说是目前最优秀的游戏修改器不是之一,这款修改工具绝对值得你去学习,只需要花一点点时间就够了。
王 瑞
2022/12/28
18.8K0
CE修改器使用教程 [入门篇]
1.1 熟悉x64dbg调试器
x64dbg 是一款开源、免费、功能强大的动态反汇编调试器,它能够在Windows平台上进行应用程序的反汇编、调试和分析工作。与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可靠的解决方案。正是因为有了这些优点,才能使其成为当今最受欢迎的反汇编调试软件之一。
王 瑞
2023/07/06
7440
1.1 熟悉x64dbg调试器
2.7 CE修改器:多级指针查找
在本步骤中,你需要使用多级指针的概念来查找健康值真正的地址并修改它。多级指针就是一个指针的指针,也就是第一个指针指向第二个指针,第二个指针指向第三个指针,以此类推,最终指向你想要访问的地址。
王 瑞
2023/11/13
7210
2.7 CE修改器:多级指针查找
WinDbg用户模式调试基础教程
Debugging Tools for Windows由调试器、工具以及软件包中调试器的相关文档组成。这个工具包可以作为Windows SDK或者WDK的一部分安装。
JusterZhu
2025/06/11
1810
WinDbg用户模式调试基础教程
汇编寄存器的规则
在本章中,您将了解到 CPU 使用的寄存器,并研究和修改传入函数的参数。您还将了解常见的苹果计算机架构,以及如何在函数中使用它们的寄存器。这就是所谓的架构调用约定。
molier
2022/11/03
2.8K0
汇编寄存器的规则
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
在上一篇博客 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 ) 中 , 没有找到真实地址 , 本篇博客重新开始一个完整流程 ;
韩曙亮
2023/03/29
1.3K0
【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
CE(CHEAT ENGINE)修改器新手入门教程
Cheat Engine 一般简称CE,是一个开放源代码的作弊软件,其功能包括:内存扫描、十六进制编辑器、调试工具。
Khan安全团队
2024/08/29
1.8K0
CE(CHEAT ENGINE)修改器新手入门教程
深入理解计算机系统(第三版)/ CSAPP 杂谈,第3章:程序的机器级表示
*x86-64还为128位操作提供有限支持,当imulq和mulq为双操作数时,是64位乘法;当为单操作数时,另一个乘数将视为%rax,而结果将存放在%rdx(高64位),%rax(低64位)中。
sickworm
2019/02/27
1.2K0
汇编和栈
当一个函数传递了六个以上的参数时,多余的参数将通过堆栈传递。但是在堆栈上传递到底是什么意思呢?现在该通过深入研究一些 “与堆栈相关的” 寄存器以及堆栈中的内容,来深入探讨从程序集角度调用函数时的情况。当您进行逆向工程程序时,了解堆栈的工作方式非常有用,因为当没有可用的调试符号时,您可以帮助推断出在某个函数中正在操纵哪些参数。在下一单元中,您将使用本章中的知识在 LLDB 中构建命令,该命令将通过在内存中抓取函数来发现一些有趣的事情。让我们开始吧
molier
2022/11/03
3.9K1
汇编和栈
linux内核1-GNU汇编入门_X86-64&ARM
为了阅读Linux内核源代码,是需要一些汇编语言知识的。因为与架构相关的代码基本上都是用汇编语言编写的,所以掌握一些基本的汇编语言语法,能够更好地理解Linux内核源代码,甚至可以对各种架构的差异有一个更深入的理解。
Tupelo
2022/08/10
5.1K0
linux内核1-GNU汇编入门_X86-64&ARM
CE修改器入门:寻找指针基址
上一步阐述了如何使用代码替换功能对付变化位置的数据地址,但这种方法往往不能达到预期的效果,所以我们需要学习如何利用指针,在本关的 Tutorial.exe 窗口下面有两个按钮,一个会改变数值,另一个不但能改变数值而且还会改变数值在内存中存储的位置。
王 瑞
2023/02/25
9K0
CE修改器入门:寻找指针基址
【CSAPP】BombLab
《CSAPP》是指计算机系统基础课程的经典教材《Computer Systems: A Programmer's Perspective》,由Randal E. Bryant和David R. O'Hallaron编写。该书的主要目标是帮助深入理解计算机系统的工作原理,包括硬件和软件的相互关系,其涵盖了计算机体系结构、汇编语言、操作系统、计算机网络等主题,旨在培养学生系统级编程和分析的能力。
SarPro
2024/02/20
3240
【CSAPP】BombLab
CTF逆向指南
在CTF比赛中, CTF逆向题目除了需要分析程序工作原理, 还要根据分析结果进一步求出FLAG。逆向在解题赛制中单独占一类题型, 同时也是PWN题的前置技能。在攻防赛制中常与PWN题结合。CTF逆向主要涉及到逆向分析和破解技巧,这也要求有较强的反汇编、反编译、加解密的功底。
小道安全
2021/09/24
2.1K0
CTF逆向指南
攻击本地主机漏洞(中)
Windows无人参与安装在初始安装期间使用应答文件进行处理。您可以使用应答文件在安装过程中自动执行任务,例如配置桌面背景、设置本地审核、配置驱动器分区或设置本地管理员账户密码。应答文件是使用Windows系统映像管理器创建的,它是Windows评估和部署工具包(ADK:Assessment and Deployment Kit)的一部分,可以从以下站点免费下载https://www.microsoft.com.映像管理器将允许您保存unattended.xml文件,并允许您使用新的应答文件重新打包安装映像(用于安装Windows)。在渗透式测试期间,您可能会在网络文件共享或本地管理员工作站上遇到应答文件,这些文件可能有助于进一步利用环境。如果攻击者遇到这些文件,以及对生成映像的主机的本地管理员访问权限,则攻击者可以更新应答文件以在系统上创建新的本地账户或服务,并重新打包安装文件,以便将来使用映像时,新系统可以受到远程攻击。
顾翔
2022/09/23
1.6K0
攻击本地主机漏洞(中)
汇编和内存
你已经开了汇编学习的旅程,并且在前几章中你已经学习了汇编调用的一些黑魔法,你现在知道了,当一个函数被调用,他的参数和返回值是如何传递的。但是您还没学到的是将代码加载到内存后如何执行代码。
molier
2022/11/03
1.3K0
汇编和内存
程序机械级表示——数据格式与访问信息
8位称为字节(byte),16位称为字(word),32位为双字(double words),64位为四字(quad words)
Andromeda
2023/10/21
2400
Java 中文官方教程 2022 版(十二)
一个 Java 小程序可以将消息写入标准输出和标准错误流。在调试 Java 小程序时,将诊断信息写入标准输出可以是一个非常有价值的工具。
ApacheCN_飞龙
2024/05/24
2050
Java 中文官方教程 2022 版(十二)
基于汇编的 C/C++ 协程 - 切换上下文
在前一篇文章《基于汇编的 C/C++ 协程 - 背景知识》中提到一个用于 C/C++ 的协程所需要实现的两大功能:
amc
2018/07/23
2.8K2
基于汇编的 C/C++ 协程 - 切换上下文
相关推荐
CE修改器使用教程 [基础篇]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档