現(xiàn)在所使用的語(yǔ)言是兩種,一種是解釋執(zhí)行的,另一種就是編譯后才能夠執(zhí)行的語(yǔ)言。解釋執(zhí)行的語(yǔ)言因?yàn)榻忉屍鞑恍枰苯油瑱C(jī)器碼打交道所以實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單、而且便于在不同的平臺(tái)上面移植,這一點(diǎn)從現(xiàn)在的編程語(yǔ)言解釋執(zhí)行的居多就能看出來(lái),如 Visual Basic、Visual Foxpro、Power Builder、Java...等。編譯執(zhí)行的語(yǔ)言因?yàn)橐苯油珻PU 的指令集打交道,具有很強(qiáng)的指令依賴性和系統(tǒng)依賴性,但編譯后的程序執(zhí)行效率要比解釋語(yǔ)言要高的多,象現(xiàn)在的 Visual C/C++、Delphi 等都是很好的編譯語(yǔ)言。
對(duì)于解釋語(yǔ)言與編譯語(yǔ)言所編制出來(lái)的代碼安全性上而言,可以說(shuō)是各有優(yōu)缺點(diǎn)。曾經(jīng)在 Windows 下跟蹤調(diào)式過(guò) VB3 或 VB4 程序的朋友一般都知道,程序代碼 99% 的時(shí)間里都是在 VBRUNxx 里轉(zhuǎn)來(lái)轉(zhuǎn)去,根本看不出一個(gè)所以然來(lái)。 這是因?yàn)槟愀櫟氖?VB 的解釋器,要從解釋器中看出代碼的目的是什么是相當(dāng)困難的。但解釋語(yǔ)言有一個(gè)致命的弱點(diǎn),那就是解釋語(yǔ)言的程序代碼都是以偽碼的方式存放的,一旦被人找到了偽碼與源碼之間的對(duì)應(yīng)關(guān)系,就很容易做出一個(gè)反編譯器出來(lái),你的源程序等于被公開(kāi)了一樣。而編譯語(yǔ)言因?yàn)橹苯影延脩舫绦?編譯成機(jī)器碼,再經(jīng)過(guò)優(yōu)化程序的優(yōu)化,很難從程序返回到你的源程序的狀態(tài), 但對(duì)于熟悉匯編語(yǔ)言的解密者來(lái)說(shuō),也很容易通過(guò)跟蹤你的代碼來(lái)確定某些代碼 的用途。
Visual Basic:VB3、VB4 都有相應(yīng)的反編譯器存在。而 VB5、 VB6 不再是單純的解釋程序了,雖然里面還有解釋執(zhí)行的部分,但起碼主程序部分是真正編譯的,沒(méi)有人做出 VB5 以上的反編譯器了。所以破解VB3、VB4程序首先方法是用反編譯器反匯編,查看其源代碼,這樣破解就簡(jiǎn)單多了。
Visual Basic各版本的鏈接庫(kù)如下:
VB3 鏈接庫(kù) vbrun300.dll 16 位
VB4 鏈接庫(kù) vb40016.dll 16 位,較少見(jiàn)
VB4 鏈接庫(kù) vb40032.dll 32 位
VB5 鏈接庫(kù) msvbvm50.dll 32 位
VB6 鏈接庫(kù) msvbvm60.dll 32 位
下面對(duì)各種具有反編譯器的語(yǔ)言進(jìn)行一下簡(jiǎn)單的介紹:
1、Foxpro:這種語(yǔ)言是反編譯器的主要市場(chǎng),我?guī)缀跻?jiàn)到過(guò)所有版本 FoxPro 的反編譯器,不管是DOS 版的還是 Windows 版的。其代碼的安全性十分令人擔(dān) 憂。另外提一句,現(xiàn)在的外殼加密程序?qū)λ彩呛翢o(wú)幫助的,因?yàn)榇蠖鄶?shù)的外殼程序都不會(huì)對(duì)程序中的偽碼部分進(jìn)行處理,外殼程序加密的只是其解釋器部分。
2、Cliper:DOS 下的一種數(shù)據(jù)庫(kù)語(yǔ)言,不知道現(xiàn)在是否還有人在使用它,但至少我看到過(guò)它的反編譯器。
3、Java:我至少見(jiàn)到過(guò) 3-4 種 Java 語(yǔ)言的反編譯器,據(jù)使用過(guò)的人說(shuō),其中有些反編譯器效果極好,能把那些 .class 結(jié)尾的文件反的一點(diǎn)不差。看來(lái)我至少要等到有編譯版本的 Java 出來(lái)后再考慮學(xué)習(xí)這種時(shí)髦的語(yǔ)言了。
4、Install Shield:我沒(méi)寫(xiě)錯(cuò),Install Shield 其實(shí)也是一種解釋語(yǔ)言,雖然它僅僅是為了做安裝程序用的,但有很多人用它來(lái)編寫(xiě)序列號(hào)的檢查部分,其實(shí)它的偽碼都是放在 setup.ins 中,而且我看到了這個(gè)偽碼的反編譯程序,看來(lái)以后用 Install Shield 做安裝程序的朋友們要小心了。
5、C:這種語(yǔ)言還是令人放心的,網(wǎng)絡(luò)上雖然有個(gè)叫做 EXE to C 的程序,但用過(guò)的人沒(méi)有不說(shuō)上當(dāng)?shù)摹?/P>
注:本文作者不詳。
(編輯:天命孤獨(dú))
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注