C++ Memory Writing for the PS3

C++ Memory Writing for the PS3

本文关键字:the PS3 for Writing Memory C++      更新时间:2023-10-16

我正在学习如何破解PS3游戏,在那里我需要编辑存储在特定内存地址的内容。以下是我看到人们为实现这一目标所做的一个例子:

*(char*)0x1786418 = 0x40;

这行代码为COD Black Ops II开启了超高速。

我不能百分之百确定这里发生了什么。我知道0x1786418是地址,0x40设置该地址的值。但我不太确定*(char*)是做什么的,0x40是如何开启超高速的?

如果能从语法上解释一下,以及它是如何开启超高速的,我们将不胜感激。

谢谢!

在尝试进行逆向工程之前,您应该考虑了解编程语言的基础知识。这绝对是一个高级话题,你不想把它作为入门的一种方式。这会让事情变得不必要地困难。

我不能百分之百确定这里发生了什么。我知道0x1786418是地址,0x40设置该地址的值。

这是这里的任何人都可能告诉你的,除非逆向工程软件的人出现在这里并解释它

但我不太确定*(char*)对有什么作用

这是一种获取地址并将其解释为指向字节的指针的方法(C中的char是1字节的内存),然后外部*取消引用指针以允许修改指针引用的值,在这种情况下,设置为值0x40

CCD_ 9是如何开启超高速的?

这是非常具体的游戏本身。一定有人弄清楚了玩家移动速度的数据存储在内存中的位置(特别是PS3),并以这种方式进行更新。

像这样的东西很容易被一个简单的补丁破解,因为代码更改可能会使某些东西最终出现在不同的地址,需要额外的反向工程工作。

如果有人正在处理这个问题,并且想知道如何设置预设置或启用红框,或者什么不能解释如何(MW3将是我的例子)

所以对于声望来说,它就像*(char*)0x01C1947C = 20;如果你不明白20你可以做20或0x14也等于声望20如果你想要声望12你可以做12或0xC如果你不知道如何搜索你想要的声望,那么用十六进制:)

现在对于像红框这样的东西(假设你知道bools/if语句和void,我不会只覆盖它们——你会如何设置它)

现在你可以为红框(启用)ps做。字节On可以称为任何

char bytesOn[] = { 0x60, 0x00, 0x00, 0x00 };
write_process(0x65D14, bytesOn, sizeof(bytesOn));
whateverYourBoolIsCalled = true;

现在关闭它的工作原理是一样的,除了你必须获得其他字节:)

如果您想在sprx 中设置名称,我将再添加一个示例

char name[] = { "name here" }; write_process(0x01BBBC2C, name, sizeof(name));

有一些较短的方法可以做到这一点,但我认为这是理解这样做的最好方法:)所以你一直是我的导师:)

相关文章: