iOS逆向之fishHook怎么通过符号找字符串

fishhook中原本就有怎么通过符号查找字符串的说明,如下图:

现在以上一篇iOS逆向之fishHook原理探究中的NSLog为例来说明一下:

1、通过懒加载表Lazy Symbol Pointers找到动态表Dynamic Symbol Table->Indirect Symbols

懒加载表Lazy Symbol Pointers与动态表Dynamic Symbol Table是一一对应的关系

2、动态表的Data值找到Symbol Table->Symbols

在Indirect Symbols中找到Data值 0x7A,换成10进制是122。Data值其实就是一个下标,是一个真正符号表的下标。

在Symbols表中找到偏移量Offset为122的值_NSLog

_是函数的开始 .是分隔符

3、根据Symbols的偏移值Data,在String Table找到字符串

  • Symbols的偏移为:0x9B

  • String Table的起始值是:0x4EFC

  • 字符串的位置:0x4EFC + 0x9B = 0x4F97

    _是函数的开始 .是分隔符

    根据0x4F97可以找到: _NSLog.

原文地址:https://www.cnblogs.com/WinJayQ/p/9098143.html

时间: 2024-09-16 19:07:51

iOS逆向之fishHook怎么通过符号找字符串的相关文章

ios逆向过程中lldb调试技巧

在ios逆向过程中,善于运用lldb,会给逆向带来很大的方便 一般的命令: 1.image list -o -f  看看各个模块在内存中的基址 2.register read r0  读取寄存器r0的值.register read  读取所有寄存器的值 3.expression(或者缩写expr)  表达式 例子: expression $r6 = 1   // 设置r6寄存器的值 expression $r6       // 查看r6寄存器的值 expression username(源代码

ARM汇编基础(iOS逆向)

1. ARM汇编基础 在逆向一个功能的时候,往往需要分析大量的汇编代码,在iOS逆向中,ARM汇编是必须掌握的语言,本文总结了ARM汇编的基础知识,如果你想了解更多,请参考狗神的小黄书<iOS逆向逆向工程>或ARM官方手册. 1.1 寄存器,内存和栈 在ARM汇编里,操作对象是寄存器,内存和栈 ARM的栈遵循先进后出,是满递减的,向下增长,也就是开口向下,新的变量被存到栈底的位置;越靠近栈底,内存地址越小 一个名为stackPointer的寄存器保存栈的栈底地址,成为栈地址. 可以把一个变量给

IOS逆向分析笔记——replay逆向分析

正常找出视频或者图片处理文件的GL脚本就是找出脚本加载的函数glshadersource断下就好了,上周在分析replay的时候很奇怪IDA没有找到glshadersource这个函数,于是我在反汇编窗口里搜索glshadersource,找到了很多用到它的相关函数,于是一一尝试没有一个能断下,想到图像处理一定要调用GL脚本,于是搜索GLSL找到相关函数还是没有一个能断下,于是又所有打开文件的函数依然没有断下 于是茫然了,试了很多方法,搜索了视频相关的函数,找到捕捉输出的缓冲区样本函数didou

iOS逆向开发(1):基础工具 | ssh | scp | socat

小白:小程,我一直想问,什么是逆向来着?是逆向行驶吗? 小程:理解为逆向行驶也没错.一般的项目是从无到有,而逆向是从已有的状态入手,分析出已有的流程与结构的手段. iOS上的逆向开发,是一件有趣的事情(虽然有时很痛苦),而且还可能给你带来收益. 在接下来的几篇文章,小程会尝试介绍iOS逆向的一系列的知识与技能:从基础工具的使用,到目标类的定位.目标代码的调试,再到注入微信的实战示例. 本文介绍iOS逆向的基础工具的使用. 硬件方面,你需要一台iOS设备(iphone/itouch/ipad,以下

IOS逆向分析——GL脚本的提取

总结:要逆一个程序必须清楚地知道程序的结构和常用的API函数,不清楚一个程序而去逆出结果是不可能滴 首先是glsl脚本运行的全过程,第一步是为shader的运行创建一个容器GLuint glCreateProgram(void),第二步是把编译好的shader附加到程序void glAttachShader(GLuint program, GLuint shader),编译好的shader可以是多个所以第二步可以重复多步把每一个编译好的一一附加到程序,顶点shader和像素shader一一成对,

[iOS逆向实战 之一]arm寄存器简介

个人原创,转帖请注明来源:cnblogs.com/jailbreaker [iOS逆向实战]这个系列的帖子,会涉及到arm汇编,以及调试工具的使用,加上实战解析一步步逆向,深入浅出. 这是第一篇帖子,简要说下arm的各个寄存器的功能. R0-R3:用于函数参数及返回值的传递 R4-R6, R8, R10-R11:没有特殊规定,就是普通的通用寄存器 R7:栈帧指针(Frame Pointer).指向前一个保存的栈帧(stack frame)和链接寄存器(link register, lr)在栈上的

[iOS逆向实战 之三]函数之基本类型(int)参数传递

个人原创,转帖请注明来源:cnblogs.com/jailbreaker 在这[iOS逆向实战 之一]中讲到函数调用的参数传递通过r0-r3来实现,这篇帖子我们来验证下.先看一个4个参数的函数代码: main方法简单调用compute方法,先看main的汇编代码: 明显可以看出,参数值1,2,3,4分别传递给r0-r3,然后通过b调用函数 compute,接着看下compute的汇编代码: 最后一行 是返回到 调用者的下一行,之前帖子已经学过了,前面面3条代注释如下: add r0, r1  

ios逆向之:dump应用的头文件

平常我们用class-dump导AppStore中下载的应用的头文件时,就dump出了个CDStructures.h文件,还什么内容都没有. 这就属于常识问题了-_- 就像这样,所以呢,我们还需要先拿个榔头给它砸一下壳 这里借用了某行的APP,无恶意行为 先看看工具准备吧,什么 dump.decrypted.Xcode.crcyript 啦 网上都是有资源滴 dumpdecrypted  github地址  https://github.com/stefanesser/dumpdecrypted

iOS逆向之利用Xcode重签名

iOS逆向之利用Xcode重签名 准备工作 非越狱的iPhone手机 用PP助手下载: 微信6.6.5(越狱应用) 步骤 新建工程"Xocde重签名",选择开发证书,在真机上运行 解压微信6.6.5(越狱应用).ipa,在微信-6.6.5(越狱应用)->Payload下,将WeChat.app改名为Xocde重签名.app 在Products->Xcode重签名上右击show in finder 将第2步的Xocde重签名.app拷贝过来,替换. *以下几个步骤可以参考上一