iOS越狱系列(一):使用Reveal分析APP
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的更多相关文章
- ios开发系列之内存泄漏分析(下)
接上篇,本篇主要讲解通知和 KVO 不移除观察者.block 循环引用 .NSThread 和 RunLoop一起使用造成的内存泄漏. 1.通知造成的内存泄漏 1.1.ios9 以后,一般的通知,都不 ...
- ios开发系列之内存泄漏分析(上)
ios自从引入ARC机制后,一般的内存管理就可以不用我们码农来负责了,但是一些操作如果不注意,还是会引起内存泄漏. 本文主要介绍一下内存泄漏的原理.常规的检测方法以及出现的常用场景和修改方法. 1. ...
- iOS开发系列之app的一天
本文主要讲述我对 iOS 开发的一些理解,希望能通过 app 从启动到退出,将一些的知识整合起来,形成一条知识链,目前涉及到的知识点有 runloop.runtime.文件存储.界面布局.离线推送.内 ...
- iOS安全攻防(三):使用Reveal分析他人app
使用Reveal分析他人app 准备工作 1)已越狱的设备,而且已安装了OpenSSH,MobileSubstrate等有用工具(Cydia源里安装) 2)本地已安装了Reveal 操作步骤 1)拷贝 ...
- iOS使用Reveal分析他人app界面
本文转自http://blog.csdn.net/cuibo1123/article/details/45694657 安装: 首先前往 http://revealapp.com/download/ ...
- iOS逆向系列-逆向APP思路
界面分析 通过Cycript.Reveal. 对于Reveal安装配置可参考配置iOS逆向系列-Reveal 通过Reveal找到内存中的UI对象 静态分析 开发者编写的所有代码最终编译链接到Mach ...
- Reveal分析IOS界面,plist文件读取
Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 , 而IOS8的iTunesMetadata.plist (设备路径/var/mobi ...
- iOS逆向分析app
适合有一定的逆向编程基础的人看. 背景:自动抢红包的脚本工具:cyscript,reveal,class-dump,越狱的pod等. 这里先上一张reveal的分析图: 小结:获取到了真个软件的整体结 ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
随机推荐
- Oracle10g数据类型
1. 字符类型 数据类型 长度 说明 CHAR(n BYTE/CHAR) 默认1字节,n值最大为2000 末尾填充空格以达到指定长度,超过最大长度报错.默认指定长度为字节数,字符长度可以从1字 ...
- r.js 配置文件 build.js 不完整注释
-----------------------------------------------------------------------r.js 配置文件 example.build.js ...
- eclipse tomcat内存溢出,加大内存
保存图片失败,请点击这里获得详细信息. 加入 -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m
- iOS开发——View的透明属性hidden、alpha、opaque
Hidden.Alpha.Opaque的区别 在iOS中,每个View都有Hidden.Alpha.Opaque三个关于透明的属性,官方文档介绍如下: 1. @property(nonatomic) ...
- HW2.24
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- LeetCode:Restore IP Address
93. Restore IP Addresses Given a string containing only digits, restore it by returning all possible ...
- Spout数据源
Spout 数据源 消息源 Spout 是 Storm 的 Topology 中的消息生产者(即 Tuple 的创造者). Spout 介绍 1. Spout 的结构 Spout 是 Storm 的核 ...
- 【Mysql学习笔记】浅析mysql的binlog
最近读一份关于“数据库事务故障恢复"的技术资料,发现对mysql的binlog的认识不够清楚,查阅mysql reference manual有所收获,作为笔记,记录于此. 1. What' ...
- java异常处理一
为什么需要异常处理? 郝斌解释:因为有些异常不能间接的利用if else来处理,比如说输入的时候,将键盘输入的内容转换为数字,此事如果用户输入非数字就会出现异常,而在用户输入之前是无法用程序判断用户所 ...
- IOS ScrollowView 滑动到边缘后不允许再拖动
当scrollowview滑动图片时,滑动到最后一张图本应该不让其滑动,但是如果不可以去设置属性,依然可以滑动,露出白色的底色,挺影响美观的, 可以设置其属性: sv.bounces=NO; 这样就不 ...