日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jad反编译成java,反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)...

發布時間:2024/8/1 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jad反编译成java,反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.?????? 安裝

解壓縮jad.zip包,并把它放在你硬盤的某個目錄下。將會創建兩個文件?????? jad.exe和readme.txt文件,不需要其他的安裝文件

2.?????? 怎樣去用jad

如果要簡單的反編譯一個.class文件的話,用以下命令 jad example1.class這個命 令在當前文件夾下創建了一個example1.jad文件如果jad文件已經存在的話,會提示你是否要覆蓋這個jad文件

-o 允許你直接覆蓋掉以前存在的jad文件

-s 允許你改變輸出文件的擴展類型,如下所示將輸出文件類型變成 *.java

jad -sjava example1.class

這個命令創建了一個example1.java文件

要注意的是連用-o,-s命令,可能會將你自己的源文件也覆蓋掉的

jad用class自己的名字作為一個輸出文件的名字,比如如果'example1.class'包含一個test1的類就會創建一個test1.jad文件而不是創建example1.jad文件

如果你想指定輸出文件的名字的話,用以下的轉移命令

jad -p example1.class > myexm1.java

-d允許你指定另外一個文件目錄作為輸出文件的目錄,沒有指定的情況下會輸出到缺省路徑下

jad -o -dtest -sjava *.class

或者 jad -o -d test -s java *.class

以下的命令反編譯了所有的*.class文件,并且將輸出文件放置到test文件目錄下

如果你想反編譯tree目錄下的所有*.class文件,用下面的命令

jad -o -r -sjava -dsrc tree/**/*.class

這個命令反編譯了tree目錄下所有*.class文件,將輸出文件以*.java的形式

放置到src目錄下

注意到**了嗎?在unix可以表示為:

jad -o -r -sjava -dsrc 'tree/**/*.class'

如果你想測試一下反編譯的精確度的話,用-a

jad支持所有內部和匿名的類

3.?????? 命令行選擇的列表

-a????????? - 用JVM字節格式來注解輸出

-af???????? - 同 -a,但是注解的時候用全名稱

-clear????? - 清除所有的前綴

-b????????? - 輸出多于的括號 (e.g., if(a) { b(); }, default: no)

-d

-dead?????? -試圖反編譯代碼的dead 部分(default: no)

-disass???? - 不用用字節碼的方式反編譯 (no JAVA source generated)

-f????????? - 輸出整個的名字,無論是類還是方法

-ff???????? -輸出類的成員在方法之前 (default: after methods)

-i????????? - 輸出所有的變量的缺省的最初值

-l???? - 將strings分割成指定數目的塊的字符 (default: no)

-lnc??????? - 將輸出文件用行號來注解 (default: no)

-nl???????? - 分割strings用新行字符 newline character (default: no)

-nodos????? -不要去檢查class文件是否以dos方式寫 (CR before NL, default: check)

-nocast???? - 不要生成輔助文件

-nocode???? -不要生成方法的源代碼

-noconv???? - 不要轉換java的定義符 (default: do)

-noctor???? - 不允許空的構造器存在

-noinner ?關掉對內部類的支持 (default: turn on)

-nolvt????? - 忽略局部變量的表信息

-nonlb????? - 不要輸出一個新行在打開一個括號之前 (default: do)

-o????????? - 無需確認直接覆蓋輸出 (default: no)

-p????????? - 發送反編譯代碼到標準輸出 STDOUT (e.g., for piping)

-pi -在 的導入之后將其他引用包裹成一行導入 (default: 3)

-pv -將同類型的成員包裹成一行 (default: no)

-pa - 在生成源代碼時將所有的包加前綴

-pc - 用數字名字給所有的類加前綴 (default: _cls)

-pf - 用數字名字給所有的成員變量加前綴 (default: _fld)

-pe -給沒有用到的異常的名字加前綴

-pl - 給局部變量用數字名字加前綴 (default: _lcl)

-pm -給方法用數字名字加前綴 (default: _mth)

-pp - 給方法的參數用數字名字加前綴 (default: _prm)

-r????????? - 恢復包的目錄結構

-s - 指定輸出文件的類型 (by default '.jad')

-space????? -遇到關鍵字(if/for/while/etc)輸出空格和表達式 (default: off)

-stat?????? - 顯示所有的類,方法,成員變量的總數

-t????????? - 用tabs代替空格對于邊緣

-t???? -用 個的空格 (default: 4)

-v????????? - 正在反編譯的時候 顯示方法的名字

-8????????? - 將 UNICODE strings 轉換成 8-bit strings

用當前的 ANSI 碼頁 (Win32 only)

-&????????? - 重新定向 STDERR to STDOUT (Win32 only)

總結

以上是生活随笔為你收集整理的jad反编译成java,反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。