揭穿MoleBox的谎言
作者:lisunlin0 [email protected] 日期:6,Junuary 2008
摘要:MoleBox号称可以将主程序所依赖的DLL等外部文件集成到一个EXE里面,在需要时直接从内存中释放出来而不使用临时磁盘文件,但事实上MoleBox并没有做到,欺骗了用户。
正文:
这一阵子在写直接从内存中加载Flash而不依赖客户端的flash控件,在搜集相关资料时发现MoleBox,看到它的说明时真叫人振奋,以下是主页上的广告:MoleBox is a runtime exe packer for Windows applications. It bundles the executable together with the DLL and data files into a single EXE file, without losing the ability to run the application.
MoleBox compresses and encrypts all the application files. With MoleBox you can protect your application's data and media files from viewing and modifications, and your DLLs and ActiveX components from usage by third party programs.
Moleboxing does not affect the original application's functionality in any way nor requires any additional coding. Unpacking and decryption (if required) are performed automatically and insensibly for application. Packed program runs without extracting files to the disk.
特别注意到其最后一句说不会释放到磁盘文件。然后到其下载页面上,看到如下介绍(节略):
Feature |
MoleBox |
MoleBox |
Pack application and data files into a single exe file |
|
|
Run packed application without external files |
|
|
Embed DLLs into EXE files |
|
|
|
|
|
Protect DLLs from unauthorized access and use |
|
|
Create multiple data packages |
|
|
Secure application integrity, add control sum check |
|
|
于是下载了MoleBoxPro trial版,测试了它的“Run packed application without external files”和“Integrate ActiveX components into EXE files and use them without registration”功能,使用如下文件:
图1:测试时的文件
其中usedll.exe通过导入表(即隐式)调用counter.dll,flashplayer.exe使用了flash.ocx控件。
现在用MoleBox将usedll.exe和counter.dll打包到一起,生成usedll.mbo.exe, 用peid的任务查看器看两个进程内部的模块信息,
图2:运行usedll.exe时的模块信息
图3:运行usedll.mbo.exe时的模块信息
对比可以看到由MoleBox打包后的程序确实没有调用counter.dll……但等等,在图3中用红框的c:/documents and settings…这个是什么文件?打开看看先,
用stud_pe查看了一下信息,居然是一个PE文件,而且与counter.dll有相同节信息。
图4:counter.dll的节表信息
图5:神秘文件的节表信息
看到了吗?MoleBox在counter.dll后面附加了一个_BOX_的节。
由上面可以得出结论MoleBox使用了磁盘文件。
下面再测试MoleBox能不能使用不注册的控件。
将FlashPlayer.exe和flash.ocx打包成FlashPlayer.mbo.exe(由于MoleBox没有相关的说明,暂且就这们打包吧),并将自己机器上的flash.ocx卸载并删除,然后运行FlashPlayer.mbo.exe, 发现不能正常运行…… 无语,看MoleBox还有何面目支收取用户的$。