gpt4 book ai didi

c++ - 如何找出在 DLL 中调用了哪些函数?

转载 作者:行者123 更新时间:2023-11-28 04:14:38 24 4
gpt4 key购买 nike

我有一个使用 CameraSDK.dll 的 CamerSampleSDK.exe C++ 应用程序。由于未知原因,公司决定不向所有购买相机的用户提供 CamerSampleSDK.exe 源代码。主要问题是有可能以某种方式找出 CameraSDK.dll 应用程序 CamerSampleSDK.exe 正在调用哪些函数?在这种情况下可以使用哪个应用程序?

最佳答案

当您不知道函数原型(prototype)和它们的参数时,这会有点复杂。但是你尝试做一个小的研究:

  1. 查找您的 DLL 正在导出的所有函数名称(您的目标是 DLL 导出表)。您可以使用“PE 工具”应用程序:在 PE 编辑器中打开您的 DLL,“目录”->“导出目录”。您将看到函数名称及其地址:

enter image description here

  1. 如果你能使用 IDA Pro,那将是更好的解决方案。尝试反汇编您的 DLL,探索每个导出的函数并通过反编译代码推断参数类型和结果。在研究中这是比较复杂的事情,你需要汇编程序、系统架构师和机器代码的知识。
  2. 如果您熟悉 WinDBG、OllyDBG 或其他 Windows 用户模式调试器等调试器,请尝试调试使用 DLL 的应用程序:在每个 DLL 导出函数上放置断点。检查推导的签名是否正确并找到正确的调用顺序
  3. 尝试在您的项目中使用带有 LoadLibrary/GetProcAddress 的 DLL,并对应推导的参数和调用顺序。

关于c++ - 如何找出在 DLL 中调用了哪些函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56942253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com