美文网首页
堆栈地址查找函数

堆栈地址查找函数

作者: 西博尔 | 来源:发表于2021-05-07 12:18 被阅读0次

下面的命令在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 , 就是崩溃堆栈里面的函数

相关文章

  • 堆栈地址查找函数

    下面的命令在lldb调试时候打印 ASLR(随机偏移地址) : image list -o -f bundle_n...

  • 深入理解函数调用堆栈

    堆栈是C语言程序运行时一个必须的记录函数调用路径和参数的空间。堆栈提供函数调用框架,具有传递参数,保存函数返回地址...

  • 打印函数调用堆栈

    相关函数签名 backtrace():栈回溯,保存各个栈帧的地址。该函数用于获取当前线程的函数调用堆栈,获取的信息...

  • c++入门 - 内联函数、#pragma once

    内联函数 函数的调用 执行到函数调用指令时,程序将在函数在调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(...

  • 堆栈

    堆栈设计图 堆栈优点 临时存储大量的数据,便于查找 push内存指令 POP指令

  • C语言函数

    创建并使用简单的函数 函数参数 使用return从函数中返回值 查找地址&运算符 使用指针在函数之间传递数据

  • 堆,栈深入理解

    上图是进程的虚拟地址空间示意图。 堆栈段: 1 为函数内部的局部变量提供存储空间。 2 进行函数调用时,存储“过...

  • 为什么调用 lua_pcall

    原理:C和lua通过一个堆栈进行交互,lua_pcall的用途就是执行堆栈里的函数,先将lua里的函数压入堆栈,然...

  • 函数调用栈

    函数调用过程 esp指向堆栈顶端,ebp指向old ebp,返回地址为ebp-4,参数为ebp-8,ebp-12。...

  • so,jni,HAL

    基于android系统 1.c访问so dlopen 用于打开so dlsym 根据函数名称查找函数地址 2. j...

网友评论

      本文标题:堆栈地址查找函数

      本文链接:https://www.haomeiwen.com/subject/mxoupktx.html