c++ - 精细控制GCC的输出

标签 c++ c gcc assembly x86

出于某些原因,我希望能够微调为我的 C++ 程序生成的最终可执行文件 - 细化到单个指令。我记得,GCC 应该生成一些文本汇编程序文件作为中间输出,然后再将其提供给汇编程序以生成最终的二进制目标文件。

我是否可以提取此汇编程序源代码,以编程方式对其进行编辑并将此修改后的版本提供给最终汇编程序以生成我的自定义目标文件?我的目标是 Windows 平台。

MSVC++ 是否支持类似的功能?

如果您想知道为什么,部分原因是通过包含我们的自定义多态代码生成逻辑来防止逆向工程。另一个原因是在分发给客户的每个拷贝中创建隐藏标识,以阻止任何人破解我们的保护并分发他的破解版本。

最佳答案

看看 -S 标志:

g++ -S file.c -o output.s

然后对 output.s 进行微调并编译最终的可执行文件:

g++ output.s -o application

关于c++ - 精细控制GCC的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5994692/

相关文章:

当我尝试更改某些地址值时,C 程序停止工作

gcc - ARM 程序集 : . LANCHOR0

java - 在整数数组中查找第一个非重复数字

C++ 游戏时钟定时器

c++ - 如何将字符串数组分成两个文件M C++98/VS2010

C:不兼容的指针到整数转换

c - 将指针移交给 C 中的另一个函数

c - 在 while 循环中反转 printf 函数的输出

c++ - 使用 GCC : Get Call Count of Functions in a Shared Library 进行分析

c# - C#和C++ dll-编码字符串