1. OC對(duì)象內(nèi)存對(duì)齊探究 ??前面的文章我們已經(jīng)詳細(xì)探究了OC對(duì)象alloc方法的底層原理附井,緊接著我們就來探究一下alloc方法調(diào)用流程中是如何計(jì)算內(nèi)存大小的献雅,也就是探究(...
1. OC對(duì)象內(nèi)存對(duì)齊探究 ??前面的文章我們已經(jīng)詳細(xì)探究了OC對(duì)象alloc方法的底層原理附井,緊接著我們就來探究一下alloc方法調(diào)用流程中是如何計(jì)算內(nèi)存大小的献雅,也就是探究(...
相信絕大多數(shù)的人都知道內(nèi)存對(duì)齊胆绊,但是其最最底層的原理是啥呢忽媒? 內(nèi)存在進(jìn)行IO的時(shí)候斗蒋,一次操作取的就是64個(gè)bit。所以戈稿,內(nèi)存對(duì)齊最最底層的原因是內(nèi)存的IO是以64bit為單位...
蕪湖西土!激動(dòng)!Cooci大佬竟然留下了評(píng)論
OC對(duì)象alloc底層原理探究1. alloc方法的作用 ??首先我們先來探索最基礎(chǔ)的alloc與init方法鞍盗,創(chuàng)建一個(gè)項(xiàng)目工程需了,創(chuàng)建一個(gè)LGPerson類,代碼如下: ??然后在ViewControll...
1. alloc方法的作用 ??首先我們先來探索最基礎(chǔ)的alloc與init方法般甲,創(chuàng)建一個(gè)項(xiàng)目工程肋乍,創(chuàng)建一個(gè)LGPerson類,代碼如下: ??然后在ViewControll...
1.什么是應(yīng)用砸殼 ??應(yīng)用脫殼敷存,顧名思義墓造,就是對(duì)軟件加殼的逆操作,把軟件上存在的殼去掉(解密)锚烦。??提交給Appstore發(fā)布的App觅闽,都經(jīng)過官方保護(hù)而加密,這樣可以保證機(jī)...
1.手機(jī)越獄 1.1 手機(jī)越獄概述 ??當(dāng)啟動(dòng)一臺(tái)iOS設(shè)備時(shí)涮俄,系統(tǒng)首先會(huì)從只讀的ROM中讀取初始化指令蛉拙,也就是系統(tǒng)的引導(dǎo)程序(事實(shí)上所有的操作系統(tǒng)啟動(dòng)時(shí)都要經(jīng)過這一步,只是...
1. LLDB高級(jí)調(diào)試插件 ??這里介紹以下LLDB調(diào)試三個(gè)好用的插件安裝以及簡單使用彻亲,這三個(gè)插件分別是Chisel孕锄、DerekSelander/LLDB以及Cycript。...
1.什么是LLDB ??LLDB(Low Lever Debug)是內(nèi)置于XCode中的動(dòng)態(tài)調(diào)試工具苞尝。標(biāo)準(zhǔn)的LLDB提供了一組廣泛的命令畸肆,旨在與老版本的GDB命令兼容。除了使...
1. Monkey介紹 ??Monkey是一個(gè)為越獄和非越獄開發(fā)人員準(zhǔn)備的工具宙址。Monkey github 鏈接[https://github.com/AloneMonkey...
1.Fishhook hook原理 ??在一節(jié)筆記中我們已經(jīng)掌握了fishhook的基本使用轴脐,也詳細(xì)探討了dyld在加載應(yīng)用程序的過程中綁定外部符號(hào)的流程,那么現(xiàn)在我們再來研...
1.什么是HOOK ??HOOK,中文譯為“掛鉤”或“鉤子”豁辉。在iOS逆向開發(fā)中是指改變程序運(yùn)行流程的一種技術(shù)令野。通過hook可以讓別人的程序執(zhí)行自己所寫的代碼舀患。在逆向中經(jīng)常使...
1.什么是DYLD ??DYLD是動(dòng)態(tài)鏈接器徽级,是用來加載所有的庫以及可執(zhí)行文件的。 ??DYLD源碼[%E9%93%BE%E6%8E%A5:https://pan.baidu...
1 什么是MachO文件 ??Mach-O其實(shí)就是Mach Object文件格式的縮寫聊浅,是Mac以及iOS上可執(zhí)行文件的格式餐抢,類似于Windows上的PE格式(Portabl...
1.codesign簡介以及使用 ??XCode提供了簽名工具codesign,通過幾個(gè)命令就可以完成重簽名低匙。 2.應(yīng)用重簽名常用命令及意義 security find-id...
1.設(shè)置窗口 ??定位到 [Preferences - Profiles - Window] 新窗口設(shè)定風(fēng)格設(shè)為 [Top of Screen]旷痕,這樣每次新打開終端都會(huì)固定出...
1. 什么是OpenGL ES ??OpenGL ES(OpenGL for Embedded Systems)是以手持和嵌入式為目標(biāo)的高級(jí)3D圖形應(yīng)用編程接口(API),O...
1.什么是狀態(tài)寄存器 ??CPU內(nèi)部的寄存器中顽冶,有一種特殊的寄存器(對(duì)于不同的處理器欺抗,個(gè)數(shù)和結(jié)構(gòu)都可能不同),這種寄存器在ARM中强重,被稱為狀態(tài)寄存器绞呈,也就是CPSR(curr...
1. 函數(shù)參數(shù)超過8個(gè) 1.1 源代碼 1.2 viewDidLoad函數(shù)匯編及圖示 匯編代碼分析 跳轉(zhuǎn)text函數(shù)之前viewDidLoad函數(shù)以及各寄存器存儲(chǔ)值情況: 1...
1. 棧 1.1 棧的概念 ??棧是一種具有特殊訪問方式的存儲(chǔ)空間(后進(jìn)先出)。 1.2 棧中最重要的兩個(gè)寄存器 ??SP寄存器:棧頂寄存器间景,在任意時(shí)刻都會(huì)保存棧頂?shù)牡刂贰?...