jad反编译成java_反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]...
這是jad的readme文件jad?-sjava?example1.class
jad的主頁(yè)是:http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
Copyright?2000?Pavel?Kouznetsov?(kpdus@yahoo.com).
1.????請(qǐng)先讀jad主頁(yè)的否認(rèn)聲明文件
2.????安裝
解壓縮jad.zip包,并把它放在你硬盤的某個(gè)目錄下。將會(huì)創(chuàng)建兩個(gè)文件????jad.exe和readme.txt文件,不需要其他的安裝文件
3.????怎樣去用jad
如果要簡(jiǎn)單的反編譯一個(gè).class文件的話,用以下命令?jad?example1.class這個(gè)命?令在當(dāng)前文件夾下創(chuàng)建了一個(gè)example1.jad文件如果jad文件已經(jīng)存在的話,會(huì)提示你是否要覆蓋這個(gè)jad文件
-o?允許你直接覆蓋掉以前存在的jad文件
-s?允許你改變輸出文件的擴(kuò)展類型,如下所示將輸出文件類型變成?*.java
jad?-sjava?example1.class
這個(gè)命令創(chuàng)建了一個(gè)example1.java文件
要注意的是連用-o,-s命令,可能會(huì)將你自己的源文件也覆蓋掉的
jad用class自己的名字作為一個(gè)輸出文件的名字,比如如果'example1.class'包含一個(gè)test1的類就會(huì)創(chuàng)建一個(gè)test1.jad文件而不是創(chuàng)建example1.jad文件
如果你想指定輸出文件的名字的話,用以下的轉(zhuǎn)移命令
jad?-p?example1.class?>?myexm1.java
-d允許你指定另外一個(gè)文件目錄作為輸出文件的目錄,沒有指定的情況下會(huì)輸出到缺省路徑下
jad?-o?-dtest?-sjava?*.class
或者?jad?-o?-d?test?-s?java?*.class
以下的命令反編譯了所有的*.class文件,并且將輸出文件放置到test文件目錄下
如果你想反編譯tree目錄下的所有*.class文件,用下面的命令
jad?-o?-r?-sjava?-dsrc?tree/**/*.class
這個(gè)命令反編譯了tree目錄下所有*.class文件,將輸出文件以*.java的形式
放置到src目錄下
注意到**了嗎?在unix可以表示為:
jad?-o?-r?-sjava?-dsrc?'tree/**/*.class'
如果你想測(cè)試一下反編譯的精確度的話,用-a
jad支持所有內(nèi)部和匿名的類
4.????命令行選擇的列表
-a???????-?用JVM字節(jié)格式來(lái)注解輸出
-af??????-?同?-a,但是注解的時(shí)候用全名稱
-clear???-?清除所有的前綴
-b???????-?輸出多于的括號(hào)?(e.g.,?if(a)?{?b();?},?default:?no)
-d?
-dead????-試圖反編譯代碼的dead?部分(default:?no)
-disass??-?不用用字節(jié)碼的方式反編譯?(no?JAVA?source?generated)
-f???????-?輸出整個(gè)的名字,無(wú)論是類還是方法
-ff??????-輸出類的成員在方法之前?(default:?after?methods)
-i???????-?輸出所有的變量的缺省的最初值
-l??-?將strings分割成指定數(shù)目的塊的字符?(default:?no)
-lnc?????-?將輸出文件用行號(hào)來(lái)注解?(default:?no)
-nl??????-?分割strings用新行字符?newline?character?(default:?no)
-nodos???-不要去檢查class文件是否以dos方式寫?(CR?before?NL,?default:?check)
-nocast??-?不要生成輔助文件
-nocode??-不要生成方法的源代碼
-noconv??-?不要轉(zhuǎn)換java的定義符?(default:?do)
-noctor??-?不允許空的構(gòu)造器存在
-noinner??關(guān)掉對(duì)內(nèi)部類的支持?(default:?turn?on)
-nolvt???-?忽略局部變量的表信息
-nonlb???-?不要輸出一個(gè)新行在打開一個(gè)括號(hào)之前?(default:?do)
-o???????-?無(wú)需確認(rèn)直接覆蓋輸出?(default:?no)
-p???????-?發(fā)送反編譯代碼到標(biāo)準(zhǔn)輸出?STDOUT?(e.g.,?for?piping)
-pi?-在?的導(dǎo)入之后將其他引用包裹成一行導(dǎo)入?(default:?3)
-pv?-將同類型的成員包裹成一行?(default:?no)
-pa?-?在生成源代碼時(shí)將所有的包加前綴
-pc?-?用數(shù)字名字給所有的類加前綴?(default:?_cls)
-pf?-?用數(shù)字名字給所有的成員變量加前綴?(default:?_fld)
-pe?-給沒有用到的異常的名字加前綴
-pl?-?給局部變量用數(shù)字名字加前綴?(default:?_lcl)
-pm?-給方法用數(shù)字名字加前綴?(default:?_mth)
-pp?-?給方法的參數(shù)用數(shù)字名字加前綴?(default:?_prm)
-r???????-?恢復(fù)包的目錄結(jié)構(gòu)
-s??-?指定輸出文件的類型?(by?default?'.jad')
-space???-遇到關(guān)鍵字(if/for/while/etc)輸出空格和表達(dá)式?(default:?off)
-stat????-?顯示所有的類,方法,成員變量的總數(shù)
-t???????-?用tabs代替空格對(duì)于邊緣
-t??-用?個(gè)的空格?(default:?4)
-v???????-?正在反編譯的時(shí)候?顯示方法的名字
-8???????-?將?UNICODE?strings?轉(zhuǎn)換成?8-bit?strings
用當(dāng)前的?ANSI?碼頁(yè)?(Win32?only)
-&???????-?重新定向?STDERR?to?STDOUT?(Win32?only)
附件:jadnt157.zip(181K)
總結(jié)
以上是生活随笔為你收集整理的jad反编译成java_反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中if brthon环境安装
- 下一篇: 一个介绍实用软件及技巧的独立博客-善用佳