我想找到任何软件可能输出的所有错误消息。这可能吗?
使用 Orca.Msi,我能够获取所有错误代码及其描述,但这仅适用于安装程序。
对于实际的程序,我尝试使用 ResHack,并从程序可执行文件和 DLL 文件中发现了一些错误消息。问题是并非所有错误消息都会显示出来。
有没有办法在没有源代码的情况下找到任何给定程序的所有错误消息?特别是用 C++/C# 编写的程序,但也欢迎提供其他编程语言的提示。
答案1
一个想法是使用 Linux 中包含的程序“Strings”,它可以通过以下方式在 Windows 上使用:赛格威。
它将扫描您的文件并输出程序中所有可能的字符串,这些字符串看起来像 C 字符串(文本,以 \0 结尾)。请注意,这还会输出文件中包含的大量垃圾和非错误文本。此外,它无法确定错误代码。一些示例:http://www.thegeekstuff.com/2010/11/strings-command-examples/ 以及手册页:https://linux.die.net/man/1/strings
您也可以尝试使用一些高级逆向工程工具,例如 IDA Pro,但这个程序非常昂贵(有一个旧的免费软件版本),而且您必须知道自己在做什么,因为您必须查看汇编代码。因此,这种方法也可以告诉您错误代码,但需要大量工作。所以这肯定不是一个自动化过程。