dll-有关VC6DLL模块枚举问题

问题描述

有关VC6DLL模块枚举问题
我照着书上写了一串代码:但是DLL名称没有枚举出来,想问一下大家知道怎么回事吗?

#include ""iostream""
#include ""windows.h""
#include ""stdio.h""
using namespace std;

void main()
{
DWORD *PEB=NULL
*LDR=NULL
*Flink=NULL
*p=NULL
*BaseAddr=NULL
*DLLNameAddr=NULL;

__asm{    mov eaxfs:[0x30]    mov PEBeax}LDR=*((DWORD**)((unsigned char*)PEB+0xc));Flink=*((DWORD**)((unsigned char*)LDR+0x14));p=Flink;p=*((DWORD**)p);for(;p!=Flink;){    BaseAddr=*((DWORD**)((unsigned char*)p+0x10));    DLLNameAddr=*((DWORD**)((unsigned char*)p+0x20));    if(BaseAddr==NULL)    {        break;    }    printf(""地址 : %08x""BaseAddr);    cout<<endl;    printf(""名称 : %s""DLLNameAddr);    putchar(10);    p=*((DWORD**)p);}for(;;);

}

解决方案

那有可能汇编偏移量,地址等需要你对应平台调整。正如我前面说的。不通用。

解决方案二:
这种汇编代码,跟OS平台,编译器等有很大关系。并不一定能工作

解决方案三:
代码能输出但是输出的DLL名称有问题

解决方案四:
直接用EnumProcessModules
http://blog.sina.com.cn/s/blog_906bb6a90101bkcv.html

时间: 2025-01-01 11:03:01

dll-有关VC6DLL模块枚举问题的相关文章

Windows2003中让php加载curl.dll和mcrypt 模块

1.打开php.ini文件,找到";extension=php_curl.dll"这一行,把前面的分号去掉,拷贝libeay32.dll 和 ssleay32.dll这两个文件到C:Windows目录: 2.php.ini中打开extension=php_mcrypt.dll,拷贝 libmcrypt.dll 到 c:windowssystem32目录: 3.重启Apache即可!

什么是动态链接库(DLL)以及常见问题

动态|链接|问题 概要 本文说明什么是动态链接库 (DLL) 以及在使用 DLL 时可能发生的各种问题. 然后,本文说明在开发您自己的 DLL 时应该考虑的一些高级问题.在说明什么是 DLL 的过程中,本文将说明动态链接方法.DLL 依赖性.DLL 入口点.导出 DLL 函数以及 DLL 故障排除工具. 本文最后将从较高的层次对 DLL 与 Microsoft .NET Framework 程序集作一比较. 简介 对于"适用于"一节中列出的 Microsoft Windows 操作系统

C#程序实现动态调用DLL的研究

原文:C#程序实现动态调用DLL的研究 C#程序实现动态调用DLL的研究 摘  要:在<csdn开发高手>2004年第03期中的<化功大法--将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决"DLL Hell"提供了一种解决方案.这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也

深入浅出Visual C++动态链接库(Dll)编程

文章作者:宋宝华信息来源:天极网 原始连接: http://soft.yesky.com/lesson/318/2166818.shtml?412 动态链接库(DLL)是Windows系统的核心,也是COM技术的基础,因此突破动态链接库一直是技术人员的攻坚目标,本期专题将由浅入深的介绍动态链接库的基础慨念.分类.实现和应用. 基础慨念 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量.函数

DLL的概念、dll导出类

1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别: (1)静态链接库与动态链接库都是共享代码的方式.静态链接库把最后的指令都包含在最终生成的EXE文件中了:动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件. (2) 静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的

dll的概念 dll导出变量 函数 类

1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别:   (1)静态链接库与动态链接库都是共享代码的方式.静态链接库把最后的指令都包含在最终生成的EXE文件中了:动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件.   (2)静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含

VC中不同类型DLL及区别

1. DLL的概念可以向程序提供一些函数.变量或类. 静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式.静态链接库把最后的指令都包含在最终生成的EXE文件中了:动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件.(2) 静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库. DLL分类:1.Non-MFC DLL(非MFC动态库):不采用MFC类库结构,

怎样从一个DLL中导出一个C++类

原文作者:Alex Blekhman    翻译:朱金灿   原文来源: http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx 译文来源:http://blog.csdn.net/clever101     C++语言毕竟能和Windows DLLs能够和平共处.     介绍          自从Windows的开始阶段动态链接库(DLL)就是Windows平台的一个组成部分.动态链接库允许在一个独立的模块中封装一系列

Win32 DLL和MFC DLL 中封装对话框

现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.           1.Win32   DLL               在Win32   DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件.然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义