# 55 北京
七八月份,北京的天氣確實要比南方好得多。下了火車,絕影才覺得首都無非也就是這樣,想起小的時候別人問他長大了想去哪里,便興奮地答道:想去北京,想去長城,想去天安門看升國旗。――去天安門看升國旗,那可是一代人的夢想啊。
可是慢慢地時易事移,現在這一代,又根本不屑"去天安門看國旗",你問他們長大了想去哪里,便興奮地答道:想去香港澳門,想去美國加拿大。以至于"去天安門看國旗"都成了一塊笑料,那《瘋狂的石頭》里去北京領獎那個天安門前升國旗的鏡頭加上"我愛北京天安門"的背景音樂就是一個證明。
想起《瘋狂的石頭》,絕影馬上就想起BugYang,那小子自從看了《瘋狂的石頭》便在辦公室里時不時的哼兩句"我愛北京天安門……",或者一個問題思考半天還沒找到解決辦法,便拍著腦袋自言自語道:"石頭兒,我要的是石頭兒!"
那BugYang肯定是很想來北京的,一來到北京必定被委以重任,正是證明自己實力的大好時機,說實話在公司那DAP做著實在沒什么意思,據說絕影都已經把他做死了,現在讓卻讓自己來給他收拾殘局;二來還可以實現他看升國旗的理想,到現場去演繹一下"我愛北京天安門"。這個絕影心里很清楚,但絕影肯定不會讓BugYang跟他一起去北京,這點BugYang心里也很清楚,所以二人心照不宣,誰都不說破。
張廠長比絕影早一天到北京,跟陳董一起來街他,北京正是陳董的故鄉,走的時候周總就悄悄告訴他,說啥不好都行,千萬別在陳董面前說北京不好。北京什么都好,春天風沙沒有內蒙古大,夏天比四大火爐涼快,秋天有楓葉,冬天比吉林哈爾濱暖和。雖然絕影不太愛說客套話,但第一句還是學著美國人的腔調道:"哦,今天的天氣真好啊。"
陳董拍拍絕影的肩膀說:"小絕啊,你終于來了,這次CASE很緊迫啊,你從來沒讓我們失望過,所以這次非得你親自出馬,其它人都不行。走,咱們先吃飯,邊吃邊說。"
吃飯的地方是在火車站對面的永和大王,因為是早晨,只是一頓簡單的便飯,陳董一邊吃一邊說:"聽周總說EB那個項目死掉了,當然,這不怪你,商務上的事情還是該由我來負責,也正因為EB失敗了,所以這個CASE才尤為重要。EB上我們投入了那么多時間經歷資金,現在弄得我們很被動,所以我們急需用這個CASE來緩解一下被動局面,當然,如果這個CASE做得好,對我們來說,意義絕對不比EB小。"
陳董一邊說一便比劃,張廠長干脆放下碗筷全力以赴來傾聽。說實話一個軟件公司,居然專門把自己這種"入門級"菜鳥程序員調來搞這CASE,看來這CASE是大有貓膩。絕影剛下火車,肚子餓得不行,一邊大口大口吃包子,一邊時不時點頭嗯兩聲。
"咱們這次要做的,是對一個芯片進行逆向。北京這邊一家公司生產一種小型DR,這里面有塊重要的控制芯片,是Motorolar的,現在這種芯片停產了,他們根本買不到,又沒有源代碼,現在是急得團團轉,沒有芯片他們還搞個屁的DR啊?我想起小絕前幾次做了些逆向工程的工作,有點經驗,所以就把這CASE接下來,先試一試吧。要是我們成功了,我跟他們談的是他們所有DR上用我們的工作站,一年下來,也至少有五六十套訂單啊。"
聽到"逆向工程"這個詞,絕影突然又不覺得餓了,馬上來了精神,飯也不想吃了,連忙說:"芯片在哪里?看看先。"
"我這沒有芯片,不過有個48K的Bin文件,小絕你看看能不能把他逆向出來,最后逆向成C代碼,這樣我們就可以選擇任何一種芯片來重新開發了。"
陳董這句話是站著說話腰不疼,就憑一個Bin,要逆向一個芯片,還弄成C代碼,談何容易,絕影馬上說:"這基本不可能。完全反匯編還有點希望,要想逆向成C代碼,估計只能部分。"
"弄不出來也沒關系,盡量試試,總之,我們的目的是用另外一種芯片實現它的功能。我想,逆向是這里面是一項很重要的工作。"
兩人談到這里,一向不愛發言的張廠長這次卻插嘴道:"我想還有個辦法,絕影剛才說的是從邏輯上逆向,我想從功能上逆向,一快芯片,無非就是輸入和輸出,我想只要把所有輸入對應的輸出測出來,我們完全可以自己寫程序用另外的芯片實現同樣的功能。"
"這也不可能。"絕影馬上打斷他,"一快芯片有多少輸入引腳?就算十六個,那也是65536種輸入,以有限的精力,根本不可能全部測出的,而且輸入的數據都是經過一定的算法來處理,還沒見過誰笨到寫65536個case語句,再有,關鍵是時序,如果他的芯片里有延時怎么辦?怎么測,測得精確嗎?"
張廠長望望絕影,都不說話了,現在就他們三個,在他們中,絕影在技術上就是權威,而且他不假思索,一二三說都頭頭是道有理有據,他說了不可能,就不可能。
陳董卻說:"小絕啊,這你就太武斷了。坦率地說,硬件方面,你的確比不過小張,這也是為什么這次讓他來和你一起做這個CASE的原因,他的意見,還是很有參考價值的。"
絕影很不服氣,還想說什么,可是陳董并不給他機會,一錘定音道:"就這樣,你們倆各自都有自己的方案,就各自用各自的方案先去試試,先做一做再說。"
所以說匯編就是好。這么個Bin文件拿給BOSSLiu,就算他C++牛上天又如何?對他來說還不是就一堆二進制。但用匯編的人看法就不一樣,在學校里學微機原理時就學了,匯編分兩種,人工匯編和機器匯編,所謂人工匯編,顧名思義就是人工把匯編代碼翻譯成機器代碼。你現在什么宏匯編器C++優化編譯器都耍都有模有樣又怎么樣?要是沒有匯編器編譯器你還能有用武之地?
所以每當BOSSLiu吹噓他C++什么虛基類類模板這樣東西的時候,絕影都只說一句話:"《少林足球》看過么?'天下武功出少林沒聽過嗎你?'這是放之四海階準的道理啊:天下語言出匯編沒聽說過嗎你?"
然后陳董走過來,關節地問:"你們兩還需要什么嗎?盡管說。"
這時候張廠長滔滔不絕地說:"我需要電壓表電流表,示波器,電阻之類的一些基本電子元件和一塊PC板。"好像要東西越多越能體現出他的專業。
絕影卻平淡地說:"我只需要一本《DevelopmentGuides》,當然,這個我會自己從網上下載。"好像要的東西越少月能體現出他的效率。
在絕影心中,你拿一大堆先進裝備把人質救出來算個啥,不就是一個人質嗎?還搞得像老美一樣得飛機大炮坦克衛星加特種部隊,俺就是要發揚勤儉節約的精神,就一把AWP一槍把綁匪斃了完事。啥是效率,這就是效率啊,納稅人的錢不是拿來讓你拍電影的,公司的錢不是拿來讓你體驗新產品的。
下載到《DevelopmentGuides》,絕影一頭埋在對Bin的反匯編中,也許是軟件做得多了,他一直認為張廠長弄不出啥大成果出來,上次也就是弄了個遙控器出來,不過意義不大,除了他們本地那家醫院,公司連一套都沒賣出去過,到后來,周總把這事都忘了,有一次燕兒從工具箱深處挖出這么一個遙控器來,周總居然拿在手里翻來覆去得大量,還一邊說:"這是啥時候買的東西?"越是這樣,張廠長也越是想弄出大成果來證明他。
其實對照《DevelopmentGuides》上的指令集,完全可以把Bin反匯編出來,奈何這工作進展實在很緩慢,弄了一個上午,才翻譯出一百來行代碼,還不到二十分之一,而且還時時擔心那一點反匯編錯了,哪怕只錯一點點,影響到后面代碼的定位,后面所有的工作基本就白做了。照這個進度,要把這個CASE搞完,只怕只有在北京過年了。
雖然在很多時候懶人都被人鄙視,但不得不承認,懶人的確為我們的社會做了不少貢獻,沒有人懶得走路,就沒有人發明汽車,沒有人懶得爬樓梯,就沒有人發明電梯,沒有人懶得去做人工匯編,也就不會有人發明匯編器。
這一次,要不是絕影懶得去做人工反匯編,他也不會考慮做個反匯編器。不過他在決定做這個反匯編器的時候,心里還是很沒底,以前還是菜鳥的時候,就聽哪位牛人說:"如果你做出了反匯編器,就嘗試做個匯編器,如果你成果做出來匯編器,就可以嘗試做個編譯器。"說實話從學寫程序到現在,開發編譯器這東西,盡管絕影很感興趣,但從來都不敢碰,考軟件設計師那編譯原理都索性全部放棄,為什么?編譯器,那實在不是牛人就能做的東西,那是大牛才能做的!
沒底歸沒底,仔細想想,其實這反匯編器也不是那么困難,自己手工反匯編了半天,那反匯編的流程基本已經摸得清清楚楚,在加上這芯片也設計得簡單,還是定長指令集,這真是Motorola公司莫大的恩惠啊。用最笨的辦法把每條指令的機器碼、操作數類型、指令加數據的長度、助記符弄成個結構體,再建一個表,把所有指令都收進去,到時候查表不就行了。
花了一天時間,當這個反匯編器誕生的時候,絕影始終還是不相信自己:難道我離大牛的距離又進了一步了?
馬克思說得好,資本家總是不能滿足的,今天他賺了100%的利潤,不要以為他就知足了,他仍然會想:明天我怎么才能賺到200%的利潤呢?絕影滿以為這反匯編器一秒鐘之內便能完成手工三四天才能完成的工作,已經是整個CASE里巨大的里程碑,值得自己好好驕傲一陣子。陳董卻拍拍絕影的肩說:"小絕啊,真是從來沒讓我們失望過。現在任務還很緊啊,你看看,抓點緊,試試把那匯編代碼翻譯成C代碼吧。"
絕影聽了就想吐血,早知如此,還不如就人工翻譯,說不定花個三四天功夫,陳董還會讓他休息一兩天。
雖然明知自己中了資本家的計謀,但絕影還是不知悔改,也許程序員都是這樣。這不是因為這個CASE做好了,又能有多少多少獎金,或者一下從技術經理升職成總經理。正如做反匯編器一樣,反編譯對絕影來說一樣也是件很有意思的事情,因為他沒做過,什么事情沒有做,就不知道有多難,也不知道這里面會遇到什么樣的困難,更不知道如何才能解決這些困難。
所以現在的很多年輕人,總以為讀書破了萬卷,下筆寫起程序來就真的如有神助,于是參考書技術資料管他有用沒用能下載的掛上BT全天24小時下載,一次就下載個十幾G的,比MSDN還大,不能下的就書店圖書館網上書店全都搬回家,不管能不能看懂或者有沒有時間看,總之,哪怕放在那里看看封面,也覺得離牛人的距離又進了一步。
有的或者又像BugYang一樣認為有個牛人能帶帶自己,就如《鹿鼎記》中的韋小寶一樣:"你趕緊傳授我絕世武功吧,我好去臥底。"可是《鹿鼎記》中陳進南不是也說了么:"我看絕世武功的秘籍,用了三年,練功,用了三十年。"
反編譯的工作比想像中要困難許多,幾條匯編語言組織起來得翻譯成得體的C語言,能翻譯英文書的人英文都應該算了得了,但是翻譯起英文著作來都還是牛頭不對馬嘴,更別指望這個世界有自動英文翻譯器,有,那Google在線翻譯,效果實在不敢恭維,就如別人笑你英文菜,說道:"你那英語,簡直是Google在線翻譯。"
這些絕影自己都沒弄透徹,更別指望三五天時間里弄出個反編譯器出來。
就在他騎虎難下的時候,張廠長突然大聲宣布:"出成果了!"
絕影回頭一望,他的表情,和BugYang完成任務時一模一樣。
附記:
到今天,地震剛剛過去一周,但它帶來的影響遠遠超過了想像。逝者已經逝去,生者為他們默哀,但生者也還在受著折磨。
這一周來,最大的心愿就是能好好洗個澡,能在床上伸直了腳睡一覺,但偶爾冒死回去一下房子又時不時地搖一搖,嚇得人提心吊膽。本來下定決心,昨天就回家去住,但剛1點多,又來了次大的余震,房子轟轟地響。趕緊又躲進廁所,叫百萬進來,百萬還全然不知。今天就再也不敢回家了。
今天在報紙上知道,昨天的那場余震,讓江油又失去了13條生命。
一周過去了,露宿的人反而越來越多,明明有自己的房子,卻要露宿街頭,這里面有多少苦衷啊。
最近今天,朋友們聚在一起,都在講這次地震,講自己的親人朋友,講北川平武。很多人都說,以后在綿陽,恐怕不會有北川這個縣了。這次我沒有去北川,但據去過的朋友形容,相當慘烈,整個地直接沉下去,然后兩邊山倒下來把它蓋上,就像包餃子一樣。
女朋友作為支援者去了一次安縣,回來就一直哭,說那里好恐怖:房子都倒得差不多了,路上還時不時有人等待救助,也時不時地擺放著一具具尸體。
安置到綿陽的災民也越來越多,據說超過了50萬。這幾天很多人都是哭著去幾個安置點尋找自己的親戚朋友,又哭著從里面出來。
街上時常有警車和救護車經過,現在大部分救護車都是外地的,看了很感動。還有網上看到的捐款什么的,有些人在討論,誰捐得多誰捐得少。其實捐多少都不重要,因為很多損失,根本是沒法用錢來衡量的。所以力所能及,能捐多少就捐多少吧,重要的是,希望你能捐出一份心,這個才是災區人民最需要的。
說實話,剛經歷地震的時候,很害怕地震,但是一周過去,我覺得流言比地震更可怕。
- 1 Hello World
- 2 DOS
- 3 第一個夢想
- 4 電源里的病毒
- 5 尋址方式
- 6 黑客
- 7 《黑客防線》
- 8 魔術師的雙手
- 9 又是尋址方式
- 10 墮落
- 11 轉折點
- 12 “影總”
- 13 告別光棍的光棍節
- 14 女人的敵人
- 15 魚和熊掌
- 16 兼職
- 17 另類的方法
- 18 RMB500
- 19 天天上網的工作
- 20 應聘
- 21 MFC
- 22 畢業設計
- 23 出差
- 24 BOSSLiu
- 25 應聘的美女
- 26 多線程
- 27 畢業
- 28 黑屏
- 29 C++和ASM
- 30 RMB2000
- 31 大CASE
- 32 BOSSLiu的離去
- 33 燕兒的工作
- 34 HONDA
- 35 技術主管
- 36 DAP
- 37 動搖
- 38 張廠長的遙控器
- 39 真正的注冊機
- 40 精華和糟粕
- 41 網吧
- 42 工資和房價
- 43 背出來的面試題
- 44 真正的大CASE
- 45 向業主致敬
- 46 DHTML
- 47 先進性
- 48 非洲
- 49 技術經理
- 50 BugYang
- 51 游戲
- 52 大棒和胡蘿卜
- 53 Architect
- 54 EB失敗
- 55 北京
- 56 反匯編器
- 57 貧民窟
- 58 大爺
- 59 BugYang的心事
- 60 Nothing Impossible
- 61 周總的斷言
- 62 曹操的馬
- 63 BugYang進京
- 64 BugYang離去
- 65 辭職
- 66 球不是一個人踢的
- 67 短信
- 68 外掛
- 69 小朱
- 70 分手
- 71 New
- 72 西班牙布局
- 73 100萬用戶
- 74 Bayerische Motorenwerke J
- 75 搞IT的民工
- 76 瘋狂的程序員
- 77 開店
- 78 土匪的新工作
- 79 fatal error
- 80 夭折
- 81 丁骨牛排
- 82 資本家的艱辛
- 83 相親
- 84 BOSScLiu和VB
- 85 王老板
- 86 裝孫子
- 87 CASE Closed
- 99 后記