為什么很多破解工具,例如叫cracker, Generator,activation或很多注冊(cè)機(jī)之類的軟件都會(huì)有很奇怪的背景音樂,那些音樂聽起來很像以前小霸王游戲的音樂或一些古老的16位機(jī),8位機(jī)游戲的音樂,聽起來很詭異的那種,是有某種“黑客文化”在里面嗎?
漂亮的UI+xm背景音樂+greets+AsciiArt是crackers的文化!
這是一種黑客文化。
因?yàn)樵缙诘碾娮釉O(shè)備一般都是8位的,一般也就幾十K的內(nèi)存,所以很多程序編寫起來都非常困難。在當(dāng)時(shí),編寫一個(gè)破解工具絕對(duì)是智慧的象征。同樣的,在當(dāng)時(shí),別說是視頻,就是一段音樂也很難加載到內(nèi)存當(dāng)中,因?yàn)閮?nèi)存實(shí)在是太小了,甚至是存儲(chǔ)器也太小了,所以當(dāng)時(shí)的Geek們就想方設(shè)法通過很簡(jiǎn)短的算法語句臨時(shí)生成一些波形來播放音樂,這種算法要求很高,既不能超內(nèi)存,又要考慮當(dāng)時(shí)慢的可憐的運(yùn)算器,所以雖然這樣的音樂聽上去一般般,但是制作這樣的音樂是一種很酷炫的秀技術(shù)手段。
后來這兩種裝逼技巧不知怎么的就結(jié)合在了一起,很多破解工具或是keygen當(dāng)中都會(huì)加入一段占用運(yùn)算資源極少,而且占用內(nèi)存絕不超過32kb的波形生成程序,成了圈子里的一種傳統(tǒng)習(xí)俗。
這些音樂通常只有十幾KB。文件格式應(yīng)該都屬于很古董的了。
用千千靜聽或AIMP可以播放或轉(zhuǎn)換格式。
用XM支持庫還可以把這些音樂插入到自己寫的程序里面去。
因?yàn)楫?dāng)年,他們?cè)谧鲎?cè)機(jī)的時(shí)候,是一個(gè)蠻荒時(shí)代。那個(gè)時(shí)候,互聯(lián)網(wǎng)也很不發(fā)達(dá),很多人還依賴于bbs。對(duì)文件的尺寸更是敏感,因此如何在最小的size下,還能做出特殊效果,成為他們的挑戰(zhàn),也是他們展示技術(shù)的舞臺(tái)。時(shí)至今日,我們?cè)谟眯碌淖?cè)機(jī)時(shí),cracker們也遵循了這段歷史,向前輩們致敬。
怎么提取這些音樂?
那些小小的keygen,只有幾十k大小,在幫你算注冊(cè)碼時(shí)還會(huì)播放動(dòng)聽的音樂,呵呵~難么小,應(yīng)該是內(nèi)嵌的MIDI吧,我非常喜歡聽,可是怎么提取呢?好像在臨時(shí)文件夾里也找不到,不知道它們播放的時(shí)候釋放到哪了~~誰做過注冊(cè)機(jī)啊,麻煩告訴我,謝謝!
取出注冊(cè)機(jī)中的音樂
有的時(shí)候覺得國外一些注冊(cè)機(jī)配的BGM還挺好聽的,遂想要取出他們。記得高一的時(shí)候的注冊(cè)機(jī)還是將Midi保存到temp目錄中實(shí)現(xiàn)的,今天早就不是這樣了。下面以IsoBuster 2.1的注冊(cè)機(jī)為例,說明取出音樂的過程。
[取出音樂]
首先用eXeScope看看資源,發(fā)現(xiàn)被加密了。用OllyICE打開patch.exe,發(fā)現(xiàn)ESP=0012FFA0。[tc]倒栽!話說0012FFA0這個(gè)數(shù)字今生也看過不下百次了,為什么就不能換一換呢?
在此處硬件斷點(diǎn)WORD,F(xiàn)9運(yùn)行。取消斷點(diǎn),發(fā)現(xiàn)JMP大跳。進(jìn)入到00401770,嗯?沒有代碼?原來是OllyICE自作主張分析成了數(shù)據(jù)段(這個(gè)[tc]頭一次見到,費(fèi)了點(diǎn)時(shí)間)。右鍵/分析/從模塊中刪除分析,即可。
右鍵/Dump,保存為1.exe。運(yùn)行之,居然沒報(bào)錯(cuò)!PEiD檢查之,MASM32 / TASM32 / 未加殼。eXeScope檢查資源,報(bào)錯(cuò)。所以用FixRES修一下資源(后來發(fā)現(xiàn)不用這一步),用PEiD的插件XN Resource Editor看資源。居然沒有音樂。
無奈,UltraEditor打開1.exe,很快在604A發(fā)現(xiàn)好東西:Extended Module: A piece for freedom FastTracker v2.00。Dump之,保存為1.xm。任務(wù)結(jié)束。
[播放音樂]
.xm文件用WinAMP、KMP都可以播放。只是擴(kuò)展名沒有注冊(cè)罷了。
[在程序中使用]
如果想在自己的程序中用.xm文件的話,有2個(gè)項(xiàng)目值得推薦。
1個(gè)是minifmod,http://www.fmod.org,提供了lib,C++下這個(gè)用起來挺簡(jiǎn)單。
2是ufmod,http://sourceforge.net/projects/ufmod/,剛剛才發(fā)現(xiàn)的,這個(gè)就比較恐怖了。什么BCB、BlitzMax、C、Delphi、Masm、VB……等都支持。例子和附送工具也比較恐怖。
[意外的發(fā)現(xiàn)]
看到ufmod的包包就覺得不平常,果然如此!他實(shí)現(xiàn)了VB聯(lián).lib文件。[tc]曾寫過VB VC聯(lián)編的小文章,跟這個(gè)相比又小巫見大巫了。