如何查看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
(1)生成自己类库DLL文件
打开VS2010,新建-项目-Windows-类库(),用于创建C#类库的项目(dll)。
按照正常编写类的方法封装一个自定义的类库类,写好后,可以再添加一个普通的测试类测试这个类库的正确性,生成项目,在bin目录下会出现和类名一致的dll文件。这样我们自己的dll类库。也就是常说的动态链接库编译完成。
(2)查看他人的DLL中的函数内容
如果想查看已有的dll中的函数声明,打开开始菜单----程序----Microsoft Visual Studio 2010----Microsoft Windows Tools SDK----IL反汇编程序,,拖拽任意一个已经存在的dll文件到IL反汇编窗口,查看内容,
如何查看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文件中具体的函数及其代码?
1接着,我们输入命令 dumpbin -export dll名。2还有其他命令,可以参考help,这样就可以了。3可以用C++自带的工具查。开始 ——》所有程序 ——》 Microsoift visual C++ 6.0 ——》Microsoift visual C++ 6.0 Tools ——》 depends 查具体参数用反汇编,习惯于用OD,ctrl+N 找到要查的参数(后...
如何查看DLL中的函数名及参数
函数名很简单,导出表里写的明明白白,随便一个dll查看工具都可以读出,比如CFF explorer。但是对于参数,就像楼上说的那样,不能看出它真实的数据类型(即在高级语言中的抽象数据类型)。因为都编译成汇编了,没有抽象的概念了,此时只能知道数据大小。但是,不代表就没有办法了。有个一软件叫IDA,专门...
如何获得dll中的函数、接口和字符串?
使用VC6带的DEPENDS.EXE,打开你的DLL文件,就可以看见带的DLL导出的函数或变量,但你不能看见函数的参数,没有任何工具能看见DLL带的参数
如何查看DLL中的函数原型
主要工具有三个 1、VC自带的 dumpbin,用法如:dumpbin /exports mspft80.dll 2、可以depends来查看依赖项 3、可以用IDA反汇编工具来查看,加载你需要的dll,按F5就可以查看函数反汇编成C语言的代码了 注:以上方法也可以用来查看exe中的函数原型 ...
如何打开. dll文件
1. 使用文本编辑器:DLL文件是二进制文件,但你可以尝试使用文本编辑器(例如Notepad++)来打开,以查看其中的文本内容。然而,这通常只会显示一些乱码。2. 使用专门的DLL查看器:有一些专门的工具可以帮助你查看和分析DLL文件,例如Dependency Walker或PE Explorer。这些工具能够显示DLL文件的导出函数、依赖...
怎么获取dll中的函数地址
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);void TestFunc(){ PGNSI pGNSI; SYSTEM_INFO si; ZeroMemory(&si, sizeof(SYSTEM_INFO)); hMoudle = LoadLibrary("ntdll.dll"); //pGNSI的值就是函数的地址 pGNSI = (PGNSI)GetProcAddress(hModule,"ZwQueryInformation...
什么工具能够监视dll文件中的函数调用及传递参数
在IDA里,还可以使用F5快捷键将反汇编代码转换为C代码,能稍稍方便一点。最后一个问题,至于思路的话,你可以查看DLL的导出函数,然后使用Detours类库将原来的函数HOOK一下,做个旁路,在HOOK函数中打印调用内容,这样你在日志文件或调试输出中就能看见调用规律了。纯属个人建议。对了,还有一个工具叫做API ...
怎么看到一个用Delphi写的.dll文件的接口函数和参数
查看 dll 动态库中的接口函数,可以用 Depend 工具软件,功能如下图如示: