如何使用编程方法确定二进制文件依赖于哪个DLL?需要明确的是,我不是试图确定正在运行的exec的DLL依赖关系,而是任何任意exec(可能缺少所需的DLL)的依赖关系。我正在寻找在C/C++应用程序中实现的解决方案。这是我的应用程序需要在运行时完成的事情,而第三方应用程序(如依赖)无法完成。 最佳答案 看看IMAGE_LOAD_FUNCTIONAPI。它将返回一个指向LOADED_IMAGE的指针结构,您可以使用它来访问PE文件的各个部分。您可以找到一些描述结构布局的文章here,和here.您可以下载文章的源代码here.我认为这
如何使用编程方法确定二进制文件依赖于哪个DLL?需要明确的是,我不是试图确定正在运行的exec的DLL依赖关系,而是任何任意exec(可能缺少所需的DLL)的依赖关系。我正在寻找在C/C++应用程序中实现的解决方案。这是我的应用程序需要在运行时完成的事情,而第三方应用程序(如依赖)无法完成。 最佳答案 看看IMAGE_LOAD_FUNCTIONAPI。它将返回一个指向LOADED_IMAGE的指针结构,您可以使用它来访问PE文件的各个部分。您可以找到一些描述结构布局的文章here,和here.您可以下载文章的源代码here.我认为这
据说通过使用C/C++,人们可以编写“native”程序——在平台上运行。我对什么被认为是原生感到困惑-处理器架构或操作系统版本?例如:我有一个32位处理器和Windows7(32位),我编译并生成了.exe文件。是否保证可以在任何Windows732位上运行?(Win732位在32/64位机器上)编辑1:我不打算在这里只使用Windows操作系统。我的示例也可以扩展到Linux。例如,在运行于32位处理器上的32位Linux操作系统上生成可执行文件(默认为a.out),然后在运行于64位处理器上的32位Linux上运行它。编辑2:感谢您的回复,但我也打算使用标准库和函数-没有特定于操
据说通过使用C/C++,人们可以编写“native”程序——在平台上运行。我对什么被认为是原生感到困惑-处理器架构或操作系统版本?例如:我有一个32位处理器和Windows7(32位),我编译并生成了.exe文件。是否保证可以在任何Windows732位上运行?(Win732位在32/64位机器上)编辑1:我不打算在这里只使用Windows操作系统。我的示例也可以扩展到Linux。例如,在运行于32位处理器上的32位Linux操作系统上生成可执行文件(默认为a.out),然后在运行于64位处理器上的32位Linux上运行它。编辑2:感谢您的回复,但我也打算使用标准库和函数-没有特定于操
我想验证签名的可执行镜像的证书(通过验证,我的意思是判断签名是否来自MS/Adobe/Oracle等)。Windows是否为此任务提供api?我该怎么做,不知道。任何帮助,将不胜感激。我正在使用Windows和C++。我想验证native可执行镜像,而不是.NET程序集或Javajar文件。更新好的,我会尽快描述我想要的。1)验证PE证书。签名是否有效。当签名嵌入到PE中并且签名在安全目录中时,它应该可以工作。(我在sysinternals论坛上找到了这个并且工作正常,所以我不再需要这个)。2)告诉谁是文件的签名者/发布者。我知道它可以通过CryptQueryObject实现(我找到了
我想验证签名的可执行镜像的证书(通过验证,我的意思是判断签名是否来自MS/Adobe/Oracle等)。Windows是否为此任务提供api?我该怎么做,不知道。任何帮助,将不胜感激。我正在使用Windows和C++。我想验证native可执行镜像,而不是.NET程序集或Javajar文件。更新好的,我会尽快描述我想要的。1)验证PE证书。签名是否有效。当签名嵌入到PE中并且签名在安全目录中时,它应该可以工作。(我在sysinternals论坛上找到了这个并且工作正常,所以我不再需要这个)。2)告诉谁是文件的签名者/发布者。我知道它可以通过CryptQueryObject实现(我找到了
我有两个问题,第一个已经解决了。当前问题如果我嵌入了一个需要库才能加载的文件,例如jpeg图像或mp3音乐,我将需要使用该文件作为库的输入。但是,每个库都不同,并使用一种方式来获取文件作为输入,输入可能是文件名或FILE*指针(来自libc的文件接口(interface))。我想知道如何访问带有名称的嵌入文件。如果我创建一个临时文件会效率低下,还有其他方法吗?我可以将文件名映射到内存吗?我的平台是Windows和Linux。如果show_file(constchar*name)是库中的函数,我需要一个字符串来打开文件。我看过这些问题:Howtogetfiledescriptorofbu
我有两个问题,第一个已经解决了。当前问题如果我嵌入了一个需要库才能加载的文件,例如jpeg图像或mp3音乐,我将需要使用该文件作为库的输入。但是,每个库都不同,并使用一种方式来获取文件作为输入,输入可能是文件名或FILE*指针(来自libc的文件接口(interface))。我想知道如何访问带有名称的嵌入文件。如果我创建一个临时文件会效率低下,还有其他方法吗?我可以将文件名映射到内存吗?我的平台是Windows和Linux。如果show_file(constchar*name)是库中的函数,我需要一个字符串来打开文件。我看过这些问题:Howtogetfiledescriptorofbu
我有一些旧的Windows可执行文件。如何使用VisualStudio2010编辑它们?有哪些方法可以查看exe的源代码? 最佳答案 您无法从exe中获取C++源代码,您只能通过反射获取某些版本的C#源代码。 关于c#-如何获取Windows可执行文件的源代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2659513/
我有一些旧的Windows可执行文件。如何使用VisualStudio2010编辑它们?有哪些方法可以查看exe的源代码? 最佳答案 您无法从exe中获取C++源代码,您只能通过反射获取某些版本的C#源代码。 关于c#-如何获取Windows可执行文件的源代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2659513/