TOOLS

1.已越狱的设备,并且已安装了OpenSSH,MobileSubstrate等实用工具 Cydia源/Telesphoreo里有 里面有个包 可以基本集合所有开发工具提供库
2.mac os已安装了Reveal revealapp.com  , theos,itools ,dyld_decache,Mesasqlite等工具

  这里主要讲解两种分析他人app界面方式:

第一: 系统app (如app store等)

第二:普通app(如易信,微信,instagram等)

下面讲解第一种:

1. 拷贝Reveal的framework和dylib到越狱设备
scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/Reveal.framework root@192.173.1.60:/System/Library/Frameworks
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib root@192.173.1.60:/Library/MobileSubstrate/DynamicLibraries

<这里提及到:ssh到远程设备root 密码默认是:alpine>
2. 登陆到远程设备 然后编辑libReveal.plist


/Library/MobileSubstrate/DynamicLibraries/下创建文件libReveal.plist,指定app的Bundle

3. 重启
 1)killall SpringBoard
2) reboot

第二种: (分析普通app)(激动人心的时候来了)

以下将拿网易 "易信"app做案例分析.

设备信息:iphone4s

版本: ios7.0.4

(以下是简单的所需工具)

下载好一切工具之后 执行安装命令. Tweak

具体可以看老外几个大神的安装教程,这里我稍后给出,以上一系列操作完成之后在目录下会生成如下:

图中 RevealUtils.h  RevealUtils.m文件是在Reveal官网拉取简单修改了下已做处理.

至于.xm后缀名文件一些语法你们可以看看相关教程 很简单.

com.yixin.yixin_0.0.1-1_iphoneos-arm.deb 是make package之后生成的文件:如下是命令日志

applematoMacBook-Pro-:yixin applepc$ make clean
mack pa/Users/applepc/Documents/mygithubDir/jarlbreak/yixin/theos/makefiles/targets/Darwin/iphone.mk:: Deploying to iOS 3.0 while building for 6.0 will generate armv7-only binaries.
rm -rf ./obj
-- ::27.593 xcodebuild[:d07] Could not fetch 'View' main menu item
ckagrm -rf "/Users/applepc/Documents/mygithubDir/jarlbreak/yixin/_"
applematoMacBook-Pro-:yixin applepc$ mack package
-bash: mack: command not found
applematoMacBook-Pro-:yixin applepc$ make clean
/Users/applepc/Documents/mygithubDir/jarlbreak/yixin/theos/makefiles/targets/Darwin/iphone.mk:: Deploying to iOS 3.0 while building for 6.0 will generate armv7-only binaries.
rm -rf ./obj
rm -rf "/Users/applepc/Documents/mygithubDir/jarlbreak/yixin/_"
applematoMacBook-Pro-:yixin applepc$ make
/Users/applepc/Documents/mygithubDir/jarlbreak/yixin/theos/makefiles/targets/Darwin/iphone.mk:: Deploying to iOS 3.0 while building for 6.0 will generate armv7-only binaries.
Making all for tweak yixin...
Preprocessing Tweak.xm...
Compiling Tweak.xm...
make Preprocessing Tweak_Instagram.xm...
Compiling Tweak_Instagram.xm...
Compiling RevealUtils.m...
pc Linking tweak yixin...
a Stripping yixin...
Signing yixin...
^R
make pcapplematoMacBook-Pro-:yixin applepc$ make package
/Users/applepc/Documents/mygithubDir/jarlbreak/yixin/theos/makefiles/targets/Darwin/iphone.mk:: Deploying to iOS 3.0 while building for 6.0 will generate armv7-only binaries.
Making all for tweak yixin...
make[]: Nothing to be done for `internal-library-compile'.
Making stage for tweak yixin...
dpkg-deb: building package `com.yixin.yixin' in `./com.yixin.yixin_0.0.1-2_iphoneos-arm.deb'.
applematoMacBook-Pro-:yixin applepc$

然后只需把com.yixin.yixin_0.0.1-2_iphoneos-arm.deb 传到越狱设备里用iFile安装下就可以了

重启易信,

之后激动人心的时刻来了.

易信里面实现方式 和布局看的一清二楚.

下一篇讲解如何获取易信所有.h 头文件 以及解壳易信

iOS越狱系列(一):使用Reveal分析APP的更多相关文章

  1. ios开发系列之内存泄漏分析(下)

    接上篇,本篇主要讲解通知和 KVO 不移除观察者.block 循环引用 .NSThread 和 RunLoop一起使用造成的内存泄漏. 1.通知造成的内存泄漏 1.1.ios9 以后,一般的通知,都不 ...

  2. ios开发系列之内存泄漏分析(上)

    ios自从引入ARC机制后,一般的内存管理就可以不用我们码农来负责了,但是一些操作如果不注意,还是会引起内存泄漏. 本文主要介绍一下内存泄漏的原理.常规的检测方法以及出现的常用场景和修改方法. 1.  ...

  3. iOS开发系列之app的一天

    本文主要讲述我对 iOS 开发的一些理解,希望能通过 app 从启动到退出,将一些的知识整合起来,形成一条知识链,目前涉及到的知识点有 runloop.runtime.文件存储.界面布局.离线推送.内 ...

  4. iOS安全攻防(三):使用Reveal分析他人app

    使用Reveal分析他人app 准备工作 1)已越狱的设备,而且已安装了OpenSSH,MobileSubstrate等有用工具(Cydia源里安装) 2)本地已安装了Reveal 操作步骤 1)拷贝 ...

  5. iOS使用Reveal分析他人app界面

    本文转自http://blog.csdn.net/cuibo1123/article/details/45694657 安装: 首先前往 http://revealapp.com/download/  ...

  6. iOS逆向系列-逆向APP思路

    界面分析 通过Cycript.Reveal. 对于Reveal安装配置可参考配置iOS逆向系列-Reveal 通过Reveal找到内存中的UI对象 静态分析 开发者编写的所有代码最终编译链接到Mach ...

  7. Reveal分析IOS界面,plist文件读取

    Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 , 而IOS8的iTunesMetadata.plist (设备路径/var/mobi ...

  8. iOS逆向分析app

    适合有一定的逆向编程基础的人看. 背景:自动抢红包的脚本工具:cyscript,reveal,class-dump,越狱的pod等. 这里先上一张reveal的分析图: 小结:获取到了真个软件的整体结 ...

  9. iOS开发系列--App扩展开发

    概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...

随机推荐

  1. 在Python中的格式化

    str= '@SES/%i/'%-1print strstr1='@SES/%i/'%1print str1str2='@SES/%i/'%2print str2 打印出的结果: @SES/-1/@S ...

  2. Gtk中的文本视图(GtkTexViewWidget)

    Gtk中的文本视图(GtkTexViewWidget) Gtk中的文本视图(GtkTexView Widget) 在本章的Gtk+程序设计教程中,我们将重点介绍 GtkTexView 构件. GtkT ...

  3. [NOIP2003]栈

    2003年普及组 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重 ...

  4. javascript设计模式2

    接口:利 固化一部分代码 弊 丧失js的灵活性 在JavaScript中模仿接口 /* interface Composite{ function add(child); function remov ...

  5. 【原创】Mac上编译Hadoop1.0.3出现的一些问题

    create-native-configure: [exec] configure.ac:47: error: possibly undefined macro: AC_PROG_LIBTOOL [e ...

  6. 8-14-Exercise

    8-14-小练 这次是我这组出题......我出的是B.C.D[虽然本来是想出的很难......╮(╯▽╰)╭但是,没找到AC1000+同时又让我想出的难题......SO...我出的真的不难= =] ...

  7. Mysql相关问答

    问:我们团队中的一人想要使用 bigint 字段类型来代替 25-30 长度的 varchar 类型来存储 CRC64 数据,然后将索引也改成 bigint 的索引,这会节省索引的空间.请问这否是合理 ...

  8. Eclipse + Pydev 配置Python开发环境

    之前有人问 Eclipse + Pydev 的环境配置问题,在此记录一下. 前提条件:需要安装 Eclipse .jdk.Python.这三个软件都可以在官网上下载. 假设上述软件已经安装好了,下面是 ...

  9. 如何减少不能重现的Bug

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何减少不能重现的Bug.

  10. linux命令行模式下实现代理上网

    有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...