gpt4 book ai didi

c++ - 混淆 C++ 中的变量和函数名称以防止基本逆向工程

转载 作者:太空狗 更新时间:2023-10-29 20:04:01 28 4
gpt4 key购买 nike

在业余时间,我正在和我的一些 friend 做一些逆向工程游戏,我想知道如何尽可能地防止 asm 可读性。我不想“阻止”逆向工程(毕竟它总是可能的),我只是想通过在汇编代码中混淆函数/变量来防止容易理解它们。

例如,如果我在 C++ 中声明了一个函数:

void thisFunctionReverseAString(std::string& mystring);

我想确保无法从程序集中获取名称 thisFunctionReverseAStringmystring。在 g++clang++ 中是否有任何编译选项可以做到这一点?

最佳答案

混淆只会对源代码有帮助。没有调试信息的可执行文件不包含变量名或函数名。

逆向工程的过程包括:

  1. 将可执行文件转换为汇编语言代码。
  2. 将汇编代码转换为高级语言代码。
  3. 理解按顺序命名的函数和变量。

例如,将 FORTRAN(或编译的 BASIC)中的可执行文件逆向工程为 C++ 源代码。

正如其他人所说,有一些函数可以从可执行文件的调试版本中删除符号。您可以从头开始构建不带符号的可执行文件,通常称为 Release 版本。

关于c++ - 混淆 C++ 中的变量和函数名称以防止基本逆向工程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174003/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com