是否可以检查未安装在注册表中的dll,看它是否为ActiveX,公共方法,是否支持COM等。是否有其他工具可用于分析dll?
答案 0 :(得分:1)
这是一个非常通用的问题,但你可以使用像OllyDbg这样的反编译器/调试器来分析dll的导出方法和ASM代码。当然,您需要对ASM和Windows内部工作有一个很好的理解。
http://www.ollydbg.de/version2.html
如果您有Visual Studio并且只想知道dll是否包含COM组件,则可以打开visual studio命令提示符,并使用:
dumpbin /exports filename.dll
显示dll的导出函数。如果dll导出DllGetClassObject,DllRegisterServer和DllUnregisterServer,它包含一个COM组件。
示例:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>dumpbin /exports c:\windows\system32\quartz.dll
Microsoft (R) COFF/PE Dumper Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file c:\windows\system32\quartz.dll
File Type: DLL
Section contains the following exports for QUARTZ.dll
00000000 characteristics
5215E909 time date stamp Thu Aug 22 12:33:45 2013
0.00 version
1 ordinal base
8 number of functions
8 number of names
ordinal hint RVA name
1 0 0003B34C AMGetErrorTextA
2 1 0003B41C AMGetErrorTextW
3 2 0003B2C8 AmpFactorToDB
4 3 0003B314 DBToAmpFactor
5 4 00002848 DllCanUnloadNow
6 5 000032E0 DllGetClassObject
7 6 0003AFA0 DllRegisterServer
8 7 0003B2A0 DllUnregisterServer
Summary
36000 .data
4000 .idata
F000 .pdata
4000 .reloc
B000 .rsrc
157000 .text
1000 RT_CODE