java編譯器ida
Ⅰ java 程序問題
private static int ida=0;//ida是什麼? 這是以個似有的靜態整形變數。
private int id; //id又是什麼?如果這行不要了,為什麼輸出的ida就不能遞增呢? 這和上面的都是全局變數。全局變數可以不賦初始值,系統會默認賦值。 因為是全局變數,整個類都能使用,所以它的值變了,整個類的值都會變,如果這行不要了,那你的程序就會報錯,會提示找不到id這個成員,所以它是必須有的。
this.id = ida++; //這行也是關鍵的,我想大家知道我的意思! 這個是遞增,比如你的ida值是1,下次就是2. 然後把它的結果賦給this.id!
你多敲代碼就會理解
Ⅱ 最好的java反編譯工具是哪個
jd-gui好
計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。JD分為JD-GUI、JD-Eclipse兩種運行方式,JD-GUI是以單獨的程序的方式運行,JD-Eclipse則是以一個Eclipse插件的方式運行。
Ⅲ 有沒有一種編譯器能把程序倒變成計算機語言呢
要看是什麼語言。c#,java的話可以用reflector和eclipse的反編譯插件反編譯,python等腳本語言也可以。如果是C/C++的話,有些實驗性的反編譯器,基本不準,但是可以用ollydbg,IDA等反匯編器查看其匯編代碼。
Ⅳ 為什麼Java反編譯後帶有匯編代碼
有一定區別~ 一般編譯型語言的程序叫反編譯~ 解釋型語言的程序叫反匯編~ 用IDA的一個插件可以做到反匯編一些程序的到源代碼的~
Ⅳ 如何設置ida的匯編顯示格式
1 找到指令偏移地址,然後再數據視圖中修改 2 或者找到偏移地址,用2進制編譯器(比如W... 數據的文件偏移,然後用winhex/ue等十六進制編輯 也可以在ida中直接修改 如何在ida
Ⅵ 這是什麼代碼怎麼把程序轉成這種代碼
這是一個程序。
可以用 DEBUG,把它編譯成 COM 文件,然後,就可以執行這個程序。
怎麼把程序轉成這種代碼?
凡是 COM 類型的程序,都可以轉換成這種代碼。
需要用 DEBUG 來轉換。
Ⅶ ida菜鳥問題
ida無法修改,你可以用ultraedit修改,用查找功能找到相應位置,然後直接修改二進制代碼。
當然你要知道jz指令的二進制代碼。
另外,要注意查找時不要用帶有絕對地址的指令的二進制代碼進行查找,因為這些絕對地址ida載入時和程序代碼中的不一樣,一般相差一個固定的值。
Ⅷ ida 分析 32位程序 需要使用32位 ida嗎
DLL 屬於可執行文件中的一類,又稱為動態鏈接庫,不能直接用DEBUG載入,一般由應用程序因使用該庫中的函數,而由操作系統在應用程序載入的同時被載入入特定地址,這個地址一般是DLL在鏈接時指定的。當DLL被載入到運行空間,根據輸出函數表,可以得到各個函數的入口地址,然後用DEBUG在各個入口下斷點,調用該函數時DEBUG將跟蹤進入該函數,從而實現反匯編。
反匯編屬於逆向工程,逆向工程的主要手段有兩大類,其中一類是動態分析,另一類是靜態分析。
前面提到的方法屬於動態分析,由DEBUG實現反匯編,該方法不容易得到完整的代碼,一般只能形成一段一段獨立分散的代碼,同時由於DEBUG的局限性,反匯編的代碼質量多不高,生成的代碼不能直接使用,原因在於DLL在載入時若沒有載入到指定地址空間,操作系統將對代碼進行重定向,所以DEBUG只能得到重定向後的代碼,這類代碼必須修改每一個重定向點,才能形成可執行代碼。作為WINDOWS32位操作系統, OLLYDBG是最為優秀的調試、跟蹤、反匯編工具,多窗口運行,可以方便的通過窗口操作完成各類動作,而不需要像一般DEBUG那樣由命令行來完成,OLLYDBG還有許多一般調試器不具備的功能,同時由於每一代高手不斷的修改,使其具有多種功能,同時帶來的就是混亂,誰也不知道有多少版本,誰也不清楚每個版本到底增加了什麼功能,但就這樣,也是瑕不掩疵, OLLYDBG任然是DEBUG中最強大,最好使用的。
靜態分析和動態分析不同,靜態分析直接打開原程序,載入而不運行,然後直接分析載入的代碼。目前靜態分析工具,最強大的當屬IDA,IDA支持幾乎所有種類的匯編語言。
IDA載入應用程序有許多選項,可以選擇完整的載入整個程序,也可以選擇載入程序的某個塊,一般可選擇的是否載入文件頭、資源表、輸入表、輸出表等等。
IDA還支持調試,也就是說,當你在進行反匯編過程時,可以直接使用IDA來調試跟蹤,以分析代碼的動態執行情況,不過就動態跟蹤來說,OLLYDBG更為強大。
IDA反匯編的正確率和代碼的復雜程度有關,對於正規開發的代碼,尤其是如果能夠獲得源程序的調試文件,即所謂的PDB文件,IDA可以讀取PDB文件中的信息,使得反匯編的效率和准確度大為提高,生成的代碼甚至比源代碼易讀。IDA將反匯編生成的結果存入IDB文件中。當你確認反匯編的結果達到你的要求,可以讓IDA輸出匯編源代碼,IDA也提供其他格式的輸出,例如HTML文件,便於用戶閱讀。樓主主要是用於分析DLL文件,一般來說這類文件更適合做靜態分析,所以推薦使用IDA來進行。
IDA對於分析那些加殼或含有大量花指令、混淆代碼、垃圾代碼的程序,反匯編的正確率會大為下降,因為IDA無法正確的確認當期位置上的數值是屬於代碼,還是屬於數據,是普通C字元,還是DELPHI的字元串,還是UNICODE字元串,是結構數據還是數組還是類表(DELPHI生成的代碼中含有大量的類表)等等。遇到這種情況,就需要使用者掌握許多技巧,例如可以通過使用者對當前數據的認識,指導IDA如何處理當前的數據。對於大批量的,具有某些規律的數據,IDA還提供了腳本語言(文件尾位idc),通過對腳本的執行來指導IDA如何進行反匯編。對於更為復雜的情況,例如程序是自解壓運行的,這時IDA就沒有任何能力來進行正確的分析,通常都會用OLLYDBG動態跟蹤,等程序完成自解壓後從內存中將解壓後的代碼完整的挖下來形成文件,再由IDA進行靜態分析。
對於成功進行反匯編的代碼,IDA根據代碼的入口、調用、轉移等指令,可以為使用者提供各種格式的程序的流程圖,IDA提供許多格式由用戶選擇,便於用戶理解程序的結構。
匯編語言的科學定義,其實就是介於機器碼(各種01)和高級語言(如C)之間的一種語言。你用C語言寫一段程序,其實要在機器上運行的話,機器是不懂的,要經過編譯器、匯編器編譯,變成匯編,最終再變成機器碼,機器根據這些機器碼的01可以控制硬體電路完成你程序想執行的操作。
Ⅸ IDA反編譯,有段代碼意義不清楚,望大神解答,有的函數結束後會有一段如下圖的灰色地址代碼
結束函數 java_common_JNILib_xw 這是日誌輸出列印。正常的,沒有報錯。
Ⅹ IDA Pro權威指南的內容簡介
《IDA Pro權威指南》內容簡介:IDA Pro(互動式反匯編器專業版)是應用最廣泛的靜態反匯編工具,在IT領域有著舉足輕重的地位,但其文檔資料一直都不夠完善。在IDA Pr0創建者Ilfak的協助下問世的這《IDA Pro權威指南》,完美地彌補了這一缺憾。C卜¨1s的理論被業界公認為是權威且令人信服的。而他的模擬器也是公開發布的IDA插件中最棒的一款。
《IDA Pro權威指南》首先描述反匯編理論、逆向工程的基本信息}111DA Pro的背景知識,然後系統地介紹IDA的基本布局和功能、復雜數據結構的處理、交叉引用與繪圖功能,以及如何在非Wiridows平台上運行IDA。書中由淺入深地介紹了IDA的配置、F LlRT技術、IDA類型庫的擴展以及一些IDA限制。難得的是。《IDA Pro權威指南》還探討了IDA的可擴展性。涉及IDA腳本、SDK、插件、載入器模塊和處理器模塊。最後闡述了IDA在逆向工程中的實際用法,討論了各種編譯器的區別、模糊代碼分析和漏洞分析、IDA插件以及IDA調試器。