原创 iOS 類和元類的關係

事情的始末是這樣的,同學想驗證一下resolveClassMethod是否執行(resolveClassMethod是一個對象調用一個不存在類方法時,會執行此方法,不懂的要惡補一下了,可以看我這篇文章:Objective-C消息轉發),然

原创 程序員必會的十大編程算法

算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表着用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不適合於某個問題,執行

原创 iOS Runtime中如何通過SEL找到IMP

objc_msgSend(id self, SEL _cmd, ...) 中SEL找到IMP的流程 以下是蘋果開源代碼中Runtime底層的部分刪減後的彙編代碼 ENTRY _objc_msgSend ldr x13, [x0]

原创 iOS runloop解決App crash並獲取日誌

App閃退一直是大家頭疼的問題,尤其是未知的沒有辦法很好的做容錯處理,今天就結合runloop處理崩潰問題   效果實現:   用法: 1.將截圖的中CatchedHelper文件夾拖到你的項目工程中。 2.在AppDelegate.

原创 CocoaPods 出現 Unable to find a pod with name, author, summary, or description matching

今天在用CocoaPods搜索時,發現如下報錯 [!] Unable to find a pod with name, author, summary, or description matching `AF`     執行 pod se

原创 iOS逆向工具-yololib注入framework

一.yololib是幹啥的? yololib可以給mach-o文件注入framework 可以使用machOView軟件查看注入的framework 二.使用 從github下載項目,編譯得到yololib可執行文件. 將yolol

原创 Runtime 與 Aspects

Runtime 之 isa指針 111.png 1.橫向看:實例是對象,類也是對象(類對象),meta類也是對象(原類對象) 這是很重要的一點,希望大家理解,我們這裏忽略上下結構,先看左右結構,從左到右的指向就是之前介紹的runtim

原创 Dart中的異步編程——Future、async和await

首先Dart是一門單線程的語言,那麼Dart對異步操作對支持,可以使我們在編寫Dart程序時可以異步的來執行耗時操作。從而可以在等待一個操作完成的同時進行別的操作以下是一些常見的異步操作: 通過網絡獲取數據。 寫入數據庫。 從文

原创 iOS野指針定位總結

野指針就是指向一個已刪除的對象或者受限內存區域的指針。 我們寫C++的時候強調指針初始化爲NULL,強調用完後也爲其賦值爲NULL,誰分配的誰回收,來避免野指針的問題。 比較常見的就是這個指針指向的內存,在別處被回收了,但是這個指針不知道

原创 iOS開發 遍歷字符串中所有子字符串的位置信息 並改變顏色

 我們正常用的rangeOfString這個API找到第一個符合要求的字符串就直接返回了,當我們要改變所有符合要求的字符串顏色是就不行了,那麼我們就找到一個然後截取掉,一直找到最後,把所有的位置用一個數組記錄一下,思路很簡單,記下來方便以

原创 dyld加載應用啓動原理詳解

我們都知道APP的入口函數是main(),而在main()函數調用之前,APP的加載過程是怎樣的呢?接下來我們一起來分析APP的加載流程。 一、利用斷點進行追蹤 首先我們創建一個工程,什麼代碼都不寫,在main()函數處進行斷點,會看到

原创 iOS逆向 class-dump導出 app machO裏的頭文件

class-dump簡單介紹 如何使用class-dump 一 class-dump簡單介紹 class-dump是可以把Objective-C運行時的聲明的信息導出來的工具。實質就是可以導出.h文件。用class-dump可以把未經加

原创 iOS安全—防注入hook api “-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null”

通過在 Xcode 裏的 Other Linker Flags 設置參數,可以防止App被注入dylib(僅限於除iOS 10之外系統,)  比如,某藝,XX音樂等 dylib無法注入,也就意味着沒辦法用cycript動態調試App,只能

原创 2019年中國互聯網企業100強

 2019年8月14日,在2019年中國互聯網企業100強發佈會暨百強企業高峯論壇上,《2019年中國互聯網企業100強發展報告》、2019年中國互聯網企業100強榜單正式發佈。阿里巴巴(中國)有限公司、深圳市騰訊計算機系統有限責任公司、

原创 shell腳本實現iOS包重簽名及代碼注入

當我們要逆向第三方應用時,首先就是要將應用安裝在我們的手機上,然後進行hook分析,找到對應的方法調用,進行代碼注入,破解其正常流程,從而達到逆向目的。接下來將詳細講解分析該過程具體實現。 一、shell腳本實現重簽名 1. 我們以最常見