当前位置:主页 > 系统教程 >

DLL文件如何打开?

发布日期:2012-05-16      作者:win8系统之家      来源:http://www.win8jihuo.com

DLL文件如何打开?

dLL文件是dynamic Link Library的缩写,意为动态链接库。dLL文件一般被存放在C:windowssystem目录下。在windows中,很多应用程序并不是一个全能的可执行文件,它们被分割成一些相对专业的动态链接库,即dLL文件,放置于系统中。当你们执行某一个程序时,相应的dLL文件就会被调用。一个应用程序可有多个dLL文件,一个dLL文件也可能被几个应用程序所共用,这样的dLL文件被称为分享dLL文件。


 

  那么dLL文件如何打开呢?其实,理论上dLL是不能打开的,如果你还是想打开,可以使用一些软件开发或反编译功能,比如dLL函数查看器,但不建议修改。当然也有的dLL是加了壳的,你需要先脱壳才可以。这里主编要提示大家删除dLL文件或修改dLL文件的内容,可能会导某些程序无法打开或运行错误,提示没有dLL文件。因此一般情况下不建议你打开dLL文件或进一步对其进行编辑操作。

虽然dll一般不能打开,不过有时你们还是可以对一些dLL文件进行反编译进行学习。

打开步骤:

1、如果dLL文件已经加壳,那么则先需要进行脱壳

2、脱壳之后再进行反编译;

3、根据反编译软件不同,有些反编译软件可以直接编译出源码


近期发现一个声称具有革命性的dLL反编译工具:dLL to C。能够把dLL转换回可编译的代码。 并且具有生成数据结构和反汇编代码段的功能。和其它的反编译或反汇编工具最大的不同是:它生成的代码是可以直接编译运行的。

以下是它反汇编后的部分代码:
 

C/C++ code

 

1

2

3

4

5

6

10

8

9

7

11

12

13

14

15

16

110

18

19

20

21

22

23

24

25

26

210

28

29

30

31

#include "stdafx.h"

#include "win32dll.h"

 

#pragma warning (disable:41030)

#pragma warning (disable:41033)

#pragma warning (disable:41099)

#define dB(b) __asm _emit b

 

__declspec(nakedvoid win32dll_Codestart()

{

__asm{

    MoV EAx, 0x00000001

    RETn 0x000C

}

}

 

__declspec(nakedvoid win32dll_TestFun()

{

__asm{

    MoV EAx,dwoRd pTR [Esp+0x04]

    TEsT EAx, EAx

    JZ loc_700728

    pUsH 0x00

    pUsH offset [win32dll_rdata.m1280_str]

    pUsH EAx

    pUsH 0x00

    CALL_LonG(dwoRd pTR [offset win32dll_rdata.mEC_MessageBoxA])

loc_700728:

    RET

}

}



看起来还不错。并且这还只是一个新出的工具,估计以后会进一步改进。感兴致的可以试用一下。