您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> dll可以打开吗?如何查看dll中的函数,如何引用?

dll可以打开吗?如何查看dll中的函数,如何引用?

来源:网络整理     时间:2016/8/31 13:25:00     关键词:

关于网友提出的“ dll可以打开吗?如何查看dll中的函数,如何引用?”问题疑问,本网通过在网上对“ dll可以打开吗?如何查看dll中的函数,如何引用?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: dll可以打开吗?如何查看dll中的函数,如何引用?
描述:

dlldll打开dll引用

dll可以打开吗?如何查看dll中的函数,如何引用?看见一个文件里面很多以后缀名dll的,它是怎么引用的,,不懂啊,,, dll可以打开吗?如何查看dll中的函数,如何引用?
解决方案1:

VS里边自带:
dumpbin(CUI)
SKATE11提到的dependency walker更好,是GUI界面。
MinGW中也自带一些小程序。

解决方案2:

1.首先确定这个dll是不是真的是动态库,而不是其他什么的。
2.确定你要的功能是否为一个导出函数,如果导出直接LoadLibrary、GetProcAddress就可以用(COM、ATL除外),也可以自己创建一个lib文件静态链接
3.关于你要的功能是未导出函数,那么用OD、IDA等程序逆向了。
  ①.找关键二进制串,在Load以后再内存中暴搜
  ②.基址+偏移的方式调用(不适合多版本情况)
  ③.根据某个导出函数定位此函数(导出函数直接调用你想要的函数的时候,也就是不宜嵌套太对层函数)
4.关于COM、ALT、ActiveX之类的东西,告诉你别想了,要完全逆开了才知道怎么用

解决方案3:

如果你的工程没有main函数,那么工程最后应该生成库文件。如果生成的是动态库,将会有dll和lib后缀的2个同名文件。
如果你要使用这个库的导出函数,你可以:
1.直接调用函数,在编译的链接阶段将lib库作为参数传入,使你的程序能发现这个函数,建立和dll的依赖关系;
2.调用LoadLibrary,使用函数名来查找定位函数,并且使用函数指针来调用函数。这种用法在编译的链接阶段不需要对应库,只要在运行阶段能够找到该库。插件通常采用这种方法。

解决方案4:

dll没有特定的程序是不能打开的,而且不能单独运行。就是一堆二进制,查看dll的导出函数有很多,比如dumpbin.exe,Depends等等。dll一般有显示加载和隐示加载两种方式,隐示加载加载通过他的导入库.lib文件引入,显示加载通过LoadLibrary加载。当然,隐示加载最终也是调用LoadLibrary实现的。还是多看看书的好


以上介绍了“ dll可以打开吗?如何查看dll中的函数,如何引用?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3681708.html

相关图片

相关文章