
iOS逆向
文章平均质量分 90
yahibo
啦啦啦
展开
-
状态寄存器
概述状态寄存器又称cpsr,是cpu运算器的一部分。主要存放两类信息:1、存放当前指令执行结果的各种状态或条件码,结果是否为负、是否为0、是否进位、是否溢出;2、存放控制信息,有终端标志位、跟踪标志位。cpsr寄存器为32位寄存器,低8位为控制位,高4位为条件标志位。具体功能如下:位数标识描述31N符号标志位 当两个有符号整数运算时,结果为负N=1,结果为正N=030Z零标志位 表示运算结果是否为零,如果为零 Z=1,不为零Z=029C原创 2021-06-07 00:21:23 · 8051 阅读 · 0 评论 -
debugserver+lldb使用
一、概述debugserver、lldb是协同工作的,debugserver依附在APP上,时刻监听APP的运行状态,并有控制APP执行的能力;lldb是在APP外部的,可以和debugserver建立连接,通过debugserver获取APP运行状态,并且能通知debugserver对APP做一些事情。在真机调试的时候,Xcode将debugserver加入到APP中,通过lldb来调试APP...原创 2020-03-16 21:43:28 · 2662 阅读 · 0 评论 -
从汇编看函数
一、简介CPU中央处理器,内部主要包括寄存器、运算器、控制器。寄存器:存储数据运算器:处理数据控制器:控制硬件IO口的高低电平。常用寄存器pc:程序计数器,确定指令位置sp:在任意时刻都会保存栈顶的地址,调用函数就会开辟栈空间(通过操作sp寄存器来开辟栈空间)fp:也称为x29寄存器属于通用寄存器,在某些时刻利用它来保存栈底的地址x30寄存器x30寄存器存放当前调用...原创 2020-01-12 12:58:29 · 1377 阅读 · 0 评论 -
fishhook-动态修改MachO文件
学习hook,不是要攻击别人,破坏别人的应用场景,而是为了更好的防护,让自己的应用更坚固更安全。一、动态库注入回顾在 《动态库注入》中使用了yololib对自定义动态库在WX应用中插入,既然能插入自定义库,我们就利用hook技术做了小小的改动,替换了登录按钮的方法,并拦截了微信步数上传的方法,修改了步数。hook是改变程序执行流程的技术,能够修改其他应用,也能对自己应用做防护。通常替换...原创 2019-10-30 23:27:37 · 833 阅读 · 0 评论 -
动态库注入
一、前言二、注入思路三、动态库注入实现四、分析实现按钮监听五、实战修改微信步数一、前言在文章《应用签名-脚本签名》中介绍了如何在真机上运行破壳应用(抖音、微信、支付宝等ipa包),来观察应用视图的层级结构,方法调用,类名称等,以便学习参考。应用主要与后台进行数据交互展示(数据拉取及提交数据),既然能对破壳应用重签名并在真机上运行,那么能不能修改应用数据和页面展示呢,如监听微信登录按...原创 2019-10-20 22:59:55 · 1261 阅读 · 0 评论 -
Mach-O
一、什么是Mach-O文件?Mach-O是Mach Object文件格式的缩写,是mac以及iOS上可执行文件的格式。Mach-O文件对应有多种格式:目标文件.o库文件:.a静态库文件.dylib动态库文件.framework系统级为动态库文件,自己创建的为静态库文件可执行文件及MDW.app内部的MDW文件(通用二进制文件)dyld动态链接器将依赖的动态库加载到内存.dsy...原创 2019-10-02 08:42:52 · 548 阅读 · 0 评论 -
Theos-tweak工程
1、查看《iOS逆向 开发工具》 Theos的使用方法做准备工作;2、创建tweak工程,实现在屏幕上添加弹框(越狱手机);3、Logos语法。完成该工程,我们可以实现在任意地方添加我们想要的功能。任性,吼吼。###一、给屏幕添加弹框项目目录:/Users/yanghaibo/Documents/iOS逆向/Theos/1、创建tweak工程,进入工程目录执行命令:/opt/theo...原创 2019-07-17 12:09:33 · 693 阅读 · 0 评论 -
逆向插入动态库
向越狱手机中已有项目插入一个动态库,动态库中添加功能代码,下面只插入一个NSLog打印代码,用来观察是否为插入成功。一、注意事项1、准备越狱的苹果设备;2、创建动态库,选择越狱手机;3、动态库证书与工程证书选择保持一致,如果默认,生成的.framework动态库需要对其签名。二、创建动态库1、创建一个工程,点击General下方加号添加动态库,选择framework工程2、注意创...原创 2019-07-17 12:04:15 · 433 阅读 · 0 评论 -
iOS逆向 开发工具
1、Class-dump作用:利用OC的runtime特性将存储在Mach-O文件中的@interface、@protocal信息提取出来并生产对应的.h文件,通过该文件可查看应用所有的类,及类的属性、成员变量、方法。Mach-O:它是可执行文件、目标代码、动态库、内核转储的文件格式,具有很强的扩展性。class-dump-z:使用方法同class-dump,是class-dump的改进版...原创 2019-07-17 12:03:22 · 599 阅读 · 0 评论 -
应用签名-脚本签名
签名原理熟悉了,又能够手动对应用签名,那么就可以将手动签名部分写成脚本,通过脚本,一步步实现手动签名过程。脚本签名中xcode会对.ipa做权限管理,因此不需要做权限签名。新建xcode工程,在工程文件中新建两个文件夹tool、app。1、tool文件存放签名脚本;2、app文件存放要启动的.ipa应用。签名脚本:需要安装的应用:启动后安装:Xcode调试:通过这种方法,是...原创 2019-07-01 11:10:33 · 609 阅读 · 0 评论 -
应用签名-手动签名
获取破壳应用手动签名是对破壳后的应用进行签名,应用破壳有两种:1、通过越狱手机获取破壳应用,可参考:《砸壳概述及其原理》;2、通过PP助手获取越狱应用即可。将砸壳应用放到桌面或其他方便操作的地方,当前使用的是微信应用:签名步骤1、创建一个WeChat工程,本测试中使用的是xcode自动生成的证书和描述文件,也可以使用创建的证书和描述文件,因为都是从苹果服务器申请获取的,参考《应用签名...原创 2019-07-01 11:03:03 · 423 阅读 · 0 评论 -
应用签名-签名原理
HASH加密将任意大小的数据通过散列算法变换成固定长度的字符,通常为32位的固定字符,又称hash值。特点:算法公开、不可逆、结果定长。常见的MD5加密。非对称加密公钥加密,私钥解密,加密过程需要经历很多计算,因此效率很低。明文->公钥->密文 密文->私钥->明文。支付宝,微信等支付过程需要的签名也是这一原理实现。数字签名流程如下:iOS签名为避免垃圾...原创 2019-07-01 10:56:34 · 792 阅读 · 0 评论 -
砸壳工具frida-ios-dump使用(动态砸壳)
通过注入js实现内存dump,再由Python自动拷贝到电脑生成ipa包。frida-ios-dump下载:https://github.com/AloneMonkey/frida-ios-dump创建dump文件夹,移动到opt/dump目录下,修改dump.py中的user、password、host、port如下:User = 'root'Password = 'alpine'H...原创 2019-06-26 16:25:18 · 12888 阅读 · 8 评论 -
砸壳工具dumpdecrypted使用(动态砸壳)
Dumped文件下载到Mac中下载dumpdecrypted:https://github.com/stefanesser/dumpdecrypted下载后进入文件执行make获得dumpdecrypted.dylib文件(动态库)1、上传文件到越狱手机scp dumpdecrypted.dylib root@192.168.1.168:/var/root/2、在越狱手机上找到应用路径...原创 2019-06-26 16:20:51 · 2733 阅读 · 0 评论 -
砸壳工具Clutch使用(动态砸壳)
注意:会遇到砸壳失败,要确定是否在App Store下载,如果不是重新下载。Clutch需要使用iOS8.0以上的越狱手机应用。下载链接:https://github.com/KJCracks/Clutch/releases1、下载后将Clutch-2.0.4放到越狱手机的usr/bin目录下(密码默认为alphine)scp Clutch-2.0.4 root@192.168.1.168...原创 2019-06-26 16:17:26 · 3879 阅读 · 0 评论 -
手机越狱
使用爱思助手或pp助手均可以对手机越狱,注意越狱时对应的系统版本号,根据自己系统版本号选择。越狱后手机上会安装Cydia软件,在软件中选择搜索搜索OpenSSH安装,安装完成后便可以与Mac端通过ssh建立连接。1、通过工具越狱后会出现h3lix应用:2、点击运行h3lix,再点击按钮运行,将会下载安装Cydia应用:3、点击Cydia应用查看是否安装OpenSSL,如未安装则搜索安装...原创 2019-06-26 16:13:24 · 2368 阅读 · 0 评论