正文 第九章 軟件開發部和網絡部的戰爭(4)
加入書簽
章節字數:2514
滾屏速度:
保存設置 開始滾屏
晚上上網的時候,發現QQ上已經有人請求加為好友了。嗬嗬,一看,網名叫若煙。可能是林警官吧。同意加為好友之後,一問,果然是她。
她迫不及待的把那個filelock程序給發過來。
我收了。程序很小,100k不到,隻有一個簡單窗口界麵。我一邊和她聊著天,一邊調出softice開始跟蹤。嗬嗬,其他不敢說,但是跟蹤程序,解密加密還真是我的強項。
其實我們國家加密解密的黃金時代應該是使用dos操作係統的時候。那個時候,可以說加密解密就是高手的代名詞呀。那個時代,無數的高手投入到這個加密解密的戰場上來。那個時候無論加密還是解密,想出來的辦法那才真是叫絕呀。現在windows下,程序大了。跟蹤程序愈發困難了,還有防盜版的思想從技術層次發展到了法律層次,所以加密解密就弱化了。加上網絡的流行,高手們幾乎都把注意力轉向了網絡程序的攻擊了。
我的加密解密功底就是那個時代練就的。當時解密kv300的鑰匙盤,就是我的入門課程,debug就是我的最愛呀。後來碩士畢業論文,我的課題就是加密解密技術探討。當時提出的一個萬能解密技術在國內也是首創呀。我的導師都佩服的不行。
但是,跟蹤程序仍然是非常艱苦的。你不要相信有些人吹牛,說自己一晚上就把一個幾百k的程序讀懂了。還破解了。絕對是吹牛的。
我跟了一段之後,還很順利,但是很快就陷入僵局了。看來這個家夥采用過反動態跟蹤技術。我心裏有底了。對這個程序,不是普通程序,必須要慢慢來。這個家夥既然寫加密程序,對解密絕對也不是菜鳥。解密的那些招數,他會不知道?反跟蹤,首先就是反靜態彙編。這個技術是加密者所必須的。就是讓你反彙編出來的程序你無法讀懂。不過,從理論上來說,程序都是可以破譯的,因為不管你如何變換,必須要計算機能正確執行。但是讓你無法讀懂,計算機又能執行,這是容易辦到的。比如給你加個1000個無意義的循環。計算機能執行。但是你能讀懂嗎?你不執行還不行,因為後麵的代碼必須要通過這個1000個循環來解密。你動態跟蹤,他給你加入一些反跟蹤措施,比如看內存中是否有調試程序,如果有,立刻拒絕執行。甚至讓你的debug死機。甚至更絕的是通過執行時間來看是否跟蹤,你如果跟蹤,你的時間肯定長,直接連續執行,你肯定短的多的多。當時那幫高手們,當時我崇拜的偶像,現在幾乎都是IT界的風雲人物了。
而且後麵的程序是重新加過密的,執行一段,解密一段。在內存中基本就隻能看到很少的明文,全是密文。要對付當時那幫高手,才是真的難呀!
我跟蹤了一陣那個程序。他的加密方法比較簡單,就是使用的反複變換的方法。首先就是對自己進行拉多次變換,就是我們說的加殼。而且他不是使用現在流行的什麼arj,什麼zip加的殼。而是自己整的一個算法加的。這個程序一共使用了3鍾變化方法,加了3層外殼。這些早在我的預想之中,所以,我很快就把他的三個外殼脫掉了。現在內存就出現他的原始彙編代碼了。但是事情沒有完,他采用了隱含調用方式。也就是當調用程序的時候不是使用call或者jmp等指令。而是拚命往堆棧壓入數據,彈出數據,大部分是無意義的數據,根本就是麻痹你的。等你即使是孫悟空的腦袋也該昏了的時候,他才把正確地址壓入,使用ret指令就轉移了。你根本就看不到一句call和一句跳轉指令。
看了他的代碼,有防softice的代碼。隻要使用softice的跟蹤,就死機。嗬嗬,他的招數比較老,所以我早有準備。我的softice是經過我改造的。他發現不了,所以對付他那些變換招數,因為可以動態跟蹤,所以他那些什麼隱含調用啊,什麼加殼呀,全失去了作用。嗬嗬。
我給林警官發消息;"你跟蹤到什麼時候就不行了?”
“就是脫殼的關鍵代碼段的時候我的softice就死機了”。
嗬嗬,看來她的softice沒有經過改造。當然死機了,每個解密的關鍵代碼前麵就有反softice的代碼。而且你還不能跳過,跳過,後麵就無法解密。當然就死翹翹了。
“你跟蹤到哪裏了?”林MM問。
“我?嗬嗬,脫殼完成了。”
“真的嗎?你怎麼沒死機,你用什麼跟的?“
”當然是softice,還有什麼?“
”啊,你如何跳過他的反跟蹤手段的呀?“
”我就一直跟呀,就沒死機。“我故意裝糊塗。嗬嗬,我怕她問我要那個程序。到時候不好推遲。真正的黑客是不會輕易把自己的工具送人的。況且對方還是個警察。
”嗬嗬,你騙我。“林MM當然知道怎麼回事。笑笑,也沒繼續問了。
”你幹警察多久了?”,我一邊繼續跟蹤已經脫了殼的程序,試圖找到他通過解密文件的代碼。
“一年多點兒”。她回答,“你覺得破譯有希望嗎?”她總是關心她的工作。
“你什麼學校畢業的呀”,我無聊的問。同時自己使用那個軟件,加密了一個文件。然後使用這個軟件打開她,輸入密碼,試圖找到她校驗密碼的過程。
“你查戶口呀,要查戶口我可以幫忙”消息後麵跟了個俏皮的笑臉表情符號。
嗬嗬我回了個紅臉的符號。
這個時候我發現了filelock程序的密碼變換代碼斷。同時也發現了密碼在文件中的位置。當然是經過加密變換的。
隻要把這段密碼變換代碼讀懂,如果不是很難的算法,基本就能解決了。我心裏高興起來。
”我找到密碼變換入口了“。我給林MM發消息。
“太好了。真的嗎?”我幾乎能感到她的興奮。她是懂行的,知道找到密碼變換入口,幾乎就成功了一大半。
“別高興的太早,看她的密碼變換算法了。godbless
you"。我必須要潑潑冷水。其實說實話,對這個程序,才幾個小時就能跟蹤到密碼變換部分,已經大大出乎我的意料了。可以看出其實這個程序本身也不是非常嚴密,畢竟隻是網上的一個加密程序。又不是商業程序,說不定就是一個初學加密的人搞的試驗程序。
我本來是做好通宵戰鬥的準備的。現在看來,似乎是非常的順利。
我倒了一杯水,開始慢慢的喝著,一邊盡下心來開始讀那段密碼變換程序代碼。根據我的經驗,真正考驗毅力的時候到了,因為這是密碼變換,你必須每句每句都讀懂。不像動態跟蹤,你可以大段大段的自動運行。隻有你理解了這個加密過程,你才能通過逆過程把文件中的密碼變成明文。而采用的密碼變換為了被別人破譯,通常會非常複雜。寫的時候,作者一般也不會使用標準方式寫,簡單的說就是,怎樣你讀不懂,就怎樣寫程序。反正就是讓你讀不懂就對了。