• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chenglong7997

            Java程序易遭受逆向工程攻擊的原因

             Java應(yīng)用程序雖然能夠“編寫一次,隨處運(yùn)行”(Write Once, Run Anywhere)是一個(gè)巨大的優(yōu)勢(shì),但這種環(huán)境的架構(gòu)方式使其遠(yuǎn)比本機(jī)應(yīng)用程序更容易被黑客進(jìn)行逆向工程。這意味著開發(fā)人員面臨著失去知識(shí)產(chǎn)權(quán)的非常真實(shí)的危險(xiǎn)。基于應(yīng)用程序的虛擬機(jī)比本機(jī)應(yīng)用程序更容易逆向工程的原因有很多:
            JVM是開源的
              Sun已經(jīng)免費(fèi)提供JVM的源代碼。這使得黑客只需查看代碼即可弄清虛擬機(jī)的工作方式。
            Java .class文件格式是可公開獲取的
            如前所述,Java源代碼被編譯成字節(jié)碼,而字節(jié)碼存儲(chǔ)在Java .class文件中。Java .class文件格式的規(guī)范是可公開獲取的,因此有技術(shù)背景的任何人都能容易地編寫可以處理、修改或轉(zhuǎn)換.class文件的工具。
            JVM是軟件,而不是硬件
               與需要理解特定處理器的專家使用的標(biāo)準(zhǔn)編程語言不同,JVM是一個(gè)應(yīng)用程序,它如同微處理器一樣運(yùn)作,并使用操作系統(tǒng)和計(jì)算機(jī)硬件提供的內(nèi)置功能。由于黑客不必深入到硬件級(jí)別,因此更容易取得對(duì)JVM的完全控制。
               因此,例如在使用標(biāo)準(zhǔn)本機(jī)系統(tǒng)開發(fā)語言進(jìn)行調(diào)試時(shí),暫停處理器極為困難,需要具備處理器、調(diào)試功能及可用環(huán)調(diào)試器的專家知識(shí)。但是,由于JVM 運(yùn)行環(huán)境的源代碼是可公開獲取的,因此開發(fā)人員可以輕松地建立自己的虛擬機(jī)來完全控制虛擬處理器的各個(gè)方面。這樣可以容易地分析運(yùn)行環(huán)境中運(yùn)行的每個(gè)應(yīng)用程序。
            Java的指令比本機(jī)代碼少
               然而,JVM代碼易于進(jìn)行反向工程的另一個(gè)原因是它具有比本地應(yīng)用程序更少的指令。這是出于性能考慮。JVM的使用在應(yīng)用程序和本機(jī)處理器之間增加了一個(gè)軟件層,這會(huì)對(duì)性能產(chǎn)生負(fù)面影響。雖然現(xiàn)代處理器不斷提高的執(zhí)行速度最終將緩解這一問題,但這一問題仍然很明顯。虛擬機(jī)開發(fā)人員提高執(zhí)行速度的一種方法是使用比本機(jī)處理器匯編程序更小的字節(jié)碼指令集。本機(jī)應(yīng)用程序可能包含多達(dá)400條指令,而Java應(yīng)用程序通常使用不超過200條的指令。更少的指令意味著黑客可以更快地分析代碼以進(jìn)行逆向工程。這些特性使得虛擬機(jī)遠(yuǎn)比其它類型的應(yīng)用程序更容易遭受逆向工程攻擊。
            第三方反匯編程序增加了漏洞
             不僅是JVM本身容易遭受逆向工程攻擊,商業(yè)和免費(fèi)的Java字節(jié)碼反匯編程序也越來越多,從而進(jìn)一步簡(jiǎn)化了代碼逆向工程的過程。IDA和Eclipse字節(jié)碼插件是眾多Java字節(jié)碼反匯編程序中的兩種。作為商業(yè)產(chǎn)品,IDA是一種普遍的反匯編程序,可用于許多不同的處理器,包括80x86和MIPS。Eclipse字節(jié)碼插件是免費(fèi)軟件。它能夠反編譯Java .class文件的字節(jié)碼并以適當(dāng)?shù)捻樞蝻@示所有操作碼指令。 盡管這些產(chǎn)品不大可能從字節(jié)碼完美地恢復(fù)原始代碼,但它們恢復(fù)的源代碼將等同于原始代碼,并且比字節(jié)碼更具可讀性。一旦恢復(fù)了源代碼,攻擊者可以容易地刪除部分代碼并將其非法地用于競(jìng)爭(zhēng)對(duì)手的應(yīng)用程序中,或在.class文件中定位打補(bǔ)丁。
            圖1提供了黑客可能如何在.class文件中打補(bǔ)丁的一個(gè)示例。屏幕的上半部分顯示了一小段Java源代碼。屏幕的下半部分顯示了字節(jié)碼反匯編的輸出,也就是一個(gè)字節(jié)碼指令列表。標(biāo)記為紅色的區(qū)域是源代碼中IF結(jié)構(gòu)的對(duì)應(yīng)指令。字節(jié)碼指令“LCMP”的十六進(jìn)制表示為0x94。該工具還指出了操作碼在.class文件中的位置。有了這些信息,黑客可以使用簡(jiǎn)單的十六進(jìn)制編輯器來改變?cè)揑F分支,而這只需不到一分鐘的時(shí)間。假設(shè)該IF條件用于許可證檢查,黑客可倒置該條件,指示即使在許可證被驗(yàn)證為無效(如已過期)的情況下仍返回“True”,從而突破許可證檢查。在這種情況下,黑客使用一個(gè)字節(jié)的補(bǔ)丁即可完成所有工作。雖然大多數(shù)應(yīng)用程序都比這個(gè)示例更加復(fù)雜,但即使在復(fù)雜的應(yīng)用程序中,字節(jié)碼也非常簡(jiǎn)單并且容易理解。
             Java應(yīng)用程序雖然能夠“編寫一次,隨處運(yùn)行”(Write Once, Run Anywhere)是一個(gè)巨大的優(yōu)勢(shì),但這種環(huán)境的架構(gòu)方式使其遠(yuǎn)比本機(jī)應(yīng)用程序更容易被黑客進(jìn)行逆向工程。這意味著開發(fā)人員面臨著失去知識(shí)產(chǎn)權(quán)的非常真實(shí)的危險(xiǎn)。基于應(yīng)用程序的虛擬機(jī)比本機(jī)應(yīng)用程序更容易逆向工程的原因有很多:

            圖1 - 用于字節(jié)碼反匯編的Eclipse字節(jié)碼插件

            posted on 2012-04-11 13:43 Snape 閱讀(334) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Java

            導(dǎo)航

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            色综合久久最新中文字幕| 久久国产高清字幕中文| 欧美伊人久久大香线蕉综合69 | 亚洲欧美日韩久久精品| 天天躁日日躁狠狠久久| 国产女人aaa级久久久级| 久久久久久久综合狠狠综合| AV无码久久久久不卡蜜桃| 日韩欧美亚洲综合久久影院Ds| 色欲综合久久躁天天躁蜜桃| 久久se这里只有精品| 久久一日本道色综合久久| 国产精品久久久99| 1000部精品久久久久久久久| 久久强奷乱码老熟女网站| 丁香五月网久久综合| 97精品伊人久久大香线蕉| 国产精品熟女福利久久AV| 久久婷婷五月综合色奶水99啪| 久久久久久免费视频| 精品久久久久久无码中文野结衣| 久久亚洲中文字幕精品有坂深雪| 久久人人爽人人澡人人高潮AV| 久久精品国产99国产精偷| 思思久久好好热精品国产| 久久精品亚洲欧美日韩久久| 中文字幕亚洲综合久久2| 久久AV高清无码| 日韩人妻无码精品久久久不卡 | 99久久精品免费观看国产| 久久精品国产亚洲av水果派| 国内精品综合久久久40p| 一本大道久久香蕉成人网| 欧美性猛交xxxx免费看久久久| 久久国产成人亚洲精品影院| 久久国产精品久久国产精品| 99久久久精品| 国产99久久九九精品无码| 国产亚洲色婷婷久久99精品91| 久久久久18| 女人高潮久久久叫人喷水|