iOS逆向 | 如何經過LLDB規避ASLR

參考來源

ke.qq.com/course/3140…安全

什麼是ASLR?

Address Space Layout Randomization<地址空間佈局隨機化>bash

ASLR技術是一種針對緩衝區溢出的安全保護技術,經過對堆、棧、共享庫映射等線性區佈局的隨機化,經過增長攻擊者預測目的地址的難度,防止攻擊者直接定位攻擊代碼位置,達到阻止溢出攻擊的目的的一種技術,從iOS4.3開始引入。dom

ASLR的做用

簡單的說,就是讓可執行文件在內存中每次運行的初始地址不同,提升逆向的難度。佈局

規避ASLR,設置內存斷點

通常狀況下,只有在想獲取可執行文件在內存中真實地址的狀況下,才須要獲取到ASLR偏移的地址值,例如打內存斷點。ui

實現以下:spa

1.進入LLDB動態調試,若是不會動態調試,請參考https://www.jianshu.com/p/0a68d934f074調試

2.執行如下指令,獲取ASLR的偏移量。code

image list -o -f 
複製代碼

image.png
3.經過如下指令設置內存斷點。

breakpoint set -a Hopper或IDA中獲取的內存地址 + ASLR的偏移量
複製代碼

image.png
4.內存斷點設置成功。

補充說明

Hopper,IDA中的地址都是末使用ASLR的內存地址。cdn

相關文章
相關標籤/搜索