须要改变原先程序功能流程的话,是要用到Logos Tweak 开发。另外,.在苹果商城下载到的app,不能直接拿来分析。须要先作必定的前期准备。网上有不少相关的写第一个越狱插件的文章,这里就不在赘言了。仅仅记录一些注意事项。留待往后本身若是忘记了,就回过头来看看。ios
通常分为如下的步骤.xcode
1.准备已经越狱的iphone或ipad.系统不要最新,ios 6,7,8比较适宜。缓存
2.Xcode要事先配置好越狱开发的环境,好比如下程序要先下载并安装好:app
1>theos<MACOS> 这个是在xcode没有安装iosOpenDev的环境下,手工开发tweak程序,须要用到的。若是已经安装并配置好了iosOpenDev环境,这一步能够直接无视。ssh
2>Clutch<IOS> 这个是用来“一键”破解应用在提交苹果商城以后,苹果官方加的密.该软件至关傻瓜化。若是找不到,须要添加源:apt.so/brian0817iphone
3>Class-Dump<MACOS> 这个程序的功能是比ida的F5有过之无不及。,<ios下在Cydia里搜索'class-dump'安装,Mac下能够百度找到下载>代码基本接近原生的源码。ui
4>SSH<MACOS> ,这个主要用于链接ios系统,<ios下在Cydia里搜索'SSH Connect'安装,Mac下直接在apple store搜索 ssh安装>以完整权限的方式实现代理操做.好比查看ios系统里当前的运行日志,以及一些须要在ios系统的机器下才能完成的操做。spa
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 777 clutch 。注意命令clutch对大小写敏感.这里不能错,不然会提示没有此命令。命令:Clutch -- daib 表明破解所有应用 Clutch QQ表示只破解名称为QQ的app。
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的核心连接库在哪了。
5.在安装的过程当中,若是以前安装成功过一次,改动一些代码以后,再去安装。会提示 "status database area is locked by another process “的错误.其实是因为生成的缓存或者是插件还在运行当中,占用的进程,致使程序没法被替换。这个时候,要先"Clean",或者在ios设备上退出与插件引用相关的进程。
________________________________
后记:
1.SSH链接的时候,命令是:ssh root@192.168.xx.xx,这个IP地址必须是同一局域网内的ios设备上的,不能错。
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