1. 程式人生 > >關於iOS開發中反編譯的那些事兒

關於iOS開發中反編譯的那些事兒

現在僅討論程式碼層面的反編譯

1、反編譯工具

(1)class-dump

主要用來反編譯一個庫檔案或者app的方法名、屬性等宣告(即.h檔案,強大的是反編譯出來的.h不僅僅包含標頭檔案中的宣告,.m中的function方法名稱也同樣能夠反編譯出來)。class-dump的安裝在前文中有詳細描述,這裡不再贅述。

(2)IDA

主要用來反編譯庫檔案的實現(當然方法宣告同樣能夠反編譯出來,用class-dump主要是更加形象,有針對性),這個反編譯工具非常強大能夠將函式的實現及邏輯關係、流程統統顯示出來,弊端就是反編譯出來的內容為組合語言,需要一定彙編基礎的才能看懂。比較頭疼。

(3)Hopper Disassembler

與IDA功能相似,主要功能都是反編譯檢視方法的實現,這個軟體的功能相對於IDA來說,可讀性要強很多,反編譯出來的內容類似於彙編與OC的執行時的結合體,相對比較容易看出方法的具體實現。

筆者個人比較喜歡用1和3來完成反編譯過程。

各個軟體的下載地址:

(1)class-dump  

(2) IDA   

(3)Hopper

相關推薦

關於iOS開發編譯那些事兒

現在僅討論程式碼層面的反編譯 1、反編譯工具 (1)class-dump 主要用來反編譯一個庫檔案或者app的方法名、屬性等宣告(即.h檔案,強大的是反編譯出來的.h不僅僅包含標頭檔案中的宣告,.m中的function方法名稱也同樣能夠反編譯出來)。class-dump的安

iOS開發遇到的那些

最近重新拿起了iOS的開發,使用OC和Swift混編,碰到了一些比較棘手的問題,希望大家以後不再入坑。 這篇文章的內容包含: UITableViewCell的真實結構 在iOS的環境下使用正則表示式 如何優雅的隱藏tabbar 如何修改navigat

編譯那些事兒(二)—列舉的編譯

說明:下面的反編譯結果使用“http://download.csdn.net/detail/wangshuxuncom/6841823”處的反編譯工具反編譯的。一、不含有抽象的方法原始碼如下:import java.util.Arrays; import java.util.

Java程式碼的編譯編譯那些事兒

程式語言 在介紹編譯和反編譯之前,我們先來簡單介紹下程式語言(Programming Language)。程式語言(Programming Language)分為低階語言(Low-level Language)和高階語言(High-level Language)。 機器語言(Machine Language)

iOS開發可以節省50%編譯等待時間的解決方案

作為開發者,我們是不是經常在等待Xcode完成build的過程中,感覺iOS程式需要編譯很久,有時候,老闆迫切希望給他的手機裝上最新的版本,然後馬上出門見客戶,這個時候,你肯定是特別希望,Xcode編譯的時候,能夠快一點,我記得有一次,我就因為這個,而被老闆記住了。所以,

談談Android開發的Gradle那些事之不同BuildType編譯出不同版本號的apk

今天我們要來談談 如何讓不同的BuildType編譯出不同的版本號 沒搞錯吧?這有什麼用??為什麼會有這樣的需求??? 不想當產品的QA不是一個好RD RD不只是PM的RD, QA也總能在非常時期提出一些非常獨(坑)特(爹)的需求,而我們只能說沒問題!(: 男人怎

iOS開發地圖與定位

視圖 編寫 aps 簡單 -a 第三方 span spa margin   不管是QQ還是微信的移動client都少不了定位功能,之前在微信demo中沒有加入定位功能,今天就寫個定位的小demo來了解一下定位和地圖的東西。地圖和定位看上去是挺高大上一東西。其有使用方法比

iOS開發,獲取iOS設備型號

bsp ios設備型號 isequal uid eve ide inf turn res 1、首先要導入頭文件   #import <sys/utsname.h> 2、代碼如下 - (NSString *)getDeviceVersionInfo{

iOS開發訪問相冊攝像像頭

created med res erro warn setup 上進 normal animate iOS開發中訪問相冊攝像像頭 源代碼下載地址http://download.csdn.net/download/jingjingxujiayou/7270479 在App

[iOS]怎樣在iOS開發切換顯示語言實現國際化

art out title oca standard 文件 creat mit 工具類 1.在Project設置,加入中英兩種語言:2.新建Localizable.strings文件,作為多語言相應的詞典,存儲多種語言,點擊右側Localization,勾選中英:3.加入

iOS開發的NSDateFormatter日期格式解析總結

星期四 class con 數字 september february 月份 mil ios開發 在工作中,常常遇到將時間解析出來轉換成自己相應要求的時間格式,之前也有收集相應的轉換格式,如今將自己收集的一部分了做個分享,應該比較完好了,歡迎大家繼續補充 年 y

iOS開發常用的宏

tar lin iter standard ffi ant height same alt OC對象判斷是否為空? 字符串是否為空 #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] ||

再續iOS開發的這些權限

tle store start 打開 帶來 tty 受限 bsp 不同的 前言 上篇文章iOS開發中的這些權限,你搞懂了嗎?介紹了一些常用權限的獲取和請求方法,知道這些方法的使用基本上可以搞定大部分應用的權限訪問的需求。但是,這些方法並不全面,不能涵蓋住所有權限訪問的方

iOS開發“此證書的簽發者無效”的解決方式

courier data display sina 新浪微博 tracking 項目 text 輸入 iOS開發過程中有時候會出現證書所有變成無效,例如以下圖 然後進行打包的時候會提演示樣例如以下警告: 解決方法: 第一步: 下載ht

iOS開發多線程基礎

推斷 傳遞 cti self reads priority cal default value 耗時操作演練 代碼演練 編寫耗時方法 - (void)longOperation { for (int i = 0; i <

iOS 開發的幾種設計模式

設計模式 開發 模式 ios 設計 iOS 開發中的幾種設計模式

iOS開發的position+anchorPoint與frame應用解釋

移動 pos 限制 一起 frame -1 必須 posit 解釋 我剛開始時非常困惑這兩個地方, 所以現在好好解釋一下他們的聯系. 1/ position與anchorPoint是一對屬性, 經常一起設置來確定控件的位置 frame單獨設置 2/ position

iOS開發指紋識別簡單介紹

Owner rep nsthread 進行 dao self tex 簡單 min 中指紋識別簡單介紹,在iphone系列中,是從5S以後開始有了指紋識別的功能,在ios8的時候開放的指紋驗證的接口。 所以我們在進行指紋識別應用的時候要去判斷機型以及系統的版本。 代

iOS 開發類似上下滾動彈幕實現原理

tarray void ddr 列表 fse post mar ati poi #mark ---滾動彈幕 列表中留有7條記錄 大於7條時刪除並指引表視圖向上滑動 - (void)addRowActionWithContent:(NSString *)str {

直播APP開發iOS開發的列表優化思路

uic 異步化 軟件公司 死機 直播 隱藏 屬性 頁面 底層 APP開發中,列表可能是平時我們打交道最多的UI控件之一,其重要性不言而喻,對其性能的優化同樣至關重要。而對於iOS開發,列表就是我們常說的UITableView / UICollectionView。在進行直播