depends.dll的作用到底是什么呢?

clever101
博客专家认证
2018-11-23 03:32:28
depends22中有一个depends.dll,开始我以为是depends.exe运行依赖于depends.dll,后来发现不是。depends.dll的作用到底是什么呢?
...全文
307 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2018-11-27
  • 打赏
  • 举报
回复
引用 8 楼 天天学习_好好向上 的回复:
大侠,dll以匿名方式导出,那你是怎么找到导出函数名的呢? 如何做到dll以匿名方式导出函数呢?
def文件了解一下。 微软有个叫符号表的东西了解一下
clever101 2018-11-27
  • 打赏
  • 举报
回复
引用 6 楼 jha334201553 的回复:
五个导出函数,从上到下依次五个函数名(PS:dll以匿名方式导出):
HMODULE WINAPI WSInjectLoadLibraryA(LPCSTR lpLibFileName);   // 加载指定的DLL,相当于 LoadLibraryA(W)
HMODULE WINAPI WSInjectLoadLibraryW(LPCWSTR lpLibFileName);
HMODULE WINAPI WSInjectLoadLibraryExA(LPCSTR lpFileName, HANDLE hFile, DWORD dwFlags);  // 相当于  LoadLibraryExA(W) 
HMODULE WINAPI WSInjectLoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
FARPROC WINAPI WSInjectGetProcAddress(HMODULE hModule, LPCSTR lpProcName);  // 相当于 GetProcAddress 
大侠,dll以匿名方式导出,那你是怎么找到导出函数名的呢? 如何做到dll以匿名方式导出函数呢?
「已注销」 2018-11-27
  • 打赏
  • 举报
回复
测试代码:
#include <Windows.h>
#include <tchar.h>

int _tmain(int argc, _TCHAR* argv[])
{
    typedef HMODULE (WINAPI* pLoad)(const char*);
    typedef void* (WINAPI* pGetAddr)(HMODULE, const char*);
    typedef int (WINAPI* pMsgbox)(int,const char*, const char*,int);

    HMODULE hModule = LoadLibrary(TEXT("Depends.dll"));
    pLoad Load = (pLoad)GetProcAddress(hModule, (LPCSTR)1);
    pGetAddr GetAddr = (pGetAddr)GetProcAddress(hModule, (LPSTR)5);
    if (Load != NULL && GetAddr != NULL)
    {
        HMODULE hUser32 = Load("user32.dll");
        pMsgbox Msgbox = (pMsgbox)GetAddr(hUser32, "MessageBoxA");
        if (Msgbox != NULL)
        {
            Msgbox(NULL, "消息", "提示", MB_OK);
        }
    }
	return 0;
}
「已注销」 2018-11-27
  • 打赏
  • 举报
回复
五个导出函数,从上到下依次五个函数名(PS:dll以匿名方式导出):
HMODULE WINAPI WSInjectLoadLibraryA(LPCSTR lpLibFileName);   // 加载指定的DLL,相当于 LoadLibraryA(W)
HMODULE WINAPI WSInjectLoadLibraryW(LPCWSTR lpLibFileName);
HMODULE WINAPI WSInjectLoadLibraryExA(LPCSTR lpFileName, HANDLE hFile, DWORD dwFlags);  // 相当于  LoadLibraryExA(W) 
HMODULE WINAPI WSInjectLoadLibraryExW(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
FARPROC WINAPI WSInjectGetProcAddress(HMODULE hModule, LPCSTR lpProcName);  // 相当于 GetProcAddress 
Greless 2018-11-27
  • 打赏
  • 举报
回复
查看执行文件用了哪些dll
赵4老师 2018-11-23
  • 打赏
  • 举报
回复
引用 3 楼 天天学习_好好向上 的回复:
[quote=引用 2 楼 oyljerry 的回复:]
先看看depends.dll有什么导出函数,就大概了解它提供了什么功能


我用depends.exe打开它看了一下,发现并没有导出函数。[/quote]
谁说的?
C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin>dumpbin /exports depends.dll
Microsoft (R) COFF/PE Dumper Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file depends.dll

File Type: DLL

Section contains the following exports for DEPENDS.dll

00000000 characteristics
3E7FF2AE time date stamp Tue Mar 25 14:09:50 2003
0.00 version
1 ordinal base
5 number of functions
0 number of names

ordinal hint RVA name

1 00001585 [NONAME]
2 000016E9 [NONAME]
3 0000184D [NONAME]
4 00001A52 [NONAME]
5 00001CB9 [NONAME]

Summary

1000 .data
1000 .reloc
2000 .text

C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin>
明明有5个导出函数。
clever101 2018-11-23
  • 打赏
  • 举报
回复
引用 1 楼 赵4老师 的回复:
Detect Dynamic Dependencies 我猜。
具体是怎么检测呢?
clever101 2018-11-23
  • 打赏
  • 举报
回复
引用 2 楼 oyljerry 的回复:
先看看depends.dll有什么导出函数,就大概了解它提供了什么功能
我用depends.exe打开它看了一下,发现并没有导出函数。
oyljerry 2018-11-23
  • 打赏
  • 举报
回复
先看看depends.dll有什么导出函数,就大概了解它提供了什么功能
赵4老师 2018-11-23
  • 打赏
  • 举报
回复
Detect Dynamic Dependencies
我猜。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧