堆栈地址查找函数

下面的命令在lldb调试时候打印

ASLR(随机偏移地址) : image list -o -f bundle_name
app的内存起始地址(基地址): image list bundle_name = 0X100000000 + ASRL
函数在内存中的位置: app的基地址 + 函数自身相对Mach-O的偏移地址

例:

084B4674-2D02-4AC3-9D3E-037D97304561.png
函数自身在Mach-O地址或函数偏移地址
A968618E-62FA-489E-AAF3-DA371BB658CC.png

以上就是基本概念

实际应用:
1.找到这次报错堆栈的对应app , 不能有任何修改, 修改过地址就都变了
2.截图显示 ,函数报错地址是: app基地址+函数偏移地址 = 0x100000000+ ASRL + 函数偏移地址
3.如果有 hopper ,ida ,那么修改hopper, ida中 起始地址改为 app的基地址 , 也就是0x104818000 , 再查找偏移地址2873264, 就是对应的函数
4.如果只用xcode , 那么再次用xcode运行同app ,下断点 , 然后 image list bundle_name 获取app的基地址,
br s -a 基地址+2873264 , 就是崩溃堆栈里面的函数

你可能感兴趣的:(堆栈地址查找函数)