簡體版 繁體版 《瘋狂的程式設計師》39

《瘋狂的程式設計師》39


老子是癩蛤蟆 透視兵王 天才寶寶:這個爹地我不要 情到極致,染指心尖暖妻 紅樓如玉君子 地球最後一個修神者 帝王婿 妖路漫漫吾上下求索 你的ad有點菜電競 龍的力量—南海揚

《瘋狂的程式設計師》39

自己做的東西,就是怎麼看怎麼滿意,絕影和張廠長都覺得自己寫的程式好,周總肯定要用自己的。

周總還是決定用張廠長的程式。絕影用匯編做的,公司以前沒嘗試過,他還是不想冒這個險,畢竟C語言才是入門語言,大部分程式都懂,以後萬一出了什麼問題要臨時維護也不愁找不到人。

這個決定後來在很長一段時間裡讓絕影一直耿耿於懷。現在單位裡特別是國有單位,年輕人往往對年長的領導腹緋很多,而上了年紀的領導又對這些年輕人意見很大,歸根到底,人老了,不求有功,但求無過,凡事畏畏縮縮,又覺得年輕人辦事不牢靠,太激進太冒險。

絕影原以為周總從國外回來,靠技術起家大刀闊斧創辦這麼個公司應該是年輕有為敢想敢做的人,當然公司創業初期周總也確實是這樣,沒想到公司過了最艱難的時候稍微穩定下來,周總的思想也開始陳舊。一方面要他負責技術減輕他和陳董的壓力,一方面又不給他機會充分發揮他想法。

遙控器的CASE搞完了又要搞DAP,想起來絕影就頭痛,暑假的時候燕兒在公司還要好點,現在開學了,燕兒也走了,周總就知道佈置任務,驗收程式碼,張廠長就知道擺弄他那堆電子元件,現在整個公司連個跟自己談得攏的人都沒有,苦水都沒地方倒。

做這DAP就像打麻將,反正四川人愛打麻將是出了名的,說在飛機上聽到麻將的生音就知道成都到了。

說到打麻將,在每把開始之前人人都是躊躇滿志,想這把要和就和個大的,屁和?屁和根本就不和,至少也得和個大對子清一色的,還非得自摸,關三家,家家都關他個三翻五翻的。

這麼想,等牌上手了,才發現原來生活並不是想像中那麼美好。牌雖然是爛了點,好在自己技術還不錯,總還是有點希望,於是按部就班地打,誰知是打啥來啥,越打牌越爛,爛到最後,算了,破罐子破摔,本來都已經到了絕望的地步,忽然發現自己居然和了個十三爛。

原以為DAP嘛,不過簡單的C++封裝,當初想得熱血沸騰,真上手做了,才發現這樣問題那樣問題又冒了出來,既然問題都已經來了,沒辦法,想憑自己的技術儘量去解決吧,結果是修改一個BUG,又製造兩三個BUG,越解決問題越多,弄到最後,這CASE估計就死了,沒法做了。可是和打麻將又不同,打麻將打到最爛的時候還有個十三爛的和法,就比如日本流行的“敗者復活戰”,本來都敗了,居然又可以復活,等於是天上掉下的機會。可是程式寫爛了,又沒有“復活”這麼個機會。所以,寫程式,前期不搞好設計,不寫好文件真是害死人啊。

周總還是相當相信絕影,只說讓他自己控制一下進度便進辦公室去做他的事情,絕影自己在電腦面前倒是相當苦惱,這DAP確實是做不下去了,但是不做又不行,周總也沒讓他停下來的意思,而且他現在還肯定地認為:小絕啊,從來沒讓我們失望過。

於是絕影只好一邊賴在電腦面前打發時間一邊期待著周總又有新的任務交給他,沒想到到真有這麼一天,周總又對他說:“小絕啊,DAP是個長期專案,做到這裡我們先放一放吧。”

周總這樣說,他並不知道絕影心裡的小九九,絕影卻故意問:“怎麼了?有什麼問題嗎?”

周總向他揮揮手,示意他進自己的辦公室,在自己電腦上,他一面擺弄一個軟體一邊說:“也沒什麼。DAP這個平臺性的東西,對我們來說是非常重要的,但是我想我們對應用上的開發也不要放了,畢竟這是我們近期收入的來源。我又琢磨著再做一些應用上的開發,最近我正調研一個軟體??X-posure,用來計算骨密度的,這軟體做得相當不錯,可以外接掃描器,直接把X光膠片掃描或匯入進去就能將上面選定部分的骨密度計算出來。你看我給你示範一下。”

絕影對周總擺弄的東西並不感興趣,他琢磨著周總這次要讓自己做什麼呢?莫非要模仿這個X-posure做個計算骨密度的軟體出來?那難度也太大了。這也並非不可能,以前做KIPACS的時候周總就經常找些軟體讓他們模仿別人的介面。現在好多東西都有什麼包裝專利、外觀專利、防偽專利,你一專利了,別人就不能用,好在軟體還沒有這樣那樣的限制,所以周總就總找些現成的來讓他們參考,自己又不是使用者,又不是醫生,要是讓自己絞盡腦汁去想那介面該如何佈置,那還不想死人。不過好像正因為沒有這些約束,助長了不正之風,終於微軟忍不住指責金山抄襲Office介面,那只是“抄襲”,談不上什麼“侵權”,不知道這事後來對周總有沒有影響。

他點點頭對周總說:“嗯,是很不錯,那我們要做些什麼呢?”

“最近我正調研這軟體,舉一反三,看看我們有沒有什麼可挖掘的,可做的,但這軟體還是個共享版,老是要我輸入序列號,否則就不讓我接掃描器,還有很多限制,不好調研啊。你上次不是幫陳董破解了一個PVT麼?這次這個,你看能不能幫我破解了。”

絕影吃了一驚,嚴肅地說:“周總,這可是商業軟體啊!”

“彆著急彆著急,我們又不搞商業用途,就是自己研究研究,法律上應該說得通的。”

絕影考慮了一會說:“嗯,那好吧,不過破解這個東西,我上次也說了,沒有百分之百的把握,運氣還是佔了很大成分。”

“這個沒問題,你儘量去做,做不出來大不了就不調研了。”

絕影從周總辦公室出來,複製了一份X-posure,這才算個像模像樣的商業軟體,七七八八在安裝目錄中安裝了一大堆檔案。

上次那個PVT畢竟是絕影第一次做破解,雖然最後還是破了出來,但用的還是暴力破解,那是內行人所不齒的,弄得他自己都不好意思跟別人講,暴力破解也確實不過癮,找出一個位置把Jxx改成Jmp就行了。這次又來了破解的CASE,還是官方的CASE,當然要好好發揮一下。這麼想,他打定主意,要麼做不出來,要麼就把註冊機做出來,網上不是那麼多牛人麼?一會發布個XXX註冊機一會發表篇XXXX破解筆記,你說自己牛,有什麼證據?以前BOSS Liu在公司,天天跟自己明裡暗裡比技術,自己又確實比不過他啊,沒有事實說話。這次要是把註冊機做出來,也跑到看雪論壇去發一篇,東西放在那裡,看你BOSS Liu這次還有什麼話說。

這樣美好的想像著,絕影開始破解起X-posure。

上次破PVT絕影給機器上裝了SoftICE,結果弄得系統異常不穩定,新版本的DriverStudio在Windows2000下莫名其妙下不了斷點,老版本的4.05還算好,可系統老是莫名其妙的重啟,所以破完了就重灌系統。這次卻又得再安裝一次。

破解本身不需要對這軟體研究得有多透徹,只要知道他是哪個exe在負責輸入序列號就行了,還是從MessageBox下手,思路不難,麻煩的就是這SoftICE。現在隨便問一個搞破解的或者搞逆向工程的,誰不知道SoftICE?SoftICE牛不牛?當然牛。正因為太牛了,所以似乎專門給牛人用,或者只能給牛人用,因為操作實在太複雜了。IceDump這些外掛絕影沒裝,就算裝了他也不會用。你想從念大二第一次用SoftICE到現在,才學到勉強能用它除錯東西的程度,你說要是再加個IceDump那還不知道得學到哪年哪月。

既然IceDump不會用,就用笨一點的辦法,直接拿紙把前面的程式碼抄上,地址、機器碼、彙編程式碼註釋什麼的都一字不落地抄下來再慢慢分析。

第一天做了些準備工作,第二天絕影開始認真的破解,本來作為一個程式設計師,在他身上是很難找到紙筆的,甚至久而久之很多漢字都只會用電腦打不會用筆寫了。但是那一天,絕影卻整整寫了十六張A4列印紙的程式碼。張廠長在一旁有點不服氣,說:“上次我列印個資料,才用六張紙,都領了個周總的口頭警告,怎麼你一會去拿一會去拿他都不說你啊?”

“我這是工作嘛。你以為我要是有廢紙會去拿列印紙?廢紙早讓我做演算用完了。”

下班的時候張廠長叫絕影一起走,說是去瀘州麵館吃麵,絕影想了想說:“你自己去吃吧,現在正是關鍵位置,我要好好跟一下。”

“吃了飯拿回家再跟吧,現在肚子餓,一不小心就跟飛了,那損失就大了。”

“不行不行,家裡電腦還是不要裝SoftICE,不穩定。”

絕影說這些的時候頭也沒回,張廠長有點失望,不過想想也算了,他這種情況,多半是走火入魔了,現在不要說自己,就算燕兒肯定也喊不動他。

人都走完了,絕影乾脆關了公司的門,十幾張列印紙的程式碼鋪在面前,眉目也有了點,畢竟那幾年水平只有那樣,再加上又是國外的軟體,國外軟體特別是成熟的大型商業軟體在反逆向工程上一直都做得很菜這是公認了的。這跟國內形成了鮮明對比。在國內,隨便一個“無敵剪貼簿”之類的芝麻大點的軟體都殼加了一層又一層,加了殼又壓縮,壓縮了又加殼,什麼Anti-Debug,Anti-DAsm,虛擬機器,花指令,密碼學加密演算法凡是能沾邊的能用上的都用上,用不上的創造條件也要用上。比起他們,那X-posure的序列號演算法確實算得上有失水準,字元有效性的判斷都很簡單,要麼是0-9的數字,要麼是“-”,關鍵的演算法又全部寫在一個函式中,找到這個函式基本上等於大功告成。

說起來也容易,但真的找到還是費了他不少心血。SoftICE用起來實在太複雜,現在搞破解的前輩教育晚輩一般都說:“SoftICE用過嗎?我們那幾年,只有SoftICE用,你那OllyDBG又如何?畢竟是三環偵錯程式,你用著是方便,可是畢竟是三環啊,對付你的辦法多得很,什麼檢測除錯暫存器,什麼Hook除錯API,什麼浮點指令漏洞,哪像我們那時候SoftICE基本橫掃天下。所以啊,工具多了,人就懶了,要學真技術,還是要在Kernel上多下點工夫啊。”

所有位置找到,絕影開始琢磨這個註冊機,想明天到了公司,周總問:“小絕啊,工作進展如何啊?序列號找到了嗎?”他就大大咧咧拿出這個註冊機說:“還行吧,註冊機也寫出來了,你用用看行不行吧。”這樣,周總肯定又要對他刮目相看,肯定又要拍拍他的肩說:“小絕啊,從來沒讓我們失望過!”

其它什麼難的,就是那個關鍵函式,雖然彙編程式碼不是很複雜,但這明顯是高階語言寫的,那些資料的計算要還原成C語言程式碼還是麻煩,想起網上一篇文章,好像就是介紹直接用Windows最佳化大師的反彙編程式碼寫註冊機,給了點思路,不如就直接用匯編語言來寫註冊機得了。

這樣一直忙到晚上三點多,絕影用自己寫的註冊機生成了三個序列號,居然都能用。他才收拾好列印紙出了公司。

街上的店差不多都打烊了,只剩幾家燒烤店,絕影去了離自己住處最近的一家,喝了兩杯豆奶,吃了兩條烤魚,想起以前跟BOSS Liu在這裡喝酒吃燒烤,自己這個CASE算是做完了,幾百塊的獎金基本上算到手,不知道他在成都混得如何。

回到家,絕影還是沒有一點倦意,他也不想睡,現在睡了明天肯定又起不來,於是拿出寫滿程式碼的列印紙,整理好思路,開啟Word,題目寫上《X-posure序列號破解》,寫完這篇又花了兩個多小時,於是在看雪論壇上註冊一個ID發上去。

看雪論壇在搞破解的人當中那可是技術的聖殿啊,所以他還算比較人道,可以不註冊就去看帖子,絕影也一直沒有自己的ID,這次要發文章了,才去註冊一個。沒想到幾天以後,這篇帖子居然被看雪大大批准為精華貼,更沒想到,幾個月以後,這篇帖子竟然收入了《看雪論壇精華》。

絕影洋洋得意看著自己論壇上面帖子:1,精華:1,想以後要麼不發,要麼就有成果了再發,發就發精華貼,100%看雪論壇精華,還說我不牛麼?

這麼想了,所以從那以後,絕影在看雪論壇上始終只有一篇帖子。