手把手教你制作一款iOS越狱App,伪装微信位置

说明

缘由

本文是我个人在对逆向工程强烈的兴趣驱使下,拜读《iOS应用逆向工程》,所实现的一个好玩的功能,与大家分享,也是对自己学习的一个简单总结。BTW iOS逆向论坛 iOSRe 是一个很好的iOS逆向交流社区。

所有文章中工具和代码都托管到GitHub,欢迎访问:项目地址:https://github.com/jackrex/FakeWeChatLoc

严重声明

本文所有纯属个人娱乐学习值用,相关技术仅用于学习交流,请勿用于非法目的,不得有其他任何商业用途!!!

概念

越狱的原理:

iOS系统越狱,其实说白了,和Android的Root类似,相当于对手机权限的提升,使得让你可以操纵之前你操纵不了的事物。

由于Objective-C 是面向对象的高级语言,iOS 采用的文件格式 Mach-O 包含了很多metadata 信息可以让我们使用 class-dump 还原其头文件,这个为iOS 的逆向有了很好的开端。

MobileSubstrate 是一个能够让iOS 开发方便hook的一个framework,MobileSubstrate由如下三部分组成:

MobileSubstrate
1. MobileHooker 利用iOS Runtime 动态替换函数,转发消息达到所谓的hook技术
2. MobileLoader 主要用来加载第三方动态库 即是tweak/*.dylib
3. Safe Mode 安全模式,防止第三方插件的Crash对主体App造成的影响

  • 由此可见 有了MobileSubstrate 作为基石,加上逆向工程,我们几乎可以完成我们想做的任何事情
iOS 目录层级结构

这里写图片描述
这种基于Unix 衍生的操作系统一般目录层级都有相通之初,不妨可以对比Android 以及 MacOS,会发现好多目录名是一致的,我么来挑一些简单讲解下:

/bin binnary ,系统常用的基本二进制文件 例如 cd, ls, ps 等
/usr 包含大多用户工具库
/var variable 存放经常更改的东西,例如 logs,用户数据,/var/mobile/Applications 是纺织AppStore 下载的 App
/Applications 存放所有系统App,以及从Cydia下载的App路径
/Library  存放了系统App的数据,其中有一个/Library/MobileSubstrate 目录,MobileSubstrate 是一个hook 功能开发平台,其中内容如下图所示,我们所开发的插件都被放置到这个里面

/Library/MobileSubstrate 里面文件类型主要有 dylib,plist
dylib 是动态加载库,就是tweak
plist 配合dylib 使用的filter 文件,指定注入目标,及hook的目标
/System 存放iOS 各种系统framework
/User 指向 /var/mobile 即是我们一般用户的主目录 
iOS 程序类型
  • iOS 安装包格式

    1. ipa 苹果推出的iOS 专有安装包,一般从AppStore下载的包格式,安装路径/var/mobile/Applications,长按可删除
    2. deb 是属于Debain系(使用过debain linux 系统的都知道)特有的安装包,iOS 系统起源于Unix,所以兼容deb安装包,Cydia下载的App就是deb格式的,安装路径为到 /Applications ,长按不可删除,必须使用root 权限的命令行或者Cydia移除
    3. pxl
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值