逆向?qū)W習(xí)筆記8——ASLR

ASLR他的中文名地址空間配置隨機(jī)加載疟赊,具體解釋你看百度百科

現(xiàn)在根據(jù)一個(gè)例子來感受一下ASLR甸陌⌒氪В—— 用動(dòng)態(tài)調(diào)試拿到取得test1:的真實(shí)地址盐股,并添加斷點(diǎn),準(zhǔn)備好下面一點(diǎn)代碼

int  age = 8;

- (void)viewDidLoad {
    [super viewDidLoad];
}

-(void)test1:(NSString *)txt{
    NSLog(@"%@",txt);
    NSLog(@"%d",age);
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    [self test1:@"hello world"];
}

真機(jī)編譯返敬,拿到可執(zhí)行文件通過ida拿到匯編代碼如下:

__text:000000010000669C __ViewController_test1__                ; DATA XREF: __objc_const:0000000100008150↓o
__text:000000010000669C
__text:000000010000669C var_20          = -0x20
__text:000000010000669C var_18          = -0x18
__text:000000010000669C var_10          = -0x10
__text:000000010000669C var_8           = -8
__text:000000010000669C var_s0          =  0
__text:000000010000669C                 SUB             SP, SP, #0x30
__text:00000001000066A0                 STP             X29, X30, 
...
__text:000000010000671C                 ADD             SP, SP, #0x30
__text:0000000100006720                 RET

由上述代碼可得知遂庄,這里的test1方法的地址為0x10000669C寥院,那么如何通過這個(gè)地址給test1方法下斷點(diǎn)呢劲赠?這里就要拿到ASLR了。通過lldb命令image list拿到machO文件ASLR信息如下

(lldb) image list
[  0] 6A96B009-28DF-3AEF-BD9F-C4EAB418F08D 0x00000001006b0000 /Users/ioskaifa/Library/Developer/Xcode/DerivedData/ASLRDemo-arxdzzclvlcwyteiefmnlthalvmw/Build/Products/Debug-iphoneos/ASLRDemo.app/ASLRDemo 
[  1] 113803EC-7F69-36E6-B06A-BEF57A8755FD 0x0000000100704000 /Users/ioskaifa/Library/Developer/Xcode/iOS DeviceSupport/11.0.3 (15A432)/Symbols/usr/lib/dyld 
...

根據(jù)路徑ASLRDemo.app/ASLRDemo明顯的知道他就是可執(zhí)行文件machO文件秸谢,拿到他的后8位地址0x006b0000凛澎,這就是ASLR
再通過LLDB命令添加斷點(diǎn)

(lldb) b -a 0x006b0000+0x10000669C
Breakpoint 2: where = ASLRDemo`-[ViewController test1:] + 32 at ViewController.m:23, address = 0x00000001005366bc

斷點(diǎn)添加成功估蹄,perfect塑煎。到此,會(huì)不會(huì)還心存僥幸呢臭蚁,難道這是一種偶然現(xiàn)象最铁?接下來,作如下嘗試:

  • 通過命令垮兑,得到age的地址
(lldb) p &age
(int *) $1 = 0x00000001006b8dd0

再通過$1-ASLR拿到machO的偏移地址冷尉,
0x1006b8dd0 - 0x006b0000 = 0x100008dd0

通過machOView打開上述可執(zhí)行文件

image.png

從machOView里面拿到的值,剛好與之前給age設(shè)置的值一樣系枪,剛好符合我們的最初的設(shè)想雀哨。
所以,結(jié)論 machO的偏移地址+ASLR=實(shí)際內(nèi)存地址

注私爷,由于0x100000000是machO文件的虛擬內(nèi)存雾棺,所以在此處只需要找后8位即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市衬浑,隨后出現(xiàn)的幾起案子捌浩,更是在濱河造成了極大的恐慌,老刑警劉巖工秩,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘉栓,死亡現(xiàn)場離奇詭異,居然都是意外死亡拓诸,警方通過查閱死者的電腦和手機(jī)侵佃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奠支,“玉大人馋辈,你說我怎么就攤上這事”睹眨” “怎么了迈螟?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵叉抡,是天一觀的道長。 經(jīng)常有香客問我答毫,道長褥民,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任洗搂,我火速辦了婚禮消返,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耘拇。我一直安慰自己撵颊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布惫叛。 她就那樣靜靜地躺著倡勇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嘉涌。 梳的紋絲不亂的頭發(fā)上妻熊,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音仑最,去河邊找鬼扔役。 笑死,一個(gè)胖子當(dāng)著我的面吹牛词身,可吹牛的內(nèi)容都是我干的厅目。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼法严,長吁一口氣:“原來是場噩夢啊……” “哼损敷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起深啤,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拗馒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后溯街,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诱桂,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年呈昔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挥等。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡堤尾,死狀恐怖肝劲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤辞槐,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布掷漱,位于F島的核電站,受9級特大地震影響榄檬,放射性物質(zhì)發(fā)生泄漏卜范。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一鹿榜、第九天 我趴在偏房一處隱蔽的房頂上張望海雪。 院中可真熱鬧,春花似錦犬缨、人聲如沸喳魏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至迷郑,卻和暖如春枝恋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗡害。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工焚碌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人霸妹。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓十电,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叹螟。 傳聞我的和親對象是個(gè)殘疾皇子鹃骂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • LLDB的Xcode默認(rèn)的調(diào)試器,它與LLVM編譯器一起罢绽,帶給我們更豐富的流程控制和數(shù)據(jù)檢測的調(diào)試功能畏线。平時(shí)用Xc...
    CoderSC閱讀 1,360評論 0 2
  • [轉(zhuǎn)]淺談LLDB調(diào)試器文章來源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc閱讀 2,507評論 2 6
  • 隨著Xcode 5的發(fā)布,LLDB調(diào)試器已經(jīng)取代了GDB良价,成為了Xcode工程中默認(rèn)的調(diào)試器寝殴。它與LLVM編譯器一...
    隨風(fēng)飄蕩的小逗逼閱讀 1,405評論 0 0
  • 轉(zhuǎn)載 與調(diào)試器共舞 - LLDB 的華爾茲: https://objccn.io/issue-19-2/ 推薦:i...
    F麥子閱讀 3,332評論 0 10
  • 用LLDB+Hopper調(diào)試的時(shí)候,經(jīng)常要切來切去對比明垢。由于ASLR存在蚣常,每次都要用計(jì)算器算一下,非常低下痊银! 網(wǎng)上...
    偶是星爺閱讀 1,536評論 0 2