我有这段代码可以编辑游戏中的地址以获得无限的弹药等等,我发现每台计算机的地址都是不同的,有时每次重新启动游戏时,所以我如何设法使这项工作仍然有效他们改变了。

有帮助吗?

解决方案

如果你得到你所要寻找的地址,然后搜索内存中的地址找到指针指向数据的地址,然后在内存中搜索的的地址,让你可以发现指针的地址给它,等等,你可能最终会发现,不更改地址。然后,在运行时,您可以使用它作为起点,取消对它的引用找到你要找的位置。当然,这一切都取决于数据内部是如何布局。它可以变得很复杂。

其他提示

对于在堆记录内容签名匹配。也许使用针对特定的已知内容编辑距离。

没有伤害我回答,因为你不得不问,你可能没有挑起大梁,把它关闭。

最好的方法是在内存中寻找模式并使用偏移量来计算出来。这不会简单,因为这是游戏开发者想要阻止的事情。

所以他们不会有一个漂亮的文本字符串说“弹药在该字符串开始之前存储了 27 个字节”。

如果他们正在做一些棘手的事情,比如每次游戏运行时都移动它(我会因为我很狡猾),你需要反汇编他们的代码以找出如何 他们 找到内存。

然后你做同样的事情。我知道,听起来很容易,而且确实如此。但根据您过去的问题,我不确定“H4cKL0rD”是一个合适的绰号:-),至少在这种情况下是这样。

如果您对反汇编程序、十六进制编辑器等感到不舒服,几乎肯定有一个程序可以为您做到这一点。

你要么打算放弃,或者得到很好用反汇编。

如果你只想把工作做好,并不在乎自己具有编码它,你可以用它专门为这一任务设计的,例如作为的 T-搜索

我说,预装了一些自定义的内存分配器,并设法找到你要找的东西的malloc()的大小。

既然你试图破解该数据很可能被存储在其他参数的结构,认识结构尺寸将让你当你看到这个大小通的分配采取特别行动。

typedef struct {
   int ammo;
   int damage;
   int fire_distance;
} Sniper_AWP_T;

void *my_custom_malloc( int size ){
   void *ret = malloc(size);
   if( size == sizeof( Sniper_AWP_T ) ){
       hack_address = ret;
   }
   return ret;
}

// later on 

hack_address->ammo = 999;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top