iOS逆向
文章平均质量分 82
长沙火山
2015年做个有梦想、肯努力的青年。
展开
-
iOS逆向重签名(一):签名原理
为什么开发iOS应用都需要申请苹果开发者证书?苹果开发者证书里面到底包含了些什么东西?为什么苹果开发者账号会和电脑绑定,我换一台苹果电脑怎么就不能用了呢?阅读这篇文章,小编带大家一起寻找多年未解的疑惑。原创 2017-05-10 23:14:18 · 32277 阅读 · 7 评论 -
iOS逆向重签名(三):微信重签名
目录:1. iOS逆向重签名(一):签名原理 2. iOS逆向重签名(二):签名原理 3. iOS逆向重签名(三):签名原理学习了IPA包的重签名技术,下面将这项技术运用到实战中,尝试对微信重签名。微信的重签名也是大同小异,但是由于微信中含有Watch插件,这个部分不可签名,所以我们可以直接删掉,也不影响微信app的功能。1、替换 embedded.mobileprovision文件解压WeChat.ipa包,进入Payload文件,右键"显示包含内容"打开WeChat.app。将自己准原创 2021-07-14 10:24:20 · 2588 阅读 · 0 评论 -
iOS逆向重签名(二):IPA包重签名
目录:1. iOS逆向重签名(一):签名原理 2. iOS逆向重签名(二):签名原理 3. iOS逆向重签名(三):签名原理一、准备工作1、解压ipa包首先我们先从appstore下载一个ipa包,然后把这个包上传到蒲公英分发平台上,可以看出这是一个上架appstore的包。我们就用这个包来进行重签名实验,用另外一套证书进行重签名,生成一个adhoc的包。选中ipa包,右键 -> 打开方式 -> 解压,如下图所示:解压之后,会得到一个Payload的文件夹,里面包含一原创 2021-07-14 10:18:42 · 5488 阅读 · 1 评论 -
Mac 设置安全与隐私没有允许任何来源选项
Mac系统默认是不允许安装通过第三方平台下载的软件,当我们通过第三方途径(比如百度网盘或者其他网站)下载的软件,安装的时候都需要去“系统与偏好设置”中的”安全与隐私”中设置允许安装软件。每次去设置一下,有点麻烦,那么有没有一次性解决的办法呢?当然有,不过需要用命令行。打开终端,直接在终端中输入如下命令:sudo spctl --master-disable这句命令行的意思是允许任何来源的软件安装。重原创 2017-05-08 13:19:52 · 27505 阅读 · 1 评论 -
iOS逆向教程 2.1 Theos的安装及用法
一、 Theos简介Theos是一个越狱开发工具包,是iOS逆向开发的开发工具。iOS逆向开发还有另外一款开发工具:iOSOpenDev, 这款工具集成在XCode中,对于熟悉XCode的小伙伴来说,会更喜欢用iOSOpenDev来进行逆向开发。但是目前iOSOpenDev不再进行更新了,安装起来比较麻烦。另外,逆向工程接触底层的知识比较多,很多东西无法自动化,使用整合度不高的Theos,会对逆向原创 2017-07-02 15:32:40 · 12765 阅读 · 0 评论 -
iOS逆向 砸壳
在我们进行逆向工程之前,需要对ipa包进行砸壳,因为直接从appstore上下载的app是被苹果加过密的。砸壳的步骤:1、找到app二进制文件对应的目录; 2、找到app document对应的目录; 3、将砸壳工具dumpdecrypt.dylib拷贝到ducument目录下; 4、砸壳;一、 查找app二进制文件对应的目录1、打开Mac的终端,用ssh进入连上的iPhone(确保iPhon原创 2017-08-05 12:03:58 · 1115 阅读 · 0 评论 -
iOS逆向 dumpdecrypted
一、dumpdecrypted简介和作用dumpdecrypted是一款砸壳工具,具体有什么用呢?从Appstore下载的应用是被苹果加过密的,可执行文件被套上了一层保护壳,而class-dump无法作用于被加过密的APP,所以如果我们如果要分析从Appstore上下载的应用,需要先用dumpdecrypted工具先对加过密的ipa包进行砸壳,然后再用class-dump工具去导出它的头文件。二、下原创 2017-05-10 09:45:54 · 1525 阅读 · 0 评论 -
iOS 逆向REMOTE HOST IDENTIFICATION HAS CHANGED 问题解决
处理 ssh连接至 ubuntu 服务器时,提示以下错误@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@原创 2017-08-11 11:08:49 · 245 阅读 · 0 评论 -
iO逆向 触动精灵网络请求
headers = {} headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36' headers['Referer'] = 'http://。。。原创 2017-07-25 16:01:58 · 3162 阅读 · 0 评论 -
iOS逆向 获取手机所有app的bundle Id
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace"); NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)]; NSArray *arr = [wo原创 2017-08-16 14:36:22 · 2938 阅读 · 0 评论 -
iOS逆向 越狱和安卓手机Root的区别
相同点:都是取得系统的系统级权限,以便进行修改系统文件等操作。不同点:对于android来说,拥有root权限的用户是在系统在设计时就存在的,即最高管理员,所以我们 所说的“root手机”是取得手机上的那个root权限。对于ios来说,越狱是指通过系统的漏洞绕过系统施加的众多限制对ios设备实现多种操作,比如不经过app store安装app、修改字体、使用插件等。看似两者最终的实现效果相似,但是,原创 2017-07-19 17:04:05 · 1412 阅读 · 0 评论 -
iOS逆向 查看iPhone手机的进程
在cydia搜索adv-cmds,安装。然后ssh到iphone就可以了用ps命令了。原创 2017-09-09 14:31:32 · 2294 阅读 · 1 评论 -
iOS逆向 实时查看手机日志
一、socat1、安装socat在cydia搜索SOcket CAT安装即可。2、socat用法启动socat:执行socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock查看日志:输入watch原创 2017-06-24 11:53:24 · 4500 阅读 · 0 评论 -
iOS逆向 免密码连接手机调试
iOS逆向开发交流群用SSH远程连接手机的时候,终端会多次提醒用户输入密码,这个比较麻烦,默认的秘密为:alpine 。如果需要反复调试,那么每次要求输入密码,显然很麻烦。下面介绍一种不需要输入密码,直接远程登录手机调试的方法。大概的思路:在电脑上生成公钥,然后将公钥拷贝到你需要调试的越狱手机中。这样,你的电脑就被手机信任了。以后通过这台电脑远程连接手机,就不需要输入密码了。一、配置电脑,在电脑上生原创 2017-06-09 11:06:58 · 1986 阅读 · 0 评论 -
iOS 逆向 越狱手机如何安装老版本微信
微信版本升级的比较勤快,如果不小心自动升级了,导致你的插件不能使用了,那么我们就需要回到之前版本的微信。安装老版本的微信很简单,首先你的苹果手机需要越狱,如果手机的没有越狱,就不用继续往下看了。下载一个PP助手,PP助手里面提供了微信历史版本的下载,请看下面的图文教程。1、下载好PP助手之后,打开PP助手2、进入到PP助手的首页,在输入框里搜索“微信” 3、点击微信,进入到微信的下载页面,然后往下原创 2017-11-29 18:35:21 · 25051 阅读 · 0 评论 -
iOS逆向 微信62数据介绍
微信62数据,很多从事微信业务的人都耳熟能详,但是对于62数据的原理却搞不太懂,现在为大家科普相关微信62数据的知识。 首先来说说微信登录的流程,用户在登录微信的时候,微信会把用户的手机登录信息记录并生成一个加密文件存放在微信的安装目录中。用户在登录微信的时候,微信通过检测该加密文件判断用户是否需要登录验证(主要判断用户是否更换设备登录)。 为什么叫做62数据?62数据就是通过软件对上面提到转载 2017-12-27 12:19:53 · 9204 阅读 · 4 评论 -
iOS逆向 微信消息界面分析
一、微信消息界面的结构1.1 消息对应的Cell微信消息界面对应的类名为:BaseMsgContentViewController,消息界面是采用TableView实现的,每种消息类型对应一种Cell。文本消息:TextMessageCellView图片消息:ImageMessageCellView语音消息:VoiceMessageCellView位置消息:LocationMessageVie原创 2017-12-06 23:10:34 · 1634 阅读 · 0 评论 -
iOS 逆向 安装MonkeyDev
MonkeyDev GitHub 地址安装很简单:git clone https://github.com/AloneMonkey/MonkeyDev.git cd MonkeyDev/bin sudo ./md-install 如果不用,运行下面的命令卸载:sudo ./md-uninstall原创 2018-06-04 14:20:21 · 2919 阅读 · 0 评论 -
iOS 越狱之后无法查看private、var等文件
iOS11的系统越狱之后,用iFunBox查看手机系统的文件,发现找不到private、var等文件。难道是越了个假狱???后面经过查阅一番资料之后,原来越狱之后还需要装一个afc2的补丁。afc2全称(Apple File Conduit 2)afc2补丁是越狱后很重要的一个补丁,有了它才能访问iOS设备的系统文件,获取更高的系统权限。如果没有安装,只能访问 iOS 基础文件系统目录。通...原创 2019-09-20 09:15:40 · 5754 阅读 · 1 评论 -
iOS逆向:keychain_dumper导出keychain报Operation not permitted
iPhone 5s (iOS11.2.6) 用keychain_dumper导出keychain报错:解决方案:1、将从github下载下来的Keychain-Dumper-master(https://github.com/ptoomey3/Keychain-Dumper)整个文件拷贝到手机private目录下面:2、通过SSH进入手机DMSteki-iPhone:~ ...原创 2019-09-20 09:58:35 · 1451 阅读 · 0 评论 -
iOS逆向 获取沙盒路径
一、 每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制。 (1)应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒。(2)应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里。(3)苹果禁止任何读、写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的原创 2017-07-18 21:31:39 · 1275 阅读 · 1 评论 -
通过usb线ssh连接iPhone
下载usbmuxd源码包,解压http://marcansoft.com/blog/iphonelinux/usbmuxd/http://cgit.sukimashita.com/usbmuxd.Git/cd Python-client目录, chmod +x tcprelay.py运行 ./tcprelay.py -t 22:2222再起一个终端(commad+t), ssh root@l原创 2017-05-16 09:54:55 · 3590 阅读 · 0 评论 -
常用命令行操作
1、查看公钥//进入目录cd .ssh///查看内容more id_rsa.pub//打开所在的文件目录open ./原创 2017-05-08 13:52:18 · 503 阅读 · 0 评论 -
Mac下打开/usr/local目录
Mac下/usr/local目录默认是对于Finder是隐藏,如果需要到/usr/local下去,打开Finder,然后使用command+shift+G,在弹出的目录中填写/usr/local就可以了。原创 2017-05-08 17:10:49 · 21146 阅读 · 0 评论 -
iOS逆向 class-dump的安装和使用
一、概述class-dump是进行iOS逆向开发常用的一款工具,其主要作用是导出App的头文件内容。根据这些头文件可以大致分析出APP的结构和内容。二、下载和安装下载地址:http://stevenygard.com/projects/class-dump,如下图所示:下载class-dump-3.5后,将dmg文件里的class-dump复制到“usr/bin”下,如下图所示: 温馨提示: M原创 2017-05-08 18:00:48 · 7932 阅读 · 0 评论 -
iOS逆向 error: use of undeclared identifier 'MSHookIvar'
iOS 逆向开发交流群用Theos 编写代码的时候,发现’MSHookIvar’这个编译不通过,找了一圈不知道是什么原因,后面发现是少了一个substrate.h 文件。下载这个文件,然后复制到你工程目录下面,并在你的Tweak.xm中导入头文件:#include <substrate.h>substrate.h 文件下载你可以直接添加一个,substrate.h 代码如下:/* Cydia Sub原创 2017-05-23 11:11:45 · 3305 阅读 · 0 评论 -
iOS逆向 开发工具
iOS逆向开发交流群 iOS逆向开发所需要的一些工具集合原创 2017-05-22 09:32:48 · 794 阅读 · 0 评论 -
iOS逆向 非群主@所有人
iOS 逆向开发交流群微信中只有群主才有@所有人的权限,下面用iOS逆向实现一下非群主@所有人的功能。1、Makefile文件代码如下:THEOS_DEVICE_IP = 192.123.10.123TARGET = iphone:latest:8.0ARCHS = armv7 arm64include theos/makefiles/common.mkTWEAK_NAME = weichats原创 2017-05-17 09:22:39 · 6396 阅读 · 0 评论 -
iOS逆向 微信屏蔽群消息
%hook CSyncBaseEvent- (BOOL)BatchAddMsg:(BOOL)arg1 ShowPush:(BOOL)arg2{ NSMutableArray *msgList = [self valueForKeyPath:@"m_arrMsgList"]; NSMutableArray *msgListResult = [self filtMessageWrapA原创 2017-06-19 18:13:23 · 1640 阅读 · 1 评论 -
iOS逆向教程 1.1 逆向工程的介绍
一、什么是逆向工程对于多年从事移动客户端开发的小伙伴来说,逆向工程这个名词可能有点生疏。逆向工程是在没有产品说明文档和产品接口文档的条件下,对产品进行反编译得到源码,研究分析源码然后得出其中的数据结构,业务逻辑或者某个功能的实现方式。一般的,app的开发我们称之为正向开发。正向开发是根据产品的需求文档和接口文档,为了实现一系统的功能去开发对应的软件。逆向开发则是直接通过分析现有的软件,去了解该软件的原创 2017-07-12 13:28:25 · 1039 阅读 · 0 评论 -
iOS 逆向 汇编指令
一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令.MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,原创 2017-06-12 13:50:21 · 492 阅读 · 0 评论 -
iOS逆向 获取变量的值
一、获取成员变量的方法1、MSHookIvar方法(支持iOS9.0以下的系统)ForwardMessageLogicController *fmlc = [objc_getClass("ForwardMessageLogicController") new];SharePreConfirmView *view = MSHookIvar<SharePreConfirmView *>(fmlc, "m原创 2017-07-13 09:52:51 · 6118 阅读 · 0 评论 -
dpkg: status database area is locked by another process 解决方法
解决办法:sudo rm -rf /var/lib/dpkg/lock或者:rm -rf /var/lib/dpkg/lock原创 2017-06-24 11:47:15 · 3750 阅读 · 1 评论 -
iOS逆向 查看ipa包是否加密
从appstore上下载的ipa包,都是经过苹果公司加了密的,我们做逆行开发首先就需要把ipa加密的壳给砸掉,砸壳之后我们如何查看是否砸壳成功呢?微信砸壳之后的文件为:WeChat.decrypted打开终端,进入到WeChat.decrypted所在的目录,然后输入命令行:otool -l WeChat.decrypted | grep cryptcryptid 1代表加密,cryptid 0代表原创 2017-06-26 11:59:09 · 8115 阅读 · 0 评论 -
iOS逆向 程序获得root权限
正常途径下, 我们编写的程序发布在App store上, 使用官方规定的SDK. 但有些时候, 正常途径实现不了的功能, 可以在破解的iphone上面实现. 以cydia上文件管理软件iFile为例, iFile可以修改系统的任何文件, 这需要iFile具有root权限, 在iphone没有破解的情况之下, 是无论如何都实现不了的. 我个人并不支持破解, 但之前接到个任务编写的一个程序只要求运行在转载 2017-07-20 10:56:30 · 978 阅读 · 0 评论 -
iOS 逆向常用代码片段
1、在导航条上添加按钮UINavigationItem *navigatItem = [self performSelector:@selector(navigationItem)]; UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"群助手" style:UIBarButtonItem原创 2017-06-05 11:45:10 · 900 阅读 · 0 评论 -
iOS 逆向获取手机硬件参数
一、获取手机相关的参数#import <AdSupport/AdSupport.h>#import <CoreTelephony/CTCarrier.h> #import <CoreTelephony/CTTelephonyNetworkInfo.h> NSString *idfa = [[[ASIdentifierManager sharedManager] advertisingIdent原创 2017-07-18 09:20:47 · 1430 阅读 · 0 评论 -
iOS逆向 开机启动APP
目前就我知道的开机启动有两种方式(仅限于越狱机器):1、IOS设备开机后会自动加载LaunchDemos目录下面的Plist,这些Plist里面记录了相关的app信息,这些app都会在IOS开机后自动加载。(但这些app不会跑到前台来运行,也就是说不会进入到app的界面中去,可以让app悄无声息的运行在后台)2、用%hook来钩取SpringBoard的启动函数:(void)application原创 2017-07-21 14:04:40 · 1329 阅读 · 1 评论 -
iOS 设备参数
1、UDID所谓UDID指的是设备的唯一设备识别符,移动广告商和游戏网络运营商往往需要通过UDID用来识别玩家用户,并对用户活动进行跟踪。UDID 在 iOS5.0 的时候已经被抛弃使用了. 代码实现 : [[UIDevice cuurrent] uniqueIdenfier]在很早之前,苹果宣称如果第三方应用开发者继续分享或者使用iPhone、Mac、AppleWatch的UDID的话,那么他们原创 2017-07-18 19:25:15 · 1531 阅读 · 0 评论