请教如何查看dll中有哪些函数
发布网友
发布时间:2022-05-17 17:46
我来回答
共2个回答
热心网友
时间:2023-11-01 00:10
可以通过反汇编来知道接口函数的参数,建议使用W32DSM来分析,也可以直接使用VC来分析,就是麻烦一点。
现在使用W32DSM来具体说明:
1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。
它可以直接定位到该函数。
2。看准该函数的入口,一般函数是以以下代码作为入口点的。
push ebp
mov ebp, esp
...
3。然后往下找到该函数的出口,一般函数出口有以下语句。
...
ret xxxx;//其中xxxx就是函数差数的所有的字节数,为4的倍数,xxxx除以4得到的结果
就是参数的个数。
其中参数存放的地方:
ebp+08 //第一个参数
ebp+0C //第二个参数
ebp+10 //第三个参数
ebp+14 //第四个参数
ebp+18 //第五个参数
ebp+1C //第六个参数
。。。。
-------------------------------------------
还有一种经常看到的调用方式:
sub esp,xxxx //开头部分
//函数的内容
。。。
//函数的内容
add esp,xxxx
ret //结尾部分
其中xxxx/4的结果也是参数的个数。
-------------------------------------------------
还有一种调用方式:
有于该函数比较简单,没有参数的压栈过程,
里面的
esp+04就是第一个参数
esp+08就是第二个参数
。。。
esp+xx就是第xx/4个参数
你说看到的xx的最大数除以4后的结果,就是该函数所传递的参数的个数。
----------------------------------------------
到现在位置,你应该能很清楚的看到了传递的参数的个数。至于传递的是些什么内容,还需要进一步的分析。
最方便的办法就是先找到是什么软件在调用此函数,然后通过调试的技术,找到该函数被调用的地方。一般都是PUSH指令
来实现参数的传递的。这时可以看一下具体是什么东西被压入堆栈了,一般来说,如果参数是整数,一看就可以知道了,
如果是字符串的话也是比较简单的,只要到那个地址上面去看一下就可以了。
如果传递的结构的话,没有很方便的办法解决,就是读懂该汇编就可以了。对于以上的分析,本人只其到了抛砖引玉,
热心网友
时间:2023-11-01 00:10
在项目中引用dll后可以右键→在对象浏览器中查看,就可以看到里面的函数了,不过这是没有内容代码的。
想看内容代码可以下载Reflector,这个软件可以反编译dll,可以看到大多数dll的源代码
请教如何查看dll中有哪些函数
1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。它可以直接定位到该函数。2。看准该函数的入口,一般函数是以以下代码作为入口点的。push ebp mov ebp, esp ...3。然后往下找到该函数的出口,一般函数出口有以下语句。...ret xxxx;//其中xxxx就是函...
如何查看DLL文件里的函数
1、准备好要看函数的dell文件,打开Dll函数查看器3.5。2、单击“选择文件”按钮,选择你的文件。3、点击“打开”按钮。你会发现,这个查看器列出了很多函数。4、选择你的函数,如“SetMessageA”,然后点击左边的“+”,你就能看到这个函数的参数。5、如果想在VB或易语言中声明这个函数,不需输入,...
dll文件怎么查看里面的代码
理论上DLL是不能打开的,如果您还是想打开,可以使用一些软件开发或反编译功能,比如DLL函数查看器,但不建议修改。当然也有的DLL是加了壳的,您需要先脱壳才可以。删除DLL文件或修改DLL文件的内容,可能会导某些程序无法打开或运行错误,提示没有DLL文件。因此一般情况下不建议您打开DLL文件或进一步对其进...
如何查看一个DLL文件中具体的函数及其代码?
1接着,我们输入命令 dumpbin -export dll名。2还有其他命令,可以参考help,这样就可以了。3可以用C++自带的工具查。开始 ——》所有程序 ——》 Microsoift visual C++ 6.0 ——》Microsoift visual C++ 6.0 Tools ——》 depends 查具体参数用反汇编,习惯于用OD,ctrl+N 找到要查的参数(后...
如何查看DLL中的函数信息
函数名可以查到,vc工具的depend就可以了,其他也有不少工具可以查到,声明的没有,声明没有编译到dll里的,声明包括函数名、参数和返回值。函数名说了,参数得通过反汇编得到,由于函数里通过堆栈来获得参数值,通过反汇编该函数,从函数头开始找出取堆栈的代码,可以找出该函数的参数个数和类型。参数的...
如何查看Dll里的函数
可以用C++自带的工具查 开始 --》所有程序 --》 Microsoift visual C++ 6.0 --》Microsoift visual C++ 6.0 Tools --》 depends 查具体参数用反汇编,我习惯于用OD,ctrl+N 找到要查的参数(后面会有显示是几个参数的),选中那一行按Enter就会跳到那个函数的调用段,里面会有具体的参数类型 ...
如何查看DLL中的函数名及参数
函数名很简单,导出表里写的明明白白,随便一个dll查看工具都可以读出,比如CFF explorer。但是对于参数,就像楼上说的那样,不能看出它真实的数据类型(即在高级语言中的抽象数据类型)。因为都编译成汇编了,没有抽象的概念了,此时只能知道数据大小。但是,不代表就没有办法了。有个一软件叫IDA,专门...
如何得到一个DLL文件里的所有函数名
//首先取得ImageRvaToVa函数本来只要#include <Dbghelp.h>就可以使用这个函数,但是我的vc没有这个头文件 PFNEXPORTFUNC ImageRvaToVax=NULL;HMODULE hModule=::LoadLibrary("DbgHelp.dll");if(hModule!=NULL){ ImageRvaToVax=(PFNEXPORTFUNC)::GetProcAddress(hModule,"ImageRvaToVa");if(ImageRvaToVax==NULL)...
如何获得dll中的函数、接口和字符串?
使用VC6带的DEPENDS.EXE,打开你的DLL文件,就可以看见带的DLL导出的函数或变量,但你不能看见函数的参数,没有任何工具能看见DLL带的参数
用dumpbin命令查看dll中哪些函数被导出了出错
主要工具有三个1、VC自带的 dumpbin,用法如:dumpbin /exports mspft80.dll2、可以depends来查看依赖项3、可以用IDA 反汇编 工具来查看,加载你需要的dll,按F5就可以查看函数反汇编成C语言的代码了注:以上方法也可以用来查看exe中的 函数原型 ...