当前位置:  开发笔记 > 开发工具 > 正文

查找DLL函数参数

如何解决《查找DLL函数参数》经验,为你挑选了3个好方法。

如何找到未记录的 Dll函数的参数?

我搜索了整个互联网,最终找到了一种方法:它涉及装饰功能.但是,我无法找到获得这些的方法.

任何帮助,将不胜感激.



1> RandomNickNa..:

我在这里做了一个相当深入的回答,ReactOS是你最好的选择,因为它似乎再次,这里的每个人都有点偏离基础.

强烈反对尝试反汇编系统DLL.

一个MUCH更adventagious(我不这么认为远的东西看起来讨论),方法是枚举PDB的内容.

您可能知道PDB文件是调试符号,但是,由于反托拉斯案件案件的行动,Microsoft需要发布大量未记录的信息.

只有 PDB文件才能记录大量Windows API的完全准确,可用和更新的信息.调用约定,参数计数甚至参数类型和名称都记录在案(但不是关于使用当前的具体细节:).

回顾DIA SDK,dia2dump是与Visual Studio一起分发的一个很好的例子,为了进一步研究,它还提供了一个解决未设计功能的解决方案,专门针对您的问题.

此外,kernel32提供了UnDecorateSymbolName,因此如果您不希望链接到调试sdk库,也可以使用它.



2> 小智..:

正如Paul所说,您需要使用IDA Pro(或其免费版本)之类的东西来反汇编应用程序.

一个很好的入门资源是Wikibook,x86反汇编.具体来说,请查看有关函数和堆栈帧的部分.对于采用标准类型的一些参数的简单函数,推导函数参数可以是直接的.

开始使用这种东西的最好方法可能是创建一个小的测试DLL,用已知参数创建一些函数,然后反汇编你的DLL来查看模式.从您自己的功能(为您拥有源代码并了解完整签名)学习反汇编,而不是深入拆解第三方的东西.



3> Ana Betts..:

唯一的方法是通过反汇编函数并查看它如何使用寄存器和堆栈.IDA Pro是实现这一目标的最佳工具,但它并不是微不足道的.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有