为什么很多破解工具,例如叫cracker, Generator,activation或很多注册机之类的软件都会有很奇怪的背景音乐,那些音乐听起来很像以前小霸王游戏的音乐或一些古老的16位机,8位机游戏的音乐,听起来很诡异的那种,是有某种“黑客文化”在里面吗?
漂亮的UI+xm背景音乐+greets+AsciiArt是crackers的文化!
这是一种黑客文化。
因为早期的电子设备一般都是8位的,一般也就几十K的内存,所以很多程序编写起来都非常困难。在当时,编写一个破解工具绝对是智慧的象征。同样的,在当时,别说是视频,就是一段音乐也很难加载到内存当中,因为内存实在是太小了,甚至是存储器也太小了,所以当时的Geek们就想方设法通过很简短的算法语句临时生成一些波形来播放音乐,这种算法要求很高,既不能超内存,又要考虑当时慢的可怜的运算器,所以虽然这样的音乐听上去一般般,但是制作这样的音乐是一种很酷炫的秀技术手段。
后来这两种装逼技巧不知怎么的就结合在了一起,很多破解工具或是keygen当中都会加入一段占用运算资源极少,而且占用内存绝不超过32kb的波形生成程序,成了圈子里的一种传统习俗。
这些音乐通常只有十几KB。文件格式应该都属于很古董的了。
用千千静听或AIMP可以播放或转换格式。
用XM支持库还可以把这些音乐插入到自己写的程序里面去。
因为当年,他们在做注册机的时候,是一个蛮荒时代。那个时候,互联网也很不发达,很多人还依赖于bbs。对文件的尺寸更是敏感,因此如何在最小的size下,还能做出特殊效果,成为他们的挑战,也是他们展示技术的舞台。时至今日,我们在用新的注册机时,cracker们也遵循了这段历史,向前辈们致敬。
怎么提取这些音乐?
那些小小的keygen,只有几十k大小,在帮你算注册码时还会播放动听的音乐,呵呵~难么小,应该是内嵌的MIDI吧,我非常喜欢听,可是怎么提取呢?好像在临时文件夹里也找不到,不知道它们播放的时候释放到哪了~~谁做过注册机啊,麻烦告诉我,谢谢!
取出注册机中的音乐
有的时候觉得国外一些注册机配的BGM还挺好听的,遂想要取出他们。记得高一的时候的注册机还是将Midi保存到temp目录中实现的,今天早就不是这样了。下面以IsoBuster 2.1的注册机为例,说明取出音乐的过程。
[取出音乐]
首先用eXeScope看看资源,发现被加密了。用OllyICE打开patch.exe,发现ESP=0012FFA0。[tc]倒栽!话说0012FFA0这个数字今生也看过不下百次了,为什么就不能换一换呢?
在此处硬件断点WORD,F9运行。取消断点,发现JMP大跳。进入到00401770,嗯?没有代码?原来是OllyICE自作主张分析成了数据段(这个[tc]头一次见到,费了点时间)。右键/分析/从模块中删除分析,即可。
右键/Dump,保存为1.exe。运行之,居然没报错!PEiD检查之,MASM32 / TASM32 / 未加壳。eXeScope检查资源,报错。所以用FixRES修一下资源(后来发现不用这一步),用PEiD的插件XN Resource Editor看资源。居然没有音乐。
无奈,UltraEditor打开1.exe,很快在604A发现好东西:Extended Module: A piece for freedom FastTracker v2.00。Dump之,保存为1.xm。任务结束。
[播放音乐]
.xm文件用WinAMP、KMP都可以播放。只是扩展名没有注册罢了。
[在程序中使用]
如果想在自己的程序中用.xm文件的话,有2个项目值得推荐。
1个是minifmod,http://www.fmod.org,提供了lib,C++下这个用起来挺简单。
2是ufmod,http://sourceforge.net/projects/ufmod/,刚刚才发现的,这个就比较恐怖了。什么BCB、BlitzMax、C、Delphi、Masm、VB……等都支持。例子和附送工具也比较恐怖。
[意外的发现]
看到ufmod的包包就觉得不平常,果然如此!他实现了VB联.lib文件。[tc]曾写过VB VC联编的小文章,跟这个相比又小巫见大巫了。