當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程語言 » java防止反編譯

java防止反編譯-九游会j9娱乐平台

發布時間: 2024-07-04 03:43:06

a. java的打包後jar包裡面的class文件都能被反編譯成為源碼

jd-gui這個工具可以進行反編譯的操作。 不過反編譯的質量隨著混淆的程度而定。
特別復雜的代碼(如加密演算法)反編譯一般都有問題。可以建議用 javap -c -p 來看位元組碼。然後參考jvm指令。
一般編譯的文件,都可以反編譯為源碼,但如果是經過加密、以及代碼異常復雜,是很難恢復全部的源碼。

b. myeclipse 生成jar 怎麼防止反編譯

1.下載myeclipse反編譯class文件的工具

2.工具的安裝

下載後上面的工具之後,解壓出來,我們可以看到有兩個文件:jad.exe、net.sf.jadclipse_3.3.0.jar 。

第一步:我們將jad.exe文件放到jdk的bin目錄下

第二步:將 net.sf.jadclipse_3.3.0.jar 拷貝到 myeclipse安裝目錄下的plugins目錄下面d:

第三步:在d:-8.6dropins創建一個eclipse文件夾.

第四步:在創建好的eclipse文件夾下,分別創建featues、plugins兩個文件夾.

第六步:將net.sf.jadclipse_3.3.0.jar 文件分別拷貝到創建好的featues、plugins兩個文件夾裡面.

第七步:重新啟動myeclipse,在windows——>perference——>java下面應該會多出一個jadclipse目錄. 如果沒有出現的話,多試幾次就ok了,我當時也是這樣.

第八步:點擊jadclipse,在右邊的窗口中配置jadclipse. 設置path to decompiler為jad.exe的全路徑,如:c:jdkinjad.exe,在directory for temporary files中指定l臨時文件路徑,如 :d:-8.6 esult ,其中result是新建一個文件夾. 同時需要選中 user eclipse code formatter ,這樣編譯出來的java 代碼會和class文件的格式一樣.

為了避免編譯後的中文亂碼問題,我們需要配置misc

第九步:安裝完成之後,雙擊class文件,myeclipse就自動反編譯了.如果沒有出現想要的結果,需要檢查一下「*.class」默認關聯的編輯器為「jadclipse class file viewer「

關聯之後,就可以自動的反編譯啦!

c. java開發的jsp程序編譯後能夠通過反編譯看到源碼,如何可以避免源碼泄露|

jsp沒有辦法,把方法什麼的都寫到java代碼里,jsp只調用,java代碼可以通過工具進行混淆,讓人無法反編譯出原代碼

d. 什麼是java代碼的編譯與反編譯

java代碼的編譯與反編譯

2017-02-21hollis數盟

一、什麼是編譯

1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。

2、用編譯程序產生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

二、什麼是反編譯

計算機軟體反向工程(reverseengineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。

三、java類的編譯與反編譯

我們在最初學習java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。

class文件打破了c或者c 等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而javaclass文件是可以運行在任何支持java虛擬機的硬體平台和操作系統上的二進制文件。

那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的java文件)

四、什麼時候會用到反編譯

1、我們只有一個類的class文件,但是我們又看不懂java的class文件,那麼我們可以把它反編譯成我們可以看得懂的文件。

2、學習java過程中,jdk的每個版本都會加入越來越多的語法糖,有些時候我們想知道java一些實現細節,我們可以藉助反編譯。

五、反編譯工具

1、javap

2、jad:官網(牆裂推薦)

客戶端:

可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。

因為我使用的是linux操作系統,所以我下載的是linux版本的工具,這個工具下載好之後會有一個執行文件,只要在執行文件所在目錄執行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的java代碼

eclipse插件:

下載地址在官網下載插件的jar包,然後將jar包放到eclipse的plugins目錄下『在打開eclipse,eclipse->window->preferences->java,此時你會發現會比原來多了一個jadclipse的選項,單擊,在pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在jadclipse下還有一些子選項,如debug,directives等,按照默認配置即可。基本配置完畢後,我們可以查看一下class文件的默認打開方式,eclipse->window->preferences->general->editors->fileassociations我們可以看到class文件的打開方式有兩個,jadclipse和eclipse自帶的classfileviewer,而jadclipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按f3即可查看源碼

e. 用apk改之理,反編譯一個apk的時候卡住不動了,是什麼原因我關掉java運行環境的話,就會瞬間

如果有命令行,就看命令行提示什麼信息,,,,,,,,,這種第3方的程序,一般很麻煩

f. 如何防止代碼被反編譯

針對代碼反編譯,推薦使用cbs賽博鎖,通過把安全容器內嵌到操作系統中,對容器內的應用和數據進行加鎖,程序和數據在容器內運行,實現最後一米數據安全,防止核心數據被泄露,防止伺服器終端中病毒,防止反編譯,反破解。

g. 如何混淆java編譯後的類或jar,或將jar編譯成exe,使人無法反編譯獲得源代碼

混淆就可以了
我一直在用proguard4.5.1做java項目的混淆

h. 怎麼防止java開發出來的程序被別人反編譯

防止java開發出來的程序被別人反編譯有很多種方法,下面給你介紹幾種:

1、隔離java程序

最簡單的方法就是讓用戶不能夠訪問到java class程序,這種方法是最根本的方法,具體實現有多種方式。例如,開發人員可以將關鍵的java class放在伺服器端,客戶端通過訪問伺服器的相關介面來獲得服務,而不是直接訪問class文件。這樣黑客就沒有辦法反編譯class文件。目前,通過介面提供服務的標准和協議也越來越多,例如 http、web service、rpc等。但是有很多應用都不適合這種保護方式,例如對於單機運行的程序就無法隔離java程序。

2、對class文件進行加密

為了防止class文件被直接反編譯,許多開發人員將一些關鍵的class文件進行加密,例如對注冊碼、序列號管理相關的類等。在使用這些被加密的類之前,程序首先需要對這些類進行解密,而後再將這些類裝載到jvm當中。這些類的解密可以由硬體完成,也可以使用軟體完成。

3、轉換成本地代碼

將程序轉換成本地代碼也是一種防止反編譯的有效方法。因為本地代碼往往難以被反編譯。開發人員可以選擇將整個應用程序轉換成本地代碼,也可以選擇關鍵模塊轉換。如果僅僅轉換關鍵部分模塊,java程序在使用這些模塊時,需要使用jni技術進行調用。

4、代碼混淆

代碼混淆是對class文件進行重新組織和處理,使得處理後的代碼與處理前代碼完成相同的功能(語義)。但是混淆後的代碼很難被反編譯,即反編譯後得出的代碼是非常難懂、晦澀的,因此反編譯人員很難得出程序的真正語義。從理論上來說,黑客如果有足夠的時間,被混淆的代碼仍然可能被破解,甚至目前有些人正在研製反混淆的工具。但是從實際情況來看,由於混淆技術的多元化發展,混淆理論的成熟,經過混淆的java代碼還是能夠很好地防止反編譯。

不同保護技術比較希望能給大家帶來參考:

熱點內容
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
网站地图