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

如何找出DLL中正在调用哪些函数? 我有CAMAMSAMPLSKD.EXE C++应用程序,使用的是CAMCASDKD.DLL。由于未知原因,该公司决定不向所有购买相机的用户提供CamerSampleSDK.exe源代码。主要的问题是,是否可能以某种方式找出CameraSDK.dll应用程序CamerSampleSDK.exe调用的函数?在这种情况下可以使用哪个应用程序?,c++,dll,profiling,C++,Dll,Profiling,当您不知道函数原型及其参数时,这有点复杂。但你试着做一个小调查: 查找DLL正在导出的所有函数名目标是DLL导出表。您可以使用“PE工具”应用程序:在PE编辑器中打开DLL,“目录”->“导出目录”。您将看到函数名称及其地址: 如果您能使用IDA Pro,它将是更好的解决方案。尝试反汇编DLL,探索每个导出的函数,并通过反编译代码推断参数类型和结果。这在研究中是更复杂的事情,你们需要汇编程序、系统架构师和机器代码的知识。 如果您熟悉WinDBG、OllyDBG或其他Windows用户模式调试器等

当您不知道函数原型及其参数时,这有点复杂。但你试着做一个小调查:

查找DLL正在导出的所有函数名目标是DLL导出表。您可以使用“PE工具”应用程序:在PE编辑器中打开DLL,“目录”->“导出目录”。您将看到函数名称及其地址: 如果您能使用IDA Pro,它将是更好的解决方案。尝试反汇编DLL,探索每个导出的函数,并通过反编译代码推断参数类型和结果。这在研究中是更复杂的事情,你们需要汇编程序、系统架构师和机器代码的知识。 如果您熟悉WinDBG、OllyDBG或其他Windows用户模式调试器等调试器,请尝试调试使用DLL的应用程序:在每个导出的DLL函数上放置断点。检查推断的签名是否正确,并找到正确的呼叫顺序 尝试在项目中使用带有LoadLibrary/GetProcAddress的DLL,并对应于推导的参数和调用顺序。
是的,假设它们是静态链接的,这很容易:google for pedump或exedump实用程序。@500 InternalServerError dll和exe表示Windows操作系统,这意味着动态链接。@500 InternalServerError这些实用程序能看到.exe实际调用的函数吗?我知道你可以看到dll有哪些函数…@500 InternalServerError假设它们是静态链接的,这就是我的观点。啊,对不起。这是一个输入错误,而且很严重:我的意思是假设它们是静态加载的。