反編譯SO文件到C源碼

2020-12-11 江之眼

1、下載IDA Pro,我用的是6.8的版本,解壓後,有idaq.exe、idaq64.exe兩個可執行文件,分別用於反編譯32位、64位的so的so文件。

IDA工具

2、打開IDA,將需要反編譯的so文件拖到IDA中,在彈出的」load a new file」窗口中, 選擇」ELF for ARM(Shared object)[elf.ldw]」選項,然後再點擊ok按鈕。如圖所示:

load a new file

3、雙擊你要反編譯的方法名,然後按F5,親測idaq64.exe打開32位的so文件,按F5無效。按F5後彈出Pseudocod-A窗口,就可以看到該方法的源碼了,如圖:

反編譯結果

相關焦點

  • Spring源碼解析之源碼的下載編譯
    老粉應該知道了,筆者最近剛上架技術生涯的第一本書《Java源碼模擬面試解析指南 》。於是趁著年輕時還有時間修福報,準備再做一個 Spring源碼面試指南。相比於之前是直接閱讀引入jar包的方式來研讀 JDK 源碼,由於框架源碼的複雜性及強可插拔性,一般將源碼編譯到本地,由此便可以邊研讀源碼邊加自由地注釋,方便調試程序等。首先進入 spring 官方倉庫,fork 一份倉庫到自己帳號下,方便自己提交。
  • 教你如何在Mac系統下編譯Android系統的源碼
    本篇來自 qqdds 的投稿,主要講解了如何在Mac系統下編譯Android源碼,希望大家喜歡。這就導致了對於很多的問題其實是知其然不知其所以然,所以從現在開始我下定決心開始學習Android的源碼。那說到源碼就必須提到編譯源碼這件事情。
  • LayaAir示例項目源碼編譯運行指南
    由於一些開發者不知道如何去使用和編譯Github上的源碼示例,本篇將引導開發者去使用Github上的DEMO。這對於引擎初學者,快速了解引擎API與引擎示例效果會有著幫助。一、克隆 LayaAir源碼項目到本地先安裝好Git環境,不會的可以自行百度搜索一下,這裡就不展開了。
  • c編譯器so easy,gcc c編譯器生成、使用動靜態庫
    如果安裝在其他目錄,需要將其添加到/etc/ld.so.cache文件中,步驟如下:a.編輯/etc/ld.so.conf文件,加入庫文件所在目錄的路徑b.運行ldconfig,該命令會重建/etc/ld.so.cache文件第二章
  • hive之編譯源碼
    使用maven來進行源碼,真的是靠運氣,特別是你網絡很差的情況下,再特別是你沒有本地庫的時候,靠運氣吃飯。。。
  • qt下保存文件,如果文件存在直接覆蓋源碼詳解
    編譯錯誤嚴重性 代碼 說明 項目 文件 行 禁止顯示狀態錯誤 C2065 「file」: 未聲明的標誌符 QtCoin3D_Robot d:\nhy\source\vs2017_qt590\qtcoin3d_robot-master1\qtcoin3d_robot\qtcoin3d_robot.cpp
  • C代碼與C++互相調用的小技巧
    由於C++編譯器默認都是按照C++的編譯方式來對源文件進行編譯,這樣C語言文件也會直接採用C++編譯。 對於底層的驅動等都會以使用C語言編寫的DLL等給出來,然後從中導出函數給C或C++的模塊來進行訪問,所以還是需要C++語法中能夠標識出來給編譯器,哪些需要採用C++方式編譯,哪些需要採用C方式編譯。 那麼這個編譯區分就由extern "C"來完成,下面我們就以一個例子看看如何使用的。
  • 零時科技 | 智能合約安全系列文章之反編譯篇
    本此系列文章我們也以智能合約攻防為中心,來刨析智能合約攻防的要點,包括合約反編譯,CTF常見題型及解題思路,相信會給讀者帶來不一樣的收穫。由於CTF比賽中的智能合約原始碼沒有開源,所以就需要從EVM編譯後的opcode進行逆向來得到原始碼邏輯,之後根據反編譯後的原始碼編寫攻擊合約,最終拿到flag。
  • 淺談內核的Makefile、Kconfig和.config文件
    本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫Linux內核源碼文件繁多,搞不清Makefile、Kconfig、.config間的關係,不了解內核編譯體系,編譯修改內核有問題無從下手,自己寫的驅動不知道怎麼編進內核,不知道怎麼配置內核,這些問題都和Makefile、Kconfig
  • C/C+編程筆記:如何在電腦上手動配置C+編譯環境?不懂收藏
    通過編輯器創建的文件通常稱為源文件,源文件包含程序原始碼。C++ 程序的源文件通常使用擴展名 .cpp、.cp 或 .c。 在開始編程之前,請確保您有一個文本編輯器,且有足夠的經驗來編寫一個電腦程式,然後把它保存在一個文件中,編譯並執行它。
  • 從威綸通觸控螢幕上傳程序,並反編譯,你會嗎?
    第一步:我習慣用交換機把PLC和觸控螢幕都連到我電腦上,如下圖所示:第二步:常規操作,把觸控螢幕、PLC、電腦的IP位址都設在同一網段:我的設置,觸控螢幕的IP位址為192.168.2.5、PLC的IP位址為192.168.2.1、電腦的IP位址為192.168.2.25。
  • 「C語言從入門到入土」必備C語言基礎筆記整理
    不可能自主認識到本身錯誤浪費時間很正常。無論跟它說什麼,都得用它能理解的方式做出充分的說明。反正,都是你的錯。二、第一個C程序#include<stdio.h>int main(){printf("hello world");return 0;}//以上是源文件源文件怎樣變成可執行文件?
  • 根據去中心化交易所源碼文件規範系統開發流程
    根據三峽論壇的小編了解到,軟體開發對源碼文件的依賴性是相對較強的,特別是針對數字貨幣交易的系統平臺,如果沒有值得信賴的可靠源碼文件,整個開發流程就難以規範,不過在經過了持續發展以後,如今對於去中心化交易所源碼文件的需求還是可以得到相應滿足的,在此基礎上對於整個系統開發流程也會起到規範作用
  • GCC 並行編譯大型原始碼文件功能的改進
    雖然 GNU Make 和其他構建系統可以很好地進行擴展以並發編譯大量文件,不過 GCC 自身也一直在讓 GCC 的更多工作在編譯大型原始碼文件時能夠並行執行
  • 搭建C語言開發環境,其實只需要兩個工具就行了!
    工欲善其事必先利其器,對於c語言學習來說,重要的不是看了多少本書,而是打了多少行代碼。在手打代碼之前,我們當然要先搭建自己的開發環境,對於c語言的學習來說,其實只需要兩個工具就行了,那就是文本編輯器和c編譯器了。
  • Git 源碼禁止使用 C 標準庫中容易被錯用的函數
    Git 項目的源碼禁止開發者使用 C 標準庫中的某些函數,原因是這些函數太容易被誤用,就算使用得當也很容易出問題。