PS3 的 C++ 内存编写

标签 c++ c

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

*(char*)0x1786418 = 0x40;

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

我不是 100% 确定这里发生了什么。我知道 0x1786418 是地址,0x40 设置该地址的值。但是我不太确定*(char*) 的作用以及0x40 是如何开启超高速的?

如果能从语法上对此进行解释以及它如何开启超高速,我们将不胜感激。

谢谢!

最佳答案

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

I'm not 100% sure what is going on here. I know that 0x1786418 is the address and 0x40 sets the value at that address.

除非对软件进行逆向工程的人出现在这里并进行解释,否则这里的任何人都可能告诉您这么多。

But I'm not so sure what *(char*) does

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

and how does 0x40 turn on super speed?

这是针对游戏本身的。肯定有人已经弄清楚有关玩家移动速度的数据在内存中的存储位置(特别是针对 PS3),并且正在以这种方式更新它。

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

关于PS3 的 C++ 内存编写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558696/

相关文章:

c - 如何在 macOS 上检查密码?

c# - 如何从我的 C 代码调用 C# dll 中的方法?

c++ - 为什么在这种情况下使用 RemovAll() 时 CArray 会崩溃?

c++ - 是否可以从资源创建Gtk::Builder而不实现try/catch block ?

c - 无法重命名匿名声明 - Xcode 7.1.1

c - C中的printf语句如何进行递增

c - 做 while 和右移没有效果

c++ - 具有可变模板的模板模板参数

c++ - OpenCV:如何可视化深度图像

c - 在函数之间跳转或在函数之间传递值更好吗? C