需要改变原先程序功能流程的话,是要用到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开发记录的更多相关文章

  1. 【Android开发】微信精选,文章资讯类App开发记录总结

    缘起 微信精选的App开发来源是在聚合数据上看到了有免费的微信精选的数据接口,无限调用.相对于其他的诸如违章查询,医药查询,NBA赛事等等,我感觉还是微信文章精选这个数据接口离我最近,所以想着拿着个数 ...

  2. iOS 直播类APP开发流程分解:

    1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机:CCD.C ...

  3. iOS 直播类APP开发流程解析

    1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机:CCD.C ...

  4. 2月4日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.数据库链接,,数据传输功能测试

  5. 2月3日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.回返地址学习,下载导入相关jar包

  6. 2月2日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.Edit text使用学习

  7. 2月1日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发

  8. 1月29日 体温APP开发记录

    1.阅读构建之法 现代软件工程(第三版) 2.观看Android开发视频教程最新版 Android Studio开发 3.高德地图API下载获取key  

  9. visual studio 2013下搭建 安卓,ios,wp app开发平台

    1.安装 visual studio 2013 + Microsoft Visual Studio 2013 Update 4+Microsoft Build Tools 2015 2.安装java ...

随机推荐

  1. 妙用next数组打表求最小循环节len

    https://www.cnblogs.com/njczy2010/p/3930688.html https://blog.csdn.net/dominating413421391/article/d ...

  2. Flask实战第54天:cms删除轮播图功能完成

    后台逻辑 编辑cms.views.py @bp.route('/dbanner/',methods=['POST']) @login_required def dbanner(): banner_id ...

  3. 分布式框架Dubbo配置和实例

    准备工作: 1.ZooKeeper:需要去Apache Zookeeper官网下载Zookeeper.tar.gz包,Dubbo是依赖于Zookeeper的 2.Maven:需要去Apache Mav ...

  4. grunt-contrib-qunit安装过程中phantomjs安装报错问题解决

    今天自己fork了一个github上别人写的一个关于grunt项目的一个小demo(https://github.com/cowboy/jquery-tiny-pubsub),主要是想学习下grunt ...

  5. AvalonJS学习笔记(一)

    一.关于AvalonJS avalon是国内的一个MVVM框架,是从knockout发展起来的 分为两个版本 avalon.js版本,支持IE6及非常老的标准浏览器.这里的标准浏览器特指W3C阵营中的 ...

  6. RUP你知道多少?

    RUP 相信学UML的同学,对此都很耳熟,当然也眼熟,可是,对于RUP,你了解多少呢? 首先,什么是RUP? RUP是Rational UnifiedProcess,统一软件开发过程,是一个面向对象且 ...

  7. Android Studio检测内存泄露和性能

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com 首先需要明白一个概念, 内存泄露就是指,本应该回收的内存,还驻留在内存中. 一般情况下,高密度的 ...

  8. BZOJ 2049 [Sdoi2008]Cave 洞穴勘测(动态树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2049 [题目大意] 要求支持树的断边和连边,以及连接查询 [题解] LCT练习题 [代 ...

  9. (疯狂java)第四课(上)

    趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧. 1.java 7的增强包装类 这些包装类就是java上的基本类型,只不过人人基本 ...

  10. python基础之数据类型之数字、字符串、列表

    数据类型及内置方法 一.数字类型 整数型(int) 1.用途:年龄,号码等 2.定义:age = 10   age = int(10) x = int(’11’)   int只能转换纯数字的字符串 3 ...