當前位置:首頁 » 編程軟體 » 反編譯用什麼虛擬機

反編譯用什麼虛擬機

發布時間: 2022-08-03 10:17:34

Ⅰ 誰有辦法把class文件反編譯java嗎,不能出任何錯誤。我用jd總是有錯誤,而且好像有層級限制

jd只是適合少量class文件,如果太多的話,類的引用就太繁瑣了,偶爾會出錯。我也是用XJAD反編譯的,它可以反編譯一個jar包。反編譯有啥原理呢?虛擬機將*.java文件編譯成位元組碼(*.class文件)然後,在編譯成本地機器碼,執行;我們一般用來傳播的也就是*.class文件,這是一種有標准格式的位元組碼,開發工具按這個格式在將轉換為*.java程序,就這樣咯。而且,如果你要學了*.class文件的結構,自己都能計算出對應的*.java文件,只不過很復雜,很繁瑣。

Ⅱ 怎樣反編譯程序

哦 很簡單
如果沒有加殼 可以用 rescope注冊版

加殼的 涉及加密解密知識

安卓手機上可以實現apk安裝包的反編譯嗎用什麼軟體

手機上目前不太可能,APKTOOL也只是電腦上的,手機上如果要反編譯,必須具備java虛擬機的全部環境才可以,當然,不排除以後有高手能直接提取需要的java類放到手機中,建立一個輕量級的反編譯環境

Ⅳ JAVA反編譯軟體

由於JAVA語言安全性高、代碼優化、跨平台等特性,從1995年5月由SUN公司發布後,迅速取代了很多傳統高級語言,占據了企業級網路應用開發等諸多領域的霸主地位。
不過,JAVA最突出的跨平台優勢使得它不能被編譯成本地代碼,而要以中間代碼的形式運行在虛擬機環境中,這使得JAVA的反編譯要比別的高級語言容易實現,並且反編譯的代碼經過優化後幾乎可以與源代碼相媲美。
為了更好地保護知識產權,避免本公司的智力成果輕易被人竊取,開發者有必要對反編譯工具深入了解,以便有針對性地採取保護措施。
目前,比較流行的JAVA反編譯工具有近30種,其中有三款堪稱精品:
一、 應用廣泛的JAD
在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI』s Java Class Viewer和國產的JAVA源代碼反編譯專家。
JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。
JAD是使用Microsoft Visual C++開發的,運行速度非常快,可以處理很復雜的JAVA編譯文件。眾多的參數使JAD可以靈活應付多種加密手段,令反編譯的代碼更加優化和易讀。由於JAD參數太多,沒必要一一解釋,其中有幾個最常用的如下(以JAD 1.5.8f版本為例):
-d
- 用於指定輸出文件的目錄
-s - 輸出文件擴展名(默認為: .jad),通常都會把輸出文件擴展名直接指定為.java,以方便修改的重新編譯。
-8 - 將Unicode字元轉換為ANSI字元串,如果輸出字元串是中文的話一定要加上這個參數才能正確顯示。
最常用的反編譯指令如下所示:
Jad –d c:\javasource –s .java -8 javatest.class
這條指令將當前目錄下的javatest.class反編譯為javatest.java並保存在c:\javasource目錄里,其中的提示輸出為中文,而不是Unicode代碼。

二、 源碼開放的JODE
JODE是全球最大的開源項目網站Sourceforge.net的成員,在所有的JAVA反編譯器中,JODE的反編譯效果是最好的,尤其是對付一些常見的加密手段,例如混淆技術等,更是出類拔粹。
JODE本身也是純JAVA開發的,最近越來越多的JAVA反編譯軟體也選擇JODE來做它們的核心引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit』s JavaInsight plugin等。
JODE是一個可運行的JAR文件,在windows環境下雙擊即可運行。
需要特別說明的是,JODE不是通過常規的Open->File的方式來載入JAVA編譯後的類文件(*.class)或是類包(*.jar)的, 而是通過在Options菜單中的Set Classpath來實現的,單獨的類文件可以將它的上一級目錄作為Classpath輸入,然後再選擇Reload Classpath即可。
新加入的類包或是類的名字會在左側窗口出現,雙擊類包名可以展開目錄樹結構,雙擊需要反編譯的類名則在右上角的窗口中直接顯示反編譯後的源代碼。

三、 獨樹一幟的DAVA
DAVA不是一個獨立的JAVA反編譯器,而是JAVA代碼優化工具Soot的一部分。Soot和JODE一樣是純JAVA開發的,也是一個獨立的JAR包,但卻不能通過雙擊直接運行,而是象JAD一樣在命令行狀態運行。
Soot對環境變數的配置要求非常嚴格,通常情況下要對CLASSPATH做如下設置:
Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;
其中的c:\sootdir\是下載的soot類包放置的路徑,CLASSPATH末尾的.;代表了當前目錄,如果不加上這個的話Soot經常會報一個找不到類的錯誤。
DAVA是作為Soot的一個參數使用的,通常的用法如下:
Java soot.Main –f dava –d c:\javasource javatest
注意最後的類名不用帶.class後綴,因為它默認是處理class文件,這個操作與前述的JAD的參數效果相同。
DAVA採取了流程優化的方式進行反編譯,與傳統反編譯思路不盡相同,但卻對改變流程類的加密方法有獨特的反編譯效果。
上述的三種工具各有千秋,但效果都非常不錯。經測試,它們基本上都可以把JDK自帶的一些常式完全反編譯,然後不加任何修改可再編譯成功,並能正常運行!

Ⅳ 反編譯是什麼意思

計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(比如可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,

某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。

(5)反編譯用什麼虛擬機擴展閱讀

反編譯是一個復雜的過程,反編譯軟體有:

1、SWF相關的反編譯程序

Action Script Viewer

第一個也是最強大的商業SWF反編譯工具,同類產品中,它的AS代碼反編譯效果最好,SWF轉Fla工程重建成功率最高。

2、Android相關的反編譯程序

SMALI/BAKSMAL

SMALI/BAKSMALI是一個強大的apk文件編輯工具,用於Dalvik虛擬機(Google公司自己設計用於Android平台的虛擬機)來反編譯和回編譯classes.dex。其語法是一種寬松式的Jasmin/dedexer語法,而且它實現了.dex格式所有功能(註解,調試信息,線路信息等)。

3、python相關的反編譯程序

uncompyle2

uncompyle2可以直接轉化為十分完美的python源碼,並可以將反編譯後的源碼再次生成位元組碼文件。

參考資料來源:網路-反向編譯

Ⅵ Android程序反編譯後為什麼不能部署在模擬器上呢

classes.dex是java源碼編譯後生成的java位元組碼文件。但由於Android使用的dalvik虛擬機與標準的java虛擬機是不兼容的,dex文件與class文件相比,不論是文件結構還是opcode都不一樣。目前常見的java反編譯工具都不能處理dex文件。http://www.ijiami.cn/newsInfo?id=281&v=3

Android模擬器中提供了一個dex文件的反編譯工具,dexmp。用法為首先啟動Android模擬器,把要查看的dex文件用adb push上傳的模擬器中,然後通過adb shell登錄,找到要查看的dex文件,執行dexmp xxx.dex。但是這樣得到的結果,其可讀性是極差的。

Ⅶ 請推薦一款虛擬機軟體

推薦給這位朋友CSM腳本語言編譯器和虛擬機執行器
CSM腳本語言是國人自主研發的,擁有自主知識產權(軟體著作權證書號為2006SR16059)的,是世界上第一款也是迄今為止(2006年10月)唯一的一款嵌入型的,高性能的,工業強度級的,基於對象的,完全強類型的,基於寄存器虛擬機實現的靜態編譯型腳本語言.它是主流編譯型宿主語言(C/C++/ C#/Java)在腳本領域的自然延伸.也代表著這一領域的頂尖設計水平.CSM是C Sharp Minus的簡稱,其語法形式大部分取自於微軟的c#語言,但也有許多不同.而語義上基本與C/C++相同.CSM腳本語言有許多獨特的特性使其成為最優秀的靜態腳本語言之一.具體的介紹如下:
CSM 腳本語言提供與主流編譯型宿主語言(C/C++/C#/Java)相同或相似的語法形式和思維習慣.
CSM 腳本最終生成位元組碼,以二進制的方式嵌入到宿主環境中,這防止了腳本文本本身的直接暴露,保護了編寫者的利益.而且編譯器和腳本源程序無須隨應用宿主程序一同分發.
CSM 編譯器提供精確到某行某列的,詳盡的,完全中文化的編譯出錯信息顯示.
CSM 編譯器內部大量使用了虛擬內存,內存映射文件和嵌入式匯編技術,使編譯速度更加快速.
支持預編譯處理中的條件編譯功能.(由#def / #undef / #if / #ifdef /#endif等預處理指令提供的一組預處理功能).這使腳本程序像VC++那樣可以提供debug和release版本.
天生就是Unicode,所以支持中文的類名,變數名,常量名,函數名,屬性(property)名.
支持sbyte,byte,short,ushort,int,uint,long,ulong整型類型,以及float,double浮點類型,和bool,char等強類型數據.
從形式語法上徹底取消了指針的使用(但是語義上還是保留的),但又不失指針操作的靈活性,CSM腳本語言在這方面作出了不小的努力.
支持類和對象的概念,並同時支持全局常量,枚舉成員,常量成員,靜態成員,實例成員。以及靜態構造方法,靜態析構方法,實例構造方法,實例析構方法,普通靜態成員方法,普通實例成員方法,靜態和實例屬性,以及==和!=操作符重載方法. 可在方法中定義out類型的參數.並支持方法重載(method overload)功能.
支持類中成員的1,2,4,8,16位元組對齊屬性,這為與C/C++宿主語言進行通訊,提供了相同的內存布局結構,能夠以更加直接而快速的方式操控數據.
像Java或C#那樣,支持靜態和實例成員的初始化表達式.
支持各種算術,邏輯,布爾運算,復合運算及強制類型轉換功能.
支持各種語句,包括聲明語句,表達式語句,循環語句,跳轉(goto)語句,以及switch語句,特別是switch語句,採用了和編譯型宿主語言一樣的技術.內部實現通過使用平衡樹建立跳轉表的方式,大大提高比較速度,使得在1000個分支的最壞情況下比較十次,加快了運行速度.
支持靜態和實例方法的回調機制(這在c/c++中被稱為函數指針,而C#中被稱作代理delegate),能提供一定程度上的多態特性,並且通過這種方式可實現Event機制.
支持作用域和局部對象(或稱棧對象)的概念,當局部對象退出其所在的作用域時,將自動調用其析構方法,且調用的次序正好與構造的次序相反,這是最典型的C++特徵.
提供快速高效的運算元功能.
提供局部堆和全局堆對象的分配功能.
對堆對象實行手工的new/delete分配和釋放功能,做到與宿主語言C/C++一致.
有對系統調用的跟蹤功能,一旦程序發生崩潰,能自動給出崩潰的語句點,以及此時的方法調用堆棧.這有點像我們在Windows系統中常見的崩潰對話框.
CSM腳本語言編譯成位元組碼後由CSMachine虛擬機執行,CSMachine虛擬機上執行的匯編語言被稱作是CSMasm匯編語言.而CSMachine虛擬機也是當今獨一無二的強大的虛擬機實現之一:
CSMachine虛擬機是一種完全強類型的32位虛擬機,它支持約2500條虛擬機指令,每條虛擬機指令均以嵌入式匯編語言實現,以求達到最高的運行效率.
由於CSMasm具有龐大的指令集,所以對腳本的逆向工程能起到很強的遏製作用.使得反編譯CSM位元組碼的工作很困難,這在很大程度上保護了腳本編寫者的經濟利益.
利用虛擬內存和內存映射技術對CSM執行映像進行分段,如數據段,代碼段,堆棧段,局部堆,全局堆,對代碼段實施只讀保護,這起到了沙箱保護的功能.
CSMachine的堆棧尺寸可根據實際情況自動而靈活地擴大和收縮,無須象其它的腳本語言那樣時刻去留意是否引發堆棧溢出.
是基於寄存器的實現方式,這種方式比嵌入型棧式虛擬機速度稍快.
是開放式虛擬機設計,只須通過Wrap/Unwrap操作對指針進行坐標系調整,不像封閉式虛擬機那樣必須使用Marshal/Unmarshal進行數據塊復制.
提供載入多個腳本以及一個腳本的多個副本的功能,為腳本程序的團隊化開發和多線程應用提供了強而有力的技術保障.

希望這位朋友能喜歡
參考資料:http://www.27down.com/soft/10/169/2007/2007129961419.html

Ⅷ 什麼叫反編譯

編譯是一種將高級語言翻譯成計算機可是別的低級語言。
反之就是反編譯。
不光只JAVA,可以編譯的高級語言都可以被反編譯。

Ⅸ c++代碼反編譯

進入.Net之後,VC可以用來開發本地的win32程序,還有託管的.Net程序

其中win32程序,比如mfc程序,使用傳統C++語言,是直接編譯為機器指令的,最多反匯編到匯編代碼

但是.net程序,使用微軟為.net平台擴展的C++/CLI語言(.net 1.1時代有一種託管C++語言,是微軟的早期作品,因為穩定性欠佳,已被C++/CLI取代),編譯之後的是.net平台的IL語言,因為IL匯編語言較傳統匯編指令遠為「高級」,通過簡單的反匯編器就可以得到幾乎一摸一樣的源代碼,樓主實際看到的是這種.net程序,這才是通過Reflector能夠看到的反匯編代碼

Ⅹ 用apktool對apk 反編譯怎麼在sdk虛擬機里使用這個項目啊

貌似木有吧

熱點內容
sql能力 發布:2025-02-09 10:43:50 瀏覽:981
編譯framework 發布:2025-02-09 10:42:11 瀏覽:380
五子棋對戰演算法 發布:2025-02-09 10:12:19 瀏覽:712
php樹菜單 發布:2025-02-09 10:04:10 瀏覽:359
linux保存ip 發布:2025-02-09 10:04:10 瀏覽:23
四川霜狼伺服器怎麼樣 發布:2025-02-09 10:02:44 瀏覽:145
Vs中h編譯選項是灰的 發布:2025-02-09 10:01:59 瀏覽:557
安卓43怎麼升級44 發布:2025-02-09 09:51:33 瀏覽:463
美國雲伺服器快還是香港快 發布:2025-02-09 09:34:33 瀏覽:988
怎麼解壓qq文件 發布:2025-02-09 09:18:14 瀏覽:581