
DLL
文章平均质量分 80
benny5609
普通得不能再普通的80年代后
展开
-
WINDOWS钩子函数
本课中我们将要学习WINDOWS钩子函数的使用方法。WINDOWS钩子函数的功能非常强大,有了它您可以探测其它进程并且改变其它进程的行为。 理论:WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时,WINDO原创 2008-06-18 15:10:00 · 916 阅读 · 0 评论 -
Dll(动态链接库)学习笔记
DLL(Dynamic Link Libraries)专题: 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时原创 2007-09-17 13:00:00 · 1026 阅读 · 0 评论 -
在DLL中使用资源(二)
2、动态链接到MFC的DLL 在讨论关于动态链接到MFC的DLL的模块状态问题之前,先来看一个例子。本例可以通过如下步骤来完成: 1)在VC菜单中File->New新建一个命名为DLLShared的MFC AppWizard的工程,下一步选择Regular DLL using shared MFC DLL。 2)在工程中添加一个对话框资源,其ID为:IDD_ABOU原创 2007-09-17 12:57:00 · 815 阅读 · 0 评论 -
基于HOOK和MMF的Windows密码渗透技术
摘 要 随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事。密码的渗透与反渗透在此领域表现的愈演愈烈。本文深入分析了各个版本Windows密码的特点,尤其是针对windws2K/XP安全性提高的情况下,提出了获取windows密码的关键技术及方法。并进一步分析了windows钩子(Hook)和内存映像文件(MMF)的技术细节。在基于MMF的核心类CIPC中为钩子句柄在内存中的共享提供了原创 2007-09-14 00:21:00 · 804 阅读 · 0 评论 -
向其他进程注入代码的三种方法
作者:Robert Kuster翻译:袁晓辉 (www.farproc.com hyzs@sina.com)摘要:如何向其他线程的地址空间中注入代码并在这个线程的上下文中执行之。目录:●导言●Windows 钩子(Hooks)●CreateRemoteThread 和LoadLibrary 技术○进程间通讯●CreateRemoteThread 和 WriteProcessmemory 技术○如何原创 2007-09-14 00:12:00 · 910 阅读 · 0 评论 -
监视键盘来获得密码
一般的盗密码的软件的软件都是通过监视键盘来获得密码,这样操作比较方便,但是这样也存在一定问题,密码有的时候不是很准确,因为有的人输入密码并不是从前到后输入,当然这样的人也是少数,盗密码嘛,当然去得到那些比较粗心的人的密码! 通过安装钩子来监视QQ登陆界面就是获得密码的方法,在安装前得先找到登陆窗口的句柄,当钩子安装后,记录键盘,当用户“回车”或是点了“登陆”就可以开始处理密码了! 我准备分为四部分转载 2007-09-14 00:09:00 · 2247 阅读 · 1 评论 -
VC动态链接库DLL
动态链接库(DLL,即 Dynamic-Link Library)是可执行的模块,但它没有自己的堆栈,必须在调用动态链接库函数的程序环境下运行。动态链接库不仅可以作为一个运行模块,包括函数代码,而且可以包含程序以外的任何数据或资源(位图、图标等等)。动态链接库就是给应用程序提供函数或者资源。 动态链接与静态链接是相对立的。静态链接的时候,可执行程序内包含了所访问的函数的代码,可执行程序占用的原创 2007-09-13 17:57:00 · 852 阅读 · 1 评论 -
DLL(动态链接库)编程
dll是现在常见的文件,它集成了程序的很多功能在里面。一般情况下,它不能直接被执行,常见的使用方法是用其他的*.exe调用其执行,以使其内部功能表现出来。还有*.ocx文件也与之类似,也就是人们常说的com1.简要 Windows API中所有的函数都包含在dll中,其中有3个最重要的DLL。 (1) Kernel32.dll 它包含那些用于管理内存原创 2007-09-13 13:25:00 · 827 阅读 · 0 评论 -
如何获知DLL中函数的参数
可以通过反汇编来知道接口函数的参数,建议使用W32DSM来分析,也可以直接使用VC来分析,就是麻烦一点。现在使用W32DSM来具体说明:1。先打开需要分析的DLL,然后通过菜单功能-》出口来找到需要分析的函数,双击就可以了。它可以直接定位到该函数。2。看准该函数的入口,一般函数是以以下代码作为入口点的。push ebpmov ebp, esp...3。然后往下找到该函数的出口,一般函数出口有以下语原创 2007-09-13 10:13:00 · 3975 阅读 · 0 评论 -
多个DLL(exe)之间通过指针或者引用传递STL对象
在多个DLL(exe)之间通过指针或者引用传递STL对象时会发现操作失败现象。MSDN上给出了完整的解决方法。在开发应用程序的过程中需要认真对待。 现象: 在不同的DLL或EXE中通过指针或引用操作另一个DLL或EXE中的STL对象时,会遇到严重的程序错误,包括数据错乱或丢失。 原因: 标准C++库的多数类直接或间接的使用了静态数据成原创 2007-09-13 10:05:00 · 2297 阅读 · 0 评论 -
DLL中调用约定和名称修饰(一)
调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规定了该语言的函数中的参数传送方式、参数是否可变和由谁来处理堆栈等问题。不同的语言定义了不同的调用约定。 在C++中,为了允许操作符重载和函数重载,C++编译器往往按照某种规则改写每一个入口点的符号名,以便允许同一个名字(具有不同的参数类型或者是不同的作用域)有多个用法,而不会打破原创 2007-09-17 13:05:00 · 822 阅读 · 0 评论 -
Windows下Hook API技术小结
1、基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消原创 2007-10-03 02:17:00 · 3129 阅读 · 0 评论 -
lib文件格式分析,以及从lib文件提取obj的思路和源码
最近在学习ida,有时候需要从lib文件里面提取sig,方便我们查看函数的名称。但是手工的办法只能一个个obj提取,虽然可以使用批处理,但是偶尔碰到错误的coff文件,还是需要人手工干预,所以写了这么一个小工具,顺带学习了一下lib文件的结构。lib文件最开头,由8个字符串开始,值为“!/n”。接下来由4个不同类型的区段组成(不是四个区段),依次排列下来是First Section(一个), Se原创 2008-05-27 10:33:00 · 4876 阅读 · 2 评论 -
put class into dll by using vc6.0
put class into dll is one of the questions that make me trouble utill one daywhen I see s first chapter, I get the result.and tried in dos cmd and also VC6.A:VC61:add a class likestudent.hclass _dec原创 2008-05-27 10:20:00 · 989 阅读 · 0 评论 -
put class into dll in dos by hand step by step
put class into dll is one of the questions that make me trouble utill one daywhen I see s first chapter, I get the result.and tried in dos cmd and also VC6.B:by hand in dos.1:write TestCC.h#ifdef IM原创 2008-05-27 10:18:00 · 892 阅读 · 0 评论 -
Create a dll by hand
i have search for many time about this aspect,but there is little about it,not let us share my work about do it.the theory about dll is simple ,but to do it by hand it s not so easy.1 first,the file:原创 2008-05-27 10:10:00 · 1062 阅读 · 0 评论 -
MFC .DLL指南(二)-
我们上节讨论的结果是.DLLs对于任何的程序员都是非常实用的工具.然而,使用他们却有很多限制,任何人在作的时候都要意识到这点. MFC Issues 在上一节已经提到了这个,但是很有再一次提的价值.MFC扩展的.DLL只能在和客户端的程序用相同的MFC和正确的MFC的代码库的情况下才好使.正规的.DLL也是如此. Compiler Incompatibility Issues 一个原创 2008-04-24 11:01:00 · 767 阅读 · 0 评论 -
MFC的DLL 概述
DLL的背景知识 静态链接和动态链接 当前链接的目标代码(.obj)如果引用了一个函数却没有定义它,链接程序可能通过两种途径来解决这种从外部对该函数的引用: 静态链接 链接程序搜索一个或者多个库文件(标准库.lib),直到在原创 2008-04-24 11:00:00 · 908 阅读 · 0 评论 -
动态链接库大总结
一、动态链接库的概念 动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Win原创 2008-04-17 00:22:00 · 3016 阅读 · 4 评论 -
无dll无进程木马源代码
#include//#include#include#include#pragma comment(lib,"Shlwapi.lib")//参数结构 ;typedef struct _RemotePara{DWORD dwLoadLibrary;DWORD dwFreeLibrary;DWORD dwGetProcAddress;DWORD dwGetModuleHandle;DWORD dwWS原创 2008-02-27 20:34:00 · 1144 阅读 · 0 评论 -
游戏外挂制作技术探讨
一、 前言 所谓游戏外挂,其实是一种游戏外辅程序,它可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏内存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。虽然,现在对游戏外挂程序的“合法”身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。 不管游戏外挂程序是不是“合法”身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术原创 2007-10-03 02:40:00 · 2205 阅读 · 0 评论 -
DLL中调用约定和名称修饰(三)
2、C++编译时函数(非类成员函数)名称修饰当函数使用__cdecl调用约定时,编译器进行以下工作: 1.以?标识函数名的开始,后跟函数名;2.函数名后面以@@YA标识开始,后跟返回值和参数表;3.当函数的返回值或者参数与C++类无关的时候,返回值和参数表以下列代号表示: B:constD:charE:unsigned charF:shortG:原创 2007-09-17 13:11:00 · 807 阅读 · 0 评论 -
DLL中调用约定和名称修饰(二)
4、thiscallthiscall调用约定是C++中的非静态类成员函数的默认调用约定。thiscall只能被编译器使用,没有相应的关键字,因此不能被程序员指定。采用thiscall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,只是另外通过ECX寄存器传送一个额外的参数:this指针。 这次的例子中将定义一个类,并在类中定义一个成员函数,代码如下:原创 2007-09-17 13:10:00 · 732 阅读 · 0 评论 -
在DLL中使用资源(一)
在优快云论坛上最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者Create原创 2007-09-17 12:55:00 · 967 阅读 · 0 评论 -
DLL_基础2
什么是 DLL?动态链接库 (DLL) 是包含函数和数据的模块的集合。程序文件(如 .exe 文件或 .dll 文件)在运行时加载这些模块(亦即所需的模块映射到调用进程的地址空间)。下面两类函数定义了 DLL: • 导出函数:这些函数由其他模块调用。原创 2007-09-12 01:57:00 · 867 阅读 · 0 评论 -
DLL学习---转载
由于学习DLL时,没有例子的帮助是很难了解DLL的精髓,现在我想做一个例子来介绍:一、在DLL里面加一个函数:fun(double a,double b)//这里我懒得打字,就剽窃别人(很多人,在此谢谢了)的一部分过来://////////////////////////////////////////////////////////////////1、静态加载DLL方法: 函数的定义和使转载 2007-09-12 01:46:00 · 828 阅读 · 0 评论 -
DLL废话与基础
这篇文章是我在查资料的情况下写的,对自己在DLL方面有也有个很好的总结作用 写在前面的一些没用的废话自从微软推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是Windows操作系统的基础。动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其它DLL调用来完成某项工作的函数。只有在其它模块调用动态链接库中的函数时,它才发原创 2007-09-12 01:39:00 · 680 阅读 · 0 评论 -
APIHOOK实例剖析
关于APIHOOK的基础知识有很多,如dll的相关知识、Hook的相关知识、系统进程与线程之间的联系等。具体可以看我的另两篇文章:"我的Dll(动态链接库)学习笔记" 和 "我的Hook学习笔记"。:)下面进入这篇文章的重点,根据APIHook源码进行APIHook的剖析。 一、APIHOOK之dll部分 //////////////////////////////// APIHook_Dll.c转载 2007-09-17 12:48:00 · 1037 阅读 · 0 评论 -
分析Linux和windows动态库
摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统 中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理。但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植。本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验。推荐lin原创 2007-09-16 09:45:00 · 729 阅读 · 0 评论 -
什么是钩子函数
WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,当每次发生您感兴趣的事件时, WINDOWS都将调用该函数。一共有两种类型的钩子:局部的和远程的。 局部钩子仅钩挂您自己进程的事件。 远程的钩子还可以将钩挂其它进程发生的事件。远程的钩子又有两原创 2007-09-14 11:00:00 · 1310 阅读 · 0 评论 -
消息钩子函数入门篇
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,原创 2007-09-14 00:41:00 · 755 阅读 · 0 评论 -
VC++动态链接库编程之非MFC DLL
一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要讲述的MFC原创 2007-09-13 18:10:00 · 699 阅读 · 0 评论 -
MFC扩展DLL编程
本文将讨论如何利用MFC来创建不同类型的DLL,以及如何使用他们。一、DLL的不同类型 使用MFC可以生成两种类型的DLL: A.MFC扩展DLL B.常规DLL 常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL 每个DLL都有某种类型的接口:变量、指针、函数、客户原创 2007-09-13 17:53:00 · 1073 阅读 · 0 评论 -
如何将动态库(DLL)中的类导出(四)
方法3:(自己写的)我想法是先声明个抽象基类,DLL继承这个基类将类给实例化(代码化),并在DLL中导出这个类,EXE只要这个基类,去调用DLL的导出类函数! virtual void sum(int) = 0; 声明一个纯虚函数!这个方法只要一个动态库(DLL)和一个基类文件就可以了!!达到了我预期的要求! 基类文件:Test.h //基类//将这个文件提供给EXE调原创 2007-09-12 10:08:00 · 803 阅读 · 0 评论 -
vc下DLL/lib的调用
调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Windows提供了两种将DLL映像到进程地址空间的方法: 1、隐式的加载时链接 这种方法需要DLL工程经编译产生的LIB文件,此文件中包含了DLL允许应用程序调用的所有函数的列表,当链接器发现应用程序调用了LIB文件列出的某个函数,就会在应用程序的可执行文件的文原创 2007-09-13 13:10:00 · 825 阅读 · 0 评论 -
Hook学习笔记
关于Hook 一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗原创 2007-09-17 12:53:00 · 839 阅读 · 0 评论 -
Linux静态/动态链接库的创建和使用
和Windows系统一样Linux也有静态/动态链接库,下面介绍创建和使用方法: 假设有下面几个文件: 头文件String.h,声明相关函数原形,内容如下: Strlen.c:函数Strlen的实现,获取给定字符串的长度,内容如下: Strlnen.c:函数StrNlen的实现,获取给定字符串的长度,如果输入字符串的长度大于指定的最大长度,则返回最大长度,否者返回字符串的实际长度,内容如下: 生成原创 2007-09-16 09:47:00 · 826 阅读 · 0 评论 -
系统钩子入门
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,原创 2007-09-14 10:50:00 · 827 阅读 · 0 评论 -
进程注入的三种方法
一般来说,这个问题有三种可能的解决方案: 1. 把你的代码放到一个DLL中;然后用 windows 钩子把它映射到远程进程。 2. 把你的代码放到一个DLL中;然后用 CreateRemoteThread 和 LoadLibrary 把它映射到远程进程。 3. 不用DLL,直接复制你的代码到远程进程(使用WriteProcessMemory)并且用CreateRemoteThread执行之。原创 2007-09-13 21:31:00 · 3351 阅读 · 0 评论 -
用内嵌汇编来解决运行时参数不确定的函数的调用问题
问题的描述:1.有一个test.dll库,其中有一些函数,但是我们并不知道其中的函数名和参数表;2.当我们的程序在运行时会得到需要调用的函数名和其参数表,我们用这些信息来调用test.dll中相应的函数。比如在运行时获得了调用 int Add(int i,intj)函数的命令,我们需要首先装载dll文件,然后查找相应的函数是否存在,如果存在则获得函数的入口地址并希望通过函数指针调用该函数。问原创 2007-09-12 02:04:00 · 767 阅读 · 0 评论