作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有可以在 Mac 上运行的任何语言(Perl/Python/Cocoa/etc)或命令行工具可用的 API,您可以使用它来加载二进制文件(app/bundle/framework/etc)并提取硬文件代码中使用的编码字符串?
背后的原因是我们想要检查编译的二进制文件中是否存在任何硬编码路径。
最佳答案
是的,您可以使用strings
命令行工具:
$ man strings
NAME
strings - find the printable strings in a object, or other binary, file
SYNOPSIS
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
DESCRIPTION
Strings looks for ASCII strings in a binary file or standard input. Strings is useful for identifying random object files and many other things. A string
is any sequence of 4 (the default) or more printing characters ending with a newline or a null. Unless the - flag is given, strings looks in all sections
of the object files except the (__TEXT,__text) section. If no files are specified standard input is read.
The file arguments may be of the form libx.a(foo.o), to request information about only that object file and not the entire library. (Typically this argu-
ment must be quoted, ``libx.a(foo.o)'', to get it past the shell.)
The options to strings(1) are:
-a This option causes strings to look for strings in all sections of the object file (including the (__TEXT,__text) section.
- This option causes strings to look for strings in all bytes of the files (the default for non-object files).
-- This option causes strings to treat all the following arguments as files.
-o Preceded each string by its offset in the file (in decimal).
-t format
Write each string preceded by its byte offset from the start of the file. The format shall be dependent on the single character used as the format
option-argument:
d The offset shall be written in decimal.
o The offset shall be written in octal.
x The offset shall be written in hexadecimal.
-number
The decimal number is used as the minimum string length rather than the default of 4.
-n number
Specify the minimum string length, where the number argument is a positive decimal integer. The default shall be 4.
-arch arch_type
Specifies the architecture, arch_type, of the file for strings(1) to operate on when the file is a universal file. (See arch(3) for the currently
know arch_types.) The arch_type can be "all" to operate on all architectures in the file, which is the default.
SEE ALSO
od(1)
BUGS
The algorithm for identifying strings is extremely primitive.
Apple Computer, Inc. September 11, 2006 STRINGS(1)
关于string - 如何从 Mac 中的二进制文件中提取硬编码字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8148841/
我是一名优秀的程序员,十分优秀!