2008年3月2日星期日

[Tips]Comraider扫描指定目录获取COM组件bug修正

By: Void (void@ph4nt0m.org)

Date: 2008-03-02

Team: http://www.ph4nt0m.org


存在问题版本: COMRaider <= v0.0.141

Comraider的"Scan a directory for registered COM servers"功能有一个bug,会漏扫选定目录下的COM组件.
Comradier扫描的原理是遍历注册表HKEY_CLASSES_ROOT\CLSID\下的classid,如果某classid键下有 InprocServer32键,则读取其默认值(即COM组件的文件路径)与选定目录路径(是长路径名)进行比较,如果选定路径在其中,就认为是该目录 下的一个COM组件.
bug出在comraider没有处理注册表里InprocServer32键的8.3格式的短路径和带环境变量名的路径就与选定目录进行比较,如"C: \PROGRA~1\COMMON~1\MICROS~1\WEBCOM~1\11\OWC11.DLL", "%CommonProgramFiles%\Microsoft Shared\VGX\vgx.dll"等.

这里提供修改好的frmScanDir.frm,将其加入comraider工程的vb源码重新编译即可.