反編譯文件
⑴ 反編譯之後的文件在哪
相信很多開發者都知道反編譯APK,正常情況下,如果我們想要看看xml,看看java源代碼,是看了的。用壓縮工具解壓apk得到的文件也都是二進制文件,打開後全是亂碼。
開發者能夠用的也僅僅是圖片資源,這往往也滿足不了開發者的需求。
下面我就給大家詳細講解一下Android-apk的反編譯步驟:
注意:反編譯的前提是:開發者沒有使用proguard(java代碼混淆的工具)。
⑵ 反編譯後得到的是什麼文件
反編譯得到源文件,實際就是一行行指令代碼的文本文件。
理論上反編譯可以得到任何語言的源文件,但從實現上通常只能得到匯編代碼。其中的欄位、標號等的定義都是反編譯程序自己定義的。如果同設計者編寫的代碼比較,肯定是看起來很不相同。
⑶ EXE文件反編譯成源碼
EXE文件可以通過步驟來反編譯成源碼,具體步驟如下:
1、在網路上搜索下載反編譯工具ILSpy,ILspy是一個開源的.net反編譯軟體,使用十分方便。解壓後如圖,雙擊.exe文件打開解壓工具。
(3)反編譯文件擴展閱讀:
反編譯也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(比如可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。
exe是編譯好的程序文件 要看結構就得反編譯 但是通常不能把可執行文件變成高級語言源代碼,只能轉換成匯編程序。 所以要要看結構不止要會反編譯 還得精通匯編語言。
⑷ 用什麼可以反編譯dat文件
工具/原料
安裝完整的EDIUS 6
方法/步驟
1、直接導入DAT文件到EDIUS素材庫揮著時間線的時候,是不被識別的,因為DAT的視頻編碼是不被EDIUS識別的。
2、在DAT文件的文件夾裡面,對這個DAT文件進行復制粘貼命令,復制出來另外一個文件供我們使用。
3、修改文件的後綴名字為mpg,系統會提示格式變化,我們點擊確定即可。
4、把新修改了名字的 MPG文件導入EDIUS,EDIUS就會識別這個MOG文件,我們就能對其進行編輯了。
5、注意:DAT文件是以前我們常用的VCD格式的視頻,由於當時的技術原因,畫面尺寸是352X288,是清晰度很低的視頻。我們在編輯的時候一定要注意不要放大畫面。
6、導入EDIUS的時候,因為現在我們的格式一般是高清,EDIUS會自定放大DAT文件,以適應新的畫面尺寸,所以導入之後要回復其百分比,以免畫面失真。
⑸ 如何利用反編譯軟體打開並修改class文件
沒辦法完全反編譯所以的class文件為java文件的,因為java中編譯具有不可逆性。
但是可以將每個文件反編譯,之後直接放到相應的包路徑下來進行重新編碼。
第一步:通過附件的「jd-gui」打開jar文件;
第二步:將每個class文件的內容,粘貼到一個新建的java工程中(包路徑必須相同);
第三步:修改需要修改的類,之後如果運行沒問題的話,直接導出為jar包即可。
備註:其實此過程中出錯的幾率還是很大的,如果能夠實現百分百編譯的話,那麼所以的項目也就間接開源了,這肯定是不現實的。
⑹ 如何反編譯IMG(內核)文件
先介紹一下編譯核心的選項,希望能對大家消除對內核的神秘感有所幫助。
1.代碼成熟等級
2..處理器類型和特色
3.對模塊的支持
4.基本的選擇
5.即插即用支持
6.塊設備支持
7.網路選項
8.電話支持
9.SCSI設備的支持
10.I2O介面適配器
11.網路設備支持
12.配置業余無線廣播
13.紅外支持
14.ISDN的文件系統
15.舊型的光碟機類型(非IDE界面的光碟機)
16.字元設備
17.USB支持
18.文件系統
19.控制台驅動
20.音效卡驅動
21.Kernel hacking
第二節 內核版本
由於linux的源程序是完全公開的,任何人只要遵循GPL,就可以對內核加以修改並發布
給他人使用。Linux的開發採用的是集市模型(bazaar,與cathedral--教堂模型--對應
),為了確保這些無序的開發過程能夠有序地進行,Linux採用了雙樹系統。一個樹是穩
定樹(stable tree),另一個樹是非穩定樹(unstable tree)或者開發樹(developm
ent tree)。一些新特性、實驗性改進等都將首先在開發樹中進行。如果在開發樹中所
做的改進也可以應用於穩定樹,那麼在開發樹中經過測試以後,在穩定樹中將進行相同
的改進。一旦開發樹經過了足夠的發展,開發樹就會成為新的穩定樹。開發數就體現在
源程序的版本號中;源程序版本號的形式為x.y.z:對於穩定樹來說,y是偶數;對於開
發樹來說,y比相應的穩定樹大一(因此,是奇數)。確定是以″ root ″的身份簽入,
然後cd 到 /usr/src 。uname -r 這個指令將會顯示版本。內核版本的更新可以訪問<h
ttp://www.kernel.org/>。
第三節 編譯原因
Linux作為一個自由軟體,在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂了
舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的
系統度身定製一個更高效,更穩定的內核,就需要重新編譯內核。
通常,更新的內核會支持更多的硬體,具備更好的進程管理能力,運行速度更快、更穩
定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是
Linux使用者的必要操作內容。
為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主
要有下面四個考慮:
---自己定製編譯的內核運行更快(具有更少的代碼)
---系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)
---不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞
---將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些
以上是針對成熟的Linux套件如Redhat Linux而言,我的目的是為建造嵌入式Linux操作系
統做准備,也是必由之路。
第四節 准備工作
第一部分 新版本內核的獲取和更新
Linux內核版本發布的官方網站是< http://www.kernel.org/>,國內各大ftp上一般都可
以找到某些版本的內核。新版本的內核的發布有兩種形式,一種是完整的內核版本,另
外一種是patch文件,即補丁。完整的內核版本比較大,比如linux-2.4.0-test8.tar.b
z2就有18M之多。完整內核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,二者分別
是使用gzip或者bzip2進行壓縮的文件,使用時需要解壓縮。patch文件則比較小,一般
只有幾十K到幾百K,極少的會超過1M。但是patch文件是針對於特定的版本的,需要找到
自己對應的版本才能使用。
編譯內核需要root許可權。把需要升級的內 拷貝到/usr/src/下(下文中以2.2.16的內核
的linux-2.2.16tar.gz為例),命令為
#cp linux-2.2.16tar.gz /usr/src
先查看當前/usr/src的內容,注意到有一個linux的符號鏈接,它指向一個類似於linux
-2.2.14(對應於現在使用的內核版本號)的目錄。首先刪除這個鏈接:
#cd /usr/src
#rm -f linux
現在解壓下載的源程序文件。如果所下載的是.tar.gz(.tgz)文件,使用命令:
#tar -xzvf linux-2.2.16tar.gz
如果下載的是.bz2文件,例如linux-2.2.16tar.bz2,使用命令
#bzip2 -d linux-2.2.16tar.bz2
#tar -xvf linux-2.2.16tar
現在再來看一下/usr/src下的內容,發現現在有了一個名為linux的目錄,裡面就是需要
升級到的版本的內核的源程序。還記得那個名為linux的鏈接么?之所以使用那個鏈接就
是防止在升級內核的時候會不慎把原來版本內核的源程序給覆蓋掉了。現在也需要同樣
處理:
#mv linux linux-2.2.16
#ln -s linux-2.2.16 linux
如果還下載了patch文件,比如patch-2.2.16,就可以進行patch操作(下面假設patch-
2.2.16已經位於/usr/src目錄下了,否則需要先把該文件拷貝到/usr/src下):
#patch -p0 < patch-2.2.16
第二部分 准備主機板和相關硬體的說明手冊
其實也不用太詳細,只要知道您的硬體是屬於哪一類型就行了。例如:有一張SCSI卡,
那就要知道這張卡的名字,有一台cd-rom,就要知道這台光碟機是哪一種牌子的,是否為標
準的IDE/ATAPI界面,還是另有專屬介面卡呢?或者,主機版是否有支持Triton晶元(通
常586以上的電腦常有),這些信息能幫助我們,使得設定變得清楚且容易。
因此,不管您有什麼使用手冊,准備好吧。即使現在不用,將來還是會用到的(設X-w
indow system時要顯示卡的手冊)。
第三部分 檢查音效卡的IRQ設定和其種類
如果配有一張音效卡,除了要知道卡的種類外(例如 Sound Blaster)還需要知道這張卡
的IRQ地址。一般來說,盧卡的IRQ地址是5或7而IO地址則為220。DMA則l,不過,有時不
同的音效卡可能會有不同的設定。因為稍後的選項里,就會要填入這些數字。
第四部分 編譯核心的硬體需求
在編譯核心時,確定您的RAM最好在8MB以上, 否則可能會很慢而且問題會很多,記得查
看swap有沒有打開(用free指令)。此外,最好不要超頻,不然很有可能會發生signal
11的錯誤,使得編到一半的核心停了下來,其實編譯核心就好比編譯程序一樣,只是因
為構成核心的程序太多了,因此我們能小心盡量小心。
⑺ 請教,如何反編譯dll文件
如何反編譯dll,如何將反編譯的文件生成dll。
反編譯dll
安裝vs,最好是最新版本的,如果要反編譯的dll使用新版本創建的,也能反編譯成功。下面是詳細的反編譯步驟。
1.打開C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe,這個程序是微軟提供的反編譯軟體,打開要反編譯的dll。
2.然後選擇文件-轉儲,這時會彈出轉儲選項的對話框(一般按照默認即可),設定好以後選擇轉儲位置。
3.完成後會生成以res和il結尾的文件,還有可能包含以.resources結尾的文件。這樣我們就將dll反編譯完成。根據需要修改il文件。
如何反編譯.resources文件呢
選擇開始-所有程序-vs安裝文件夾-vs tools-開發人員命令提示符,然後在彈出的dos窗口下輸入resgen 1.resources 1.resx,這樣resources文件變轉化成可以編輯的resx文件。
組合dll
先說如何將resx文件組合成resources文件
選擇開始-所有程序-vs安裝文件夾-vs tools-開發人員命令提示符,然後在彈出的dos窗口下輸入resgen 1.resx 1.resources,這樣resx文件變轉化成可以編輯的resources文件。
將反編譯後的文件組合成dll文件
選擇開始-所有程序-vs安裝文件夾-vs tools-開發人員命令提示符,然後在彈出的dos窗口下輸入ilasm /dll/resource=1.res 1.il,注意res文件和il文件位置不可以改變,這樣就生成了想要的dll。
當然如果對生成的dll不放心,可以使用.net Reflector進行查看。希望你能成功
⑻ 怎樣反編譯程序
高級語言源程序經過 編譯 變成可執行文件,反編譯就是逆過程。
但是通常不能把可執行文件變成高級語言源代碼,只能轉換成匯編程序。
計算機軟體反向工程(Reversepengineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
反編譯是一個復雜的過程,所以越是高級語言,就越難於反編譯,但目前還是有許許多多的反編譯軟體: VB: VBExplorer 、VB反編譯精靈和VBRezQ;只能反編譯界面圖像,好像代碼不能完全反編譯 JAVA: JAD ;java的反編譯比較常見,所以反編譯比較完全, 將class文件反編譯成java文件也是有可能的 C++ : eXeScope Dephi: DEDE c#:Reflector 易語言:E-Code Explorer.exe(易格式可執行文件分析器)。
⑼ 如何反編譯hex文件
直接使用51反匯編軟體或模擬,就可以實現;
Hex文件其實是機器指令碼,其中包括操作碼,操作數,以及地址等等內容,而的匯編語言指令代表的就是這些機器碼,匯編就是將匯編語言編譯成機器碼的過程,反匯編就是將機器碼變成指令的過程。
比如,C語言的編譯先譯成匯編再譯成機器碼,反匯編則反之。