中文JAVA技術(shù)平等自由協(xié)作創(chuàng)造

          Java專題文章博客和開(kāi)源

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          Java免受逆向工程攻擊的措施

            針對(duì)Java易遭受逆向工程攻擊的原因,今天我將向大家介紹目前市場(chǎng)上關(guān)于防止Java免受逆向工程攻擊的集中措施,同時(shí)指出這幾種措施在防范逆向工程攻擊的時(shí)候存在的不足之處。

            首先是板載措施,它并不足以防止逆向工程。大多數(shù)虛擬機(jī)都包含一些使逆向工程復(fù)雜化的功能。Java允許用戶在JAR存檔中提供的每個(gè)類上設(shè)置一個(gè)數(shù)字證書(shū),以確保原始文件沒(méi)有被更改。雖然這樣做并無(wú)害處,但該功能相當(dāng)容易清除,并且僅針對(duì)靜態(tài)補(bǔ)丁方法提供保護(hù),而靜態(tài)補(bǔ)丁只是攻擊場(chǎng)景中的一小部分。而且,這種方法并不能針對(duì)運(yùn)行時(shí)應(yīng)用于內(nèi)存的補(bǔ)丁提供保護(hù)。

            Java還通過(guò)虛擬機(jī)執(zhí)行字節(jié)碼驗(yàn)證器,該驗(yàn)證器在執(zhí)行通過(guò)的字節(jié)碼之前對(duì)其進(jìn)行自動(dòng)分析。這可以防止執(zhí)行"奇怪"的代碼,也使字節(jié)碼注入變得更加困難。

            然而,盡管這些措施給攻擊者造成了困難,但對(duì)于充分保護(hù)知識(shí)產(chǎn)權(quán)還遠(yuǎn)遠(yuǎn)不夠。

            其次是Java封裝技術(shù)。開(kāi)發(fā)人員通常用以防止。class文件靜態(tài)分析和字節(jié)碼反匯編的一種方法是封裝,這種方法通過(guò)應(yīng)用加密/解密完整文件來(lái)防止對(duì)類文件的分析。通過(guò)封裝,開(kāi)發(fā)人員將受保護(hù)文件的原始加載器更換為處理加密/解密的自定義加載器。加密使用將。class文件從標(biāo)準(zhǔn)Java .class格式更改為僅"密鑰"所有者可讀格式的算法來(lái)防止對(duì)這些文件的分析。然而,.class文件的字節(jié)碼在一個(gè)內(nèi)存位置中仍保持可讀,在系統(tǒng)加載器嘗試加載該類之前的時(shí)刻,通常可從該位置訪問(wèn)字節(jié)碼。如果黑客能夠找到那個(gè)內(nèi)存位置,就可以訪問(wèn)原始狀態(tài)的該類。

            最后,防止黑客攻擊該內(nèi)存位置需要第二種技術(shù),稱為混淆?;煜僧a(chǎn)生一個(gè)更加復(fù)雜、難于理解并且與原始代碼具有相同行為方式的代碼版本。有幾種不同類型的混淆方法可用于指令集:程序員可以通過(guò)替換二進(jìn)制代碼中的所有字符串來(lái)混淆代碼,這樣就更加難以找到一個(gè)好的切入點(diǎn)來(lái)開(kāi)始逆向工程攻擊。他們可以通過(guò)插入指向垃圾代碼的跳轉(zhuǎn)并返回來(lái)迷惑攻擊者,或混淆源代碼或字節(jié)碼托福雅思_代考_答案_改分

            開(kāi)發(fā)人員也可以選擇使用名為Const2Code轉(zhuǎn)換的技術(shù)來(lái)混淆常量。例如,密鑰有時(shí)在應(yīng)用程序中存儲(chǔ)為一組字節(jié)。如果黑客確定了這些字節(jié)的位置,他們就可以訪問(wèn)這些字節(jié)。為混淆一個(gè)常量(如密鑰),Const2Code算法將常量轉(zhuǎn)換為可產(chǎn)生同一常量的多個(gè)不同的命令證券期貨_答案_代考_改分

            例如,為了在源代碼段中隱藏常量cst=0x12345678,可以將該常量簡(jiǎn)單地分為幾個(gè)算術(shù)運(yùn)算,如加、減等等。A = 0x9ABCDF00;B=0x2;C=0x135799E00.現(xiàn)在讓我們使用這三個(gè)變量重新計(jì)算出常量0x12345678.我們的原始常量為:cst = C/B + A – 0x88888888 – A + 1000= 0x12345678.如果應(yīng)用程序僅使用該例程來(lái)計(jì)算常量,攻擊者就必須理解其中的含義,而不是簡(jiǎn)單地獲取該常量。

          posted on 2013-02-28 16:07 好不容易 閱讀(252) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          PK10開(kāi)獎(jiǎng) PK10開(kāi)獎(jiǎng)
          主站蜘蛛池模板: 蒙城县| 苍南县| 平南县| 绥芬河市| 湛江市| 贺州市| 阿合奇县| 增城市| 瓦房店市| 祥云县| 嘉兴市| 博罗县| 无锡市| 从化市| 鄄城县| 内乡县| 勃利县| 张家口市| 都兰县| 大石桥市| 安丘市| 平邑县| 尉氏县| 仁布县| 修文县| 罗平县| 扎兰屯市| 游戏| 米泉市| 玉溪市| 昌图县| 迭部县| 鹤庆县| 翼城县| 崇州市| 潮安县| 无极县| 双峰县| 高雄市| 贵定县| 七台河市|