预处理程序中的代码是否有条件输入二进制文件?

克里斯·P

我有一个Config.h文件,其中包含基于环境的各种预处理器条件。该项目有2个目标。通过预处理程序参数,如果环境是第一个目标,则我们可以拥有BASE_URL = @“ https://firsttarget.com/ ”,而如果环境是第二个目标,则我们可以拥有BASE_URL = @“ https:// secondtarget。 com / ”。

出于法律目的,如果有人要重新编译程序集,然后去寻找字符串等……如果他们正在寻找第二个目标的二进制文件,那么我们将找不到有人找到字符串@“ https://firsttarget.com/ ”应用程序。

所以我的问题是...如果在预处理程序中,条件字符串后面的字符串不相关,它们是否会被删除?

斯文

除非定义了ifdef行上给定的符号,否则编译器不会看到#ifdef#endif(或#else之间的代码节您可以通过编写在此部分中不会编译的内容来轻松地显示这一点。而且由于编译器看不到该代码,因此该定义的值无法以二进制形式结束。

要确切了解编译器将使用什么功能,可以在Xcode中选择一个实现文件,然后从菜单中选择“产品>执行操作>预处理”。这将向您确切显示编译器将使用的功能。当然,还将导入所有系统.h文件中的内容,因此您的代码很可能在最后。您的#define行也将被剥离,因此要真正检查将使用哪些字符串,您需要选择一个实际使用这些宏的文件。

最后,您可以做攻击者可能做的同样事情-strings在编译的二进制文件上使用该实用工具,然后查看其中的内容。在Xcode中,构建您的应用,然后从产品组中为您的应用捆绑包选择“在Finder中显示”选项。在那里选择“显示软件包内容”以打开您的实际应用程序捆绑包。实际的二进制文件在其中与您的软件包同名,但没有文件扩展名。然后打开一个终端窗口,键入“ strings”(即单词字符串后跟一个空格),然后将二进制文件拖到其顶部。然后确认返回。您将从二进制文件(包括每个选择器)中获得每个可读字符串的长长列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

shell脚本中应有条件的二进制运算符

来自分类Dev

如何使用C预处理程序测试目标是否具有二进制补码整数?

来自分类Dev

没有条件逻辑的二进制字符串

来自分类Dev

是否可以将预处理器有条件地放在C宏中?

来自分类Dev

有条件地从二进制堆中弹出元素时,借用检查器不满意

来自分类Dev

在R中处理二进制文件

来自分类Dev

Haskell中的Neater二进制文件处理

来自分类Dev

如何在二进制文件中从具有偏移量的输入写入字节?

来自分类Dev

如何在Windows 7中本机查看文件的二进制内容?(是否有可能。)

来自分类Dev

如何在Linux Mint中安装具有二进制文件的程序?

来自分类Dev

是否有单个命令可将HTTP服务器中的二进制文件下载到linux / solaris并随后安装二进制文件?

来自分类Dev

Linux中带有二进制文件的目录

来自分类Dev

是否有用于部署应用程序/程序二进制文件(发行版)的服务?

来自分类Dev

从二进制文件中读取

来自分类Dev

是否可以使用预处理器指令来有条件地选择USE语句,该指令依赖于Fortran中文件接口/头文件中的数据?

来自分类Dev

如何从源代码构建的应用程序制作二进制文件或.deb文件?

来自分类Dev

C ++标准是否保证字符串文字存储在程序二进制文件中,且不受干扰?

来自分类Dev

部署Android应用程序时,Java断言是否始终包含在二进制文件中?

来自分类Dev

机器语言,二进制代码和二进制文件之间的区别

来自分类Dev

是否可以在ARM处理器上运行x86二进制文件?

来自分类Dev

二进制文件处理程序未写入最后一个值

来自分类Dev

使用Rcpp构建程序包时处理修饰的外部二进制文件

来自分类Dev

如何测试Linux二进制文件是否被编译为位置无关代码?

来自分类Dev

yum是否可以从源代码进行编译而不是安装预编译的二进制文件?

来自分类Dev

汇编程序-以十进制形式在汇编中写入二进制文件

来自分类Dev

是否有可靠的方法知道可以在elf二进制文件中dlopen()编译哪些库?

来自分类Dev

为什么“二进制文件”不在原始二进制文件中?

来自分类Dev

二进制程序包控制文件的字段标识符中的有效字符

来自分类Dev

Web程序集二进制文件是否会比JavaScript / TypeScript包小?

Related 相关文章

  1. 1

    shell脚本中应有条件的二进制运算符

  2. 2

    如何使用C预处理程序测试目标是否具有二进制补码整数?

  3. 3

    没有条件逻辑的二进制字符串

  4. 4

    是否可以将预处理器有条件地放在C宏中?

  5. 5

    有条件地从二进制堆中弹出元素时,借用检查器不满意

  6. 6

    在R中处理二进制文件

  7. 7

    Haskell中的Neater二进制文件处理

  8. 8

    如何在二进制文件中从具有偏移量的输入写入字节?

  9. 9

    如何在Windows 7中本机查看文件的二进制内容?(是否有可能。)

  10. 10

    如何在Linux Mint中安装具有二进制文件的程序?

  11. 11

    是否有单个命令可将HTTP服务器中的二进制文件下载到linux / solaris并随后安装二进制文件?

  12. 12

    Linux中带有二进制文件的目录

  13. 13

    是否有用于部署应用程序/程序二进制文件(发行版)的服务?

  14. 14

    从二进制文件中读取

  15. 15

    是否可以使用预处理器指令来有条件地选择USE语句,该指令依赖于Fortran中文件接口/头文件中的数据?

  16. 16

    如何从源代码构建的应用程序制作二进制文件或.deb文件?

  17. 17

    C ++标准是否保证字符串文字存储在程序二进制文件中,且不受干扰?

  18. 18

    部署Android应用程序时,Java断言是否始终包含在二进制文件中?

  19. 19

    机器语言,二进制代码和二进制文件之间的区别

  20. 20

    是否可以在ARM处理器上运行x86二进制文件?

  21. 21

    二进制文件处理程序未写入最后一个值

  22. 22

    使用Rcpp构建程序包时处理修饰的外部二进制文件

  23. 23

    如何测试Linux二进制文件是否被编译为位置无关代码?

  24. 24

    yum是否可以从源代码进行编译而不是安装预编译的二进制文件?

  25. 25

    汇编程序-以十进制形式在汇编中写入二进制文件

  26. 26

    是否有可靠的方法知道可以在elf二进制文件中dlopen()编译哪些库?

  27. 27

    为什么“二进制文件”不在原始二进制文件中?

  28. 28

    二进制程序包控制文件的字段标识符中的有效字符

  29. 29

    Web程序集二进制文件是否会比JavaScript / TypeScript包小?

热门标签

归档