reko - 通用反編譯工具

2021-12-29 黑白之道

Reko是一個C#項目,包含機器碼二進位文件的反編譯器。該項目可在GNU通用公共許可證下免費獲得。該項目包括前端,核心反編譯器引擎和後端,以幫助它實現其目標。在撰寫本文時,存在命令行,Windows GUI和ASP.NET前端。反編譯器引擎以單個可執行文件或反編譯器項目文件的形式從前端接收輸入。Reko項目文件包含有關二進位文件的其他信息,有助於反編譯過程或格式化輸出。然後,反編譯器引擎繼續分析輸入二進位文件。


Reko的目標是支持各種處理器體系結構和可執行文件格式的反編譯,許多軟體許可證禁止對其機器代碼二進位文件進行反編譯或其他逆向工程。僅當您具有反編譯二進位文件的合法權限時才使用此反編譯器。

工具下載和安裝
運行下列命令下載Reko:
$ git clone git://github.com/uxmal/reko.git

Windows用戶
在Windows平臺上,首先需要安裝下列依賴組件:
NETFramework 4.7.2下載好MSI文件之後,直接運行安裝程序即可。

非Windows用戶
如果你使用的不是Windows系統,那麼你首先得安裝下列依賴組件:Monov5.14.0
安裝好mono之後,你就可以直接從整合構建伺服器下載原始碼,或直接構建Reko源碼來使用工具了。工具下載好並完成環境配置之後,你就可以使用一款IDE或命令行來構建Reko-decompiler.sln文件了。如果你習慣使用IDE,推薦你Visual Studio 2017或MonoDevelop v5.10及以上版本。如果你習慣使用命令行,你可以使用下列命令:
msbuild Reko-decompiler.sln

工具使用
在Windows上,安裝完成後會在開始菜單裡創建一個「Reko Decompiler」快捷方式,你可以直接點擊圖標啟動Reko客戶端。在非Windows系統上,你需要使用下列命令運行WindowsDecompiler.exe:mono WindowsDecompiler.exe
運行命令行客戶端
在Windows上,假設你已經把Reko的安裝目錄寫到了PATH環境變量裡,那你就可以直接在命令行中輸入下列命令來使用工具了:decompile some_binary_file.exe

在非Windows平臺上,假設你已經把Reko的安裝目錄寫到了PATH環境變量裡,那你就可以直接在命令行中輸入下列命令來使用工具了:mono decompile some_binary_file.exe

參考來源及下載地址:https://github.com/uxmal/reko

相關焦點

  • C#開源項目-二進位文件的反編譯器
    Reko源碼和工具的下載https://github.com/uxmal/reko
  • 常用java反編譯工具匯總
    以下是個人常用的幾種java反編譯工具,個人比較推薦使用IDEA自帶的反編譯組件,直接調用IDEA的java-decompiler組件進行反編譯,也方便進行調試分析。部分工具不僅限於反編譯,其他功能請自行摸索。蘿蔔青菜,各有所愛,各位依據自身情況選擇工具。
  • apk反編譯之工具篇
    會後,突然說:「有沒有遊戲外掛,我最近在玩刀塔傳奇呢?」於是,buder領悟了。。。。我們打開res文件夾便會發現軟體的所有圖片資源一覽無餘(๑•̀ㅂ•́)و✧資源配置文件(AndroidManifest.xml)也在呦,我們雙擊打開發現是亂碼
  • 7款開源Java反編譯工具
    今天我們要來分享一些關於Java的反編譯工具,反編譯聽起來是一個非常高上大的技術詞彙,通俗的說,反編譯是一個對目標可執行程序進行逆向分析,從而得到原始代碼的過程
  • 介紹一個超好用的反編譯工具
    最近和同事在排查問題的過程中,需要用到反編譯工具,因為不同環境表現的場景不一樣,雖然通過
  • 7款開源Java反編譯工具【乾貨】
    今天來分享一些關於Java的反編譯工具,反編譯聽起來是一個非常高上大的技術詞彙,通俗的說,反編譯是一個對目標可執行程序進行逆向分析
  • Java代碼的編譯與反編譯
    二、什麼是反編譯計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出原始碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
  • APK反編譯步驟
    但是我們通過網上提供了一些工具,還是可以將apk進行反編譯的,apk反編譯之後,我們就可以看到開發這個應用使用的資源文件(圖片)、layout、樣式、相關的實現代碼等,apk反編譯也算是Android開發中一個比較實用的技巧吧,當我們對別人開發好的應用感興趣時,我們就可以通過這種技術手段將別人打包好的apk進行反編譯,繼而可以看到我們感興趣的內容,(註:反編譯不是讓各位開發者去對一個應用破解搞重裝什麼的
  • 反編譯apk教程下篇—利用軟體進行反編譯
    昨天給大家寫了反編譯apk的準備工作,果然不出我所料,閱讀量比平時低了將近一半,也許是本人文筆不好,也有可能是教程太枯燥,導致看的人很少。但是,咱不能虎頭蛇尾,所以我還是決定含淚把這個教程寫完。昨天已經給大家寫了如何配置java環境,今天就進入正題,說下如何反編譯apk。其實反編譯並沒有想像中的那麼難,我用的也是網上大神提供的工具。
  • 工具推薦:.NET反編譯、調試神器dnSpy!
    這裡分享一下工作上經常會用到的工具,這款工具可以反編譯並運行調試已經部署好的引用程序,不管是.net framework還是.net core的都可以進行操作同時也能看到IL指令集。二、詳細內容在git上下載好程序之後  解壓之後能看到dnSpy.exe和dnSpy-x86.exe,分別用來解析x64和x86的應用程式。
  • 介紹一款好用的java反編譯工具 - jd-gui
    二方包是公司內部其它部門的產出物,雖然折騰些但協調下一般還是能查看到源碼的;三方包如果是開源的項目,也能找到源碼;但對於非開源項目的 jar 包,如果想查看源碼,就不得不用到反編譯工具了。在此詳細介紹下 jd project:Java Decompiler 項目 」旨在開發一些工具,以便反編譯和分析Java 5以及更高本的Java的「字節代碼」。
  • dnSpy(Net反編譯工具) 6.1.7 綠色版
    dnSpy是一款相當強大的net反編譯工具,非常好用,界面和VS差不多,用起來也很順手。
  • APK反編譯及防護技術
    本文我們主要一些android反編譯與防護技術方法。(二)常見的反編譯工具下面我們一看看有哪些常見的Android APK反編譯工具: Apktools:輕鬆鬆反編譯apk,解析出資源文件,xml文件,生成smali文件,還可以把修改後的文件打包生成apk。
  • eclipse安裝JAVA反編譯插件
    ,下面是我常使用的一種安裝JAVA反編譯工具的方法,操作比較簡單,不過時間長了也容易忘記,還是在此小記一筆吧!預設的反編譯工具為JD-Core,JD-Core更為先進一些,支持泛型、Enum、註解等JDK1.5以後才有的新語法。首選項配置選項的含義如下所示:      9-1.重用緩存代碼:只會反編譯一次,以後每次打開該類文件,都顯示的是緩存的反編譯代碼。
  • .net反編譯的九款神器
    3、de4dot     de4dot是一款C#編寫的基於GPLv3協議的一個開源的.net反混淆脫殼工具,是目前.net下非常不錯的一款反編譯工具。 4、JustDecompile       JustDecompile是Telerik公司推出一個免費的.net反編譯工具,支持插件,與Visual Studio 集成,能夠創建Visual Studio project文件。
  • Android反編譯從零到一
    本篇來自 OpenDreamer 的投稿,分享了反編譯的相關知識,一起來看看!希望大家喜歡。該篇目的是讓讀者了解反編譯的基本過程,可以完全沒有基礎,也不用了解smali語法。文章裡面demo提供所有 需要使用的apk以及相應的修改代碼。只需傻瓜式的模仿就能夠學會。反編譯與防反編譯的0到1系列主要用於增加反編譯技術棧,避免一些低級的錯誤讓軟體被有心者破解。因此後續還會有smali語法的介紹和smali的修改。 在.so文件中添加籤名驗證。
  • onekey-decompile-apk 反編譯apk
    一步到位反編譯apk工具(onekey decompile apk)v1.0.1 2012-10-24
  • Android Apk的反編譯和加密
    APK的反編譯。二、反編譯必備工具及使用  Android工程文件主要有資源文件和原始碼組成。而為了查看資源文件需要藉助一個工具,本文使用的是apktool工具進行反編譯,經過編譯後能夠正確查看XML文件和其他的非XML的資源文件,這對於漢化而言有著巨大的意義。
  • dnSpy v6.1.7,NET程序集反編譯及調試工具
    dnSpy,堪稱.NET反編譯神器。
  • Python 中如何安全地進行編譯和反編譯?
    那有沒有一種工具能把我們寫的代碼和依賴庫以及編譯環境打包到一起呢?答案是肯定的,Pyinstaller就是一款不錯的工具,可以一鍵把你的代碼打包成exe文件。下面就先來聊一聊pyinstaller的使用方法。一、用Pyinstaller打包python代碼1.