新手IOS tweak越狱app开发记录
需要改变原先程序功能流程的话,是要用到Logos Tweak 开发。另外,.在苹果商城下载到的app,不能直接拿来分析。需要先做一定的前期准备。网上有很多相关的写第一个越狱插件的文章,这里就不在赘言了。仅仅记录一些注意事项。留待日后自己如果忘记了,就回过头来看看。
一般分为以下的步骤.
1.准备已经越狱的iphone或ipad.系统不要最新,ios 6,7,8比较适宜。
2.Xcode要事先配置好越狱开发的环境,比如以下程序要先下载并安装好:
1>theos<MACOS> 这个是在xcode没有安装iosOpenDev的环境下,手工开发tweak程序,需要用到的。如果已经安装并配置好了iosOpenDev环境,这一步可以直接无视。话说如果用命令行装theos,少不了一些辅助工具比如brew, 可以在终端使用这条命令下载
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2>Clutch<IOS> 这个是用来“一键”破解应用在提交苹果商城之后,苹果官方加的密.该软件相当傻瓜化。如果找不到,需要添加源:"apt.so/brian0817"或者"cydia.radare.org"。也可以去Clutch官方托管地址“https://github.com/KJCracks/Clutch/releases”下载,下载后将Clutch-2.0.4
放到越狱手机的usr/bin
目录下(密码默认为alphine
),然后使用命令“scp Clutch-2.0.4 root@192.168.1.168:/usr/bin/”。具体操作可参考:https://blog.csdn.net/yahibo/article/details/93749149
3>Class-Dump<MACOS> 这个程序的功能是比ida的F5解析出来的代码更容易看懂。 可以在"http://stevenygard.com/download/class-dump-3.5.dmg"下载到。<ios下在Cydia里搜索'class-dump'安装,Mac下可以百度找到下载>代码基本接近原生的源码。
4>SSH<MACOS> ,这个主要用于连接ios系统,<ios下在Cydia里搜索'SSH Connect'安装,Mac下直接在apple store搜索 ssh安装>以完整权限的方式实现代理操作.比如查看ios系统里当前的运行日志,以及一些需要在ios系统的机器下才能完成的操作。
5>ondeviceconsole<IOS> ,这个程序顾名思义,<在Cydia里搜索安装>.就是用来在mac上显示ios系统运行的日志的。当然要在SSH登录之后,才能使用此命令.并且特别要注意是小写。
6>dpkg<MACOS> .这个是安装我们写好的越狱app用的.
可能遇到的一些问题:
1.ssh连接不上.这个需要核对ios系统所在的IP,以及ssh的密码不要去频繁改动.
2.clutch的版本要在1.4.7及以上,要将下载好的程序放在 /usr/bin/下,而且如果在ios系统上的Mobiletermial上修改好权限为777,也可以在mac下的ssh里敲入:
chmod +x /usr/bin/Clutch-2.0.4 或者
chmod 777 clutch 。注意命令clutch对大小写敏感.这里不能错,否则会提示没有此命令。命令:Clutch -- daib 代表破解全部应用 Clutch QQ表示只破解名称为QQ的app。可能一次还不能破解成功,要多试几次。【如果运行clutch的时候,提示“zsh: killed”,可能是ios版本太高的原因,可以尝试使用CrackerXI+】
3.在xcode里,安装写好的插件,要用"Product/Build For/Profiling"进行安装.而且选项卡“Build Settings”里,要配置好以下几个选项:
1>iosOpenDevDevice :192.168.1.101 这里填你的ios设备的IP地址。一般是wifi下的局域网ip
2>iosOpenDevInstallOnProfiling:YES 这就是为什么我们要在Profiling下生成并安装的原因,当然你也可以选择 OnAnyBuild,在任何编译生成动作之后开始安装.
3>iosOpenDevUsePackageVersionPList:YES .这个好像是便于版本控制.具体我也不太清楚用途。自己百度之.
4.在"Build Phases"选项卡里,Link Binary With Libaries这里除了要添加代码中用到的引用项之外,还要引用 libsubstrate.dylib。因为默认是没有这个引用的,也就无法找到hook的核心链接库在哪了。特别需要注意的是,iosopendev自带的那个libsubstrate.dylib貌似不能自适应ios的cpu架构,需要从目标ios设备上将文件“/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate”拷贝并且替换掉
5.在安装的过程中,如果之前安装成功过一次,改动一些代码之后,再去安装。会提示 "status database area is locked by another process “的错误.实际上是由于生成的缓存或者是插件还在运行当中,占用的进程,导致程序无法被替换。这个时候,要先"Clean",或者在ios设备上退出与插件引用相关的进程。
________________________________
后记:
1.SSH连接的时候,命令是:ssh root@192.168.xx.xx,这个IP地址必须是同一局域网内的ios设备上的,不能错。也可以进行免密保存:iosod sshkey -h 192.168.xx.xx
2.Clutch是运行在ios上基于cydia的app,可能的路径是 /var/mobile/,由于在ssh上敲入的clutch,结果一直提示未知的命令。实际上是因为这些app运行起来大小敏感。必须输入Clutch。
更多关于Clutch的操作可以参考:http://www.lookgame.com/jiaocheng/shouyou/469/
3.class-dump 的使用。路径问题切记,新破解的ipa需要先解压出来,然后用解压出来的可执行文件去尝试。不能直接将.ipa拿去反编译。
class-dump -H /Users/wuxiping/Desktop/Dessembly/QQ-v6.5.8.437-no-name-cracker/Payload/QQ.app -o /Users/wuxiping/Desktop/Dessembly/Pojie/
如果以上还是提示错误的话,可以尝试下面的命令行
class-dump -H /Users/wuxiping/Desktop/Dessembly/QQMusic -o /Users/wuxiping/Desktop/Dessembly/Pojie
新手IOS tweak越狱app开发记录的更多相关文章
- 【Android开发】微信精选,文章资讯类App开发记录总结
缘起 微信精选的App开发来源是在聚合数据上看到了有免费的微信精选的数据接口,无限调用.相对于其他的诸如违章查询,医药查询,NBA赛事等等,我感觉还是微信文章精选这个数据接口离我最近,所以想着拿着个数 ...
- iOS 直播类APP开发流程分解:
1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机:CCD.C ...
- iOS 直播类APP开发流程解析
1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机:CCD.C ...
- 2月4日 体温APP开发记录
1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.数据库链接,,数据传输功能测试
- 2月3日 体温APP开发记录
1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.回返地址学习,下载导入相关jar包
- 2月2日 体温APP开发记录
1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.Edit text使用学习
- 2月1日 体温APP开发记录
1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发
- 1月29日 体温APP开发记录
1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.高德地图API下载获取key
- visual studio 2013下搭建 安卓,ios,wp app开发平台
1.安装 visual studio 2013 + Microsoft Visual Studio 2013 Update 4+Microsoft Build Tools 2015 2.安装java ...
随机推荐
- 妙用next数组打表求最小循环节len
https://www.cnblogs.com/njczy2010/p/3930688.html https://blog.csdn.net/dominating413421391/article/d ...
- Flask实战第54天:cms删除轮播图功能完成
后台逻辑 编辑cms.views.py @bp.route('/dbanner/',methods=['POST']) @login_required def dbanner(): banner_id ...
- 分布式框架Dubbo配置和实例
准备工作: 1.ZooKeeper:需要去Apache Zookeeper官网下载Zookeeper.tar.gz包,Dubbo是依赖于Zookeeper的 2.Maven:需要去Apache Mav ...
- grunt-contrib-qunit安装过程中phantomjs安装报错问题解决
今天自己fork了一个github上别人写的一个关于grunt项目的一个小demo(https://github.com/cowboy/jquery-tiny-pubsub),主要是想学习下grunt ...
- AvalonJS学习笔记(一)
一.关于AvalonJS avalon是国内的一个MVVM框架,是从knockout发展起来的 分为两个版本 avalon.js版本,支持IE6及非常老的标准浏览器.这里的标准浏览器特指W3C阵营中的 ...
- RUP你知道多少?
RUP 相信学UML的同学,对此都很耳熟,当然也眼熟,可是,对于RUP,你了解多少呢? 首先,什么是RUP? RUP是Rational UnifiedProcess,统一软件开发过程,是一个面向对象且 ...
- Android Studio检测内存泄露和性能
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 首先需要明白一个概念, 内存泄露就是指,本应该回收的内存,还驻留在内存中. 一般情况下,高密度的 ...
- BZOJ 2049 [Sdoi2008]Cave 洞穴勘测(动态树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2049 [题目大意] 要求支持树的断边和连边,以及连接查询 [题解] LCT练习题 [代 ...
- (疯狂java)第四课(上)
趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧. 1.java 7的增强包装类 这些包装类就是java上的基本类型,只不过人人基本 ...
- python基础之数据类型之数字、字符串、列表
数据类型及内置方法 一.数字类型 整数型(int) 1.用途:年龄,号码等 2.定义:age = 10 age = int(10) x = int(’11’) int只能转换纯数字的字符串 3 ...