這樣做是行不通的。反編譯一般是不能完全得到源Java代碼的,得到的代碼甚至會有語法錯誤,除非是簡單的那些代碼。要改的話就得改.class文件,但這個非常困難,要在16進制下改。或者改smali文件,這個比改.class文件要稍微簡單一點,不用在16進制下修改,可直接改代碼,但也是需要一定的smali語法知識的。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬主機、營銷軟件、網站建設、石首網站維護、網站推廣。
java代碼的編譯,就是你寫完代碼,java編譯器把它編譯成java虛擬機認識的代碼,然后再由虛擬機執行它。反編譯就是反過來,當然這不是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即可查看源碼
一、反編譯:下載一個jad
反編譯工具jad簡單用法
以下假設jad.exe在c:/java目錄下
一、基本用法
Usage: jad [option(s)]
直接輸入類文件名,且支持通配符,如下所示。
c:/java/jad example1.class
c:/java/jad *.class
結果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源
文件。
二、Option -o
不提示,覆蓋源文件
三、Option -s
c:/java/jad -sjava example1.class
反編譯結果以.java為擴展名。
四、Option -p
將反編譯結果輸出到屏幕
c:/java/jad -p example1.class
將反編譯結果重定向到文件
c:/java/jad -p example1.classexample1.java
五、Option -d
指定反編譯的輸出文件目錄
c:/java/jad -o -dtest -sjava *.class
二:修改、再編譯
用Eclipse新建工程,再將反編譯出的Java文件按原樣導入工程,就可以修改代碼。修改并調試后,點擊Eclipse菜單中的文件→導出→Java→可運行的JAR文件,選擇配置工程和導出路徑,然后點完成即可導出。
當前題目:反編譯java改代碼,jdk 反編譯
文章網址:http://vcdvsql.cn/article14/hspide.html
成都網站建設公司_創新互聯,為您提供網站建設、手機網站建設、企業網站制作、App開發、網頁設計公司、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯