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

            圖1 - 用于字節碼反匯編的Eclipse字節碼插件

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

            導航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統計

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            午夜精品久久影院蜜桃| 久久综合给合久久狠狠狠97色69| 人人狠狠综合久久亚洲| 久久精品国产亚洲AV电影| 国产91久久精品一区二区| 国产精品成人99久久久久91gav| 日韩久久久久久中文人妻| 久久久久亚洲AV片无码下载蜜桃| 久久综合88熟人妻| 国产精品gz久久久| 伊人久久久AV老熟妇色| 国产精品久久久久乳精品爆| 久久久久久国产精品免费免费 | 色综合合久久天天综合绕视看| 91久久精品国产免费直播| 日本久久中文字幕| aaa级精品久久久国产片| 亚洲精品无码专区久久同性男| 无码国内精品久久人妻| 久久e热在这里只有国产中文精品99 | 狠狠色丁香久久综合五月| 人妻丰满?V无码久久不卡| 久久九九全国免费| 久久婷婷成人综合色综合| 久久天天躁狠狠躁夜夜2020一| 亚洲国产成人久久综合碰碰动漫3d | 久久久久人妻一区二区三区| 久久久久久久尹人综合网亚洲| 亚洲成色WWW久久网站| 久久久亚洲精品蜜桃臀| 7国产欧美日韩综合天堂中文久久久久| 久久综合亚洲色HEZYO社区| 国产一区二区三区久久| 国产综合久久久久| 久久精品无码专区免费东京热| 久久精品国产亚洲av麻豆图片 | 99久久99久久精品国产| 久久久久人妻一区精品性色av| 日日噜噜夜夜狠狠久久丁香五月| 2021国产精品午夜久久| 久久久精品国产Sm最大网站|