如何发现命令行选项(如果有的话)来历不明的可执行无证?
-
22-09-2019 - |
题
取待查一个未记录的可执行文件。试图/ ?, -h,命令行的产量没有--help。 是否有可能发现如果可执行文件支持的可执行文件?可能逆向工程里面找任何命令行选项?什么是这样做的最佳方式?
我说的是一个Windows可执行文件,但很想听到你会与其他操作系统需要不同的方法。
解决方案
对于Windows,你可以看到的有关反编译的Windows可执行文件这一问题。它应该是比较容易的,至少发现选项(他们实际上做的是一个不同的故事)。
其他提示
在Linux中,一个步骤将被运行strings your_file
的转储的文件中的可打印字符的所有字符串。任何常量字符将因此被示出,包括任何“用法”的指令。
接着步骤可以是在文件上运行ltrace
。这说明所有的函数调用的程序一样。如果它包括getopt
(或熟悉的),则它是一个明确的信号,它是处理输入参数。事实上,你应该能够看到什么说法程序期待,因为这是对getopt
函数的第三个参数。
如果它是一个.NET可执行尝试使用反射。这将MSIL代码转换成等价的C#代码,可能更容易理解。不幸的是私人和局部变量名都将丢失,因为这些不存储在MSIL,但应该还是有可能跟着发生了什么事情。
不隶属于 StackOverflow