新手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 ...
随机推荐
- Codeforces 1131 A. Sea Battle-暴力 (Codeforces Round #541 (Div. 2))
A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Spring学习的切入点
spring是个顶级的框架,这话没毛病.很多人想把它征服,想去阅读它的源码,弄懂它的设计思想,从中学到精粹. 但是很多次打开后,看到庞大的体系结构,就懵逼了,不知从何入手. 我在这里总结下学习spri ...
- SublimeCodeIntel代码自动补全配置
主要使用python3,所有配置以python3为例.其他语言同理.利用sublimeCodeIntel插件可以实现自动提示python3代码.跳转追踪自定义函数.查看系统函数等.功能还是相当强大的. ...
- NOIP 2006 提高组 t1 能量项链
题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定 ...
- pycharm直接连接mysql数据库
1.找到view---Tool windows -- Database 2.连接 3.输入地址,账号,密码 4.如果不能使用证明少安装了插件 点击直接安装插件 5.这样就直接能在pycharm中点击刷 ...
- kubernetes HA 脚本
集群方案: 发行版:CentOS 7 版本: Kubernetes:1.9.1 master高可用方案:keepalived LVS 网络方案:Flannel Master HA 四步骤: 1. 安装 ...
- ORACLE查询表最近更改数据的方法
修改项目时,涉及到了Oracle中许多表的修改(包括:增加.删除字段,修改注释等).由于开始没有进行记录,造成在上测试机时,忘记了具体修改过哪些表了.后来在网上查找了一些资料,例如: 1.select ...
- Android 卡顿优化 2 渲染优化
1.概述 2015年初google发布了Android性能优化典范,发了16个小视频供大家欣赏,当时我也将其下载,通过微信公众号给大家推送了百度云的下载地址(地址在文末,ps:欢迎大家订阅公众号),那 ...
- void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别?
void fun() const{}; const void fun(){}; 和void const fun(){}; 的区别? const void fun(){};和void const fun ...
- 简单nginx+tomca负载均衡
Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 ...