LG ContentsBank软件的DIY
2024-06-09 17:59:49
供稿:网友
相信大家都和我一样,经常使用LGContentsBank(CB)或者CB2下载铃声和图片,真的很方便,但有一个问题始终困扰着我,就是CB软件有时候试听的效果和传到手机上的并不一样,乐器发生了变化.
前一阵看到网上在讨论YAMAHA的播放器MidRadio Player,说用它来听MMF,所听到的音质就是你最终刷到手机里的音质,昨天安装了一个,效果确实和传到手机上一样,那么,有没有办法也让CB软件达到同样的效果呢?到安装目录查看了一下文件,发现两个软件都是靠调用DLL来实现MMF播放的,它们之间会不会有共同点?说干就干,立即对两个软件的DLL文件进行对比:
MidRadio Player 调用mrma3emu.dll大小:676K 开发商:YAMAHA CORPORATION 版本:1, 0, 0, 2009
CB调用ma3smwemu.dll 大小:872K 开发商:YAMAHA CORPORATION 版本:1, 0, 0, 2002
通过反向工程查看,两个DLL都有下面的导出函数
0000000D10004EE0MaSound_Close
0000000610004D90MaSound_Control
0000000310004D00MaSound_Create
0000000F10004F40MaSound_Delete
0000000110015110MaSound_DeviceControl
0000001010005270MaSound_End
0000000210004CE0MaSound_Initialize
0000000410004D20MaSound_Load
0000000510004D60MaSound_Open
0000000A10004E50MaSound_Pause
0000000B10004E80MaSound_Restart
0000000810004DF0MaSound_Seek
0000000710004DC0MaSound_Standby
0000000910004E20MaSound_Start
0000000C10004EB0MaSound_Stop
0000000E10004F10MaSound_Unload
进一步确认,查看MaSound_Start调用部分代码(汇编)
Exported fn(): MaSound_Start - Ord:0009h
:10004DD0 8B0D58DE1310mov ecx, dWord ptr [1013DE58]
:10004DD6 83C8FFor eax, FFFFFFFF
:10004DD9 83F901cmp ecx, 00000001
:10004DDC 751Cjne 10004DFA
:10004DDE 8B442410mov eax, dword ptr [esp+10]
:10004DE2 8B4C240Cmov ecx, dword ptr [esp+0C]
:10004DE6 8B542408mov edx, dword ptr [esp+08]
:10004DEA 50push eax
:10004DEB 8B442408mov eax, dword ptr [esp+08]
:10004DEF 51push ecx
:10004DF0 52push edx
:10004DF1 50push eax
:10004DF2 E8C92F0100call 10017DC0
:10004DF7 83C410add esp, 00000010
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10004DDC(C)
|
:10004DFA C3ret
两个文件的代码如出一辙,这说明,两个软件的DLL是可以通用的。
试验:
进入CB安装目录,把原来的ma3smwemu.dll更名为ma3smwemu.dll.BAK,COPY MidRadio Player软件的mrma3emu.dll文件到CB安装目录,更名为ma3smwemu.dll。
启动CB软件,操作一下,一切功能正常,试听效果和传到手机上一样,成功了。
咳,早知道这么简单就直接COPY过来了 费了我一上午的时间才跟踪到代码 :-)
结论:
LG的CB软件是靠调用YAMAHA的DLL来实现铃声试听的,DLL和MidRadio Player的通用,直接COPY MidRadio Player软件的DLL过来替换就能达到一样的效果。
感兴趣的朋友可以到下面的地址下载下载:
http://www.473200.com/avenger/cb2_ch.rar
压缩包里有CB2.EXE和更新后的DLL,直接解压到安装目录覆盖原来的程序就可以了。CB2.EXE我进行了汉化,水平有限,难免会有错误,请各位见谅。
另外,现在CB2软件都存在一个问题,就是在图片模式下直接点选目录会出现非法操作,出错的原因我已经找到了,但找不到解决的办法,希望有能力的朋友和我联系,共同解决,让软件更完美。shuailutta@hotmail.com