请稍侯

iOS安防及越狱开发相关知识总结

21 October 2016

iOS安防及越狱开发相关知识总结

首先要有一个越狱设备,没得说的。

脱壳

因为从AppStore下载的ipa都是加了壳的(苹果把开发者上传的ipa进行了加壳后财放到AppStore的),所以加壳的ipa要先去壳。因为通过xcode打的包是没有加壳的,所以在第三方渠道如PP助手、itools等应用市场有很多ipa是开发者直接分发没有加壳的。

脱壳可以用clutchdumpdecrypted或者使用gdb調試等解密去壳

Clutch脱壳破解:iOS逆向之ipa破解

iOS逆向之App脱壳:http://www.jianshu.com/p/47836c78eb0a

App脱壳及ipa破解:iOS逆向:App脱壳/ipa破解

iOS逆向工程之App脱壳:http://www.cnblogs.com/ludashi/p/5725743.html

GDB命令行调试

gdbiOS下动态调试的利器。(llvm对应gcc),(lldb对应gdb),lldb里面对应的调试命令跟gdb里没太大区别。 gdb的安装:在cydia中添加源:cydia.radare.org 。搜索 GNU Debugger,安装即可。

更多的详情介绍参考:

iOS安全攻防(二十)动态调试利器—gdb基础篇

阻止 GDB 依附

进程注入工具cycript

Cycript安装可以前往Cydia下载安装。

更多关于Cycript:

iOS逆向工程(Cycript脚本语言使用与实战)

使用 Cycript 修改支付宝 App 运行时

脱壳工具dumpdecrypted

dumpdecrypted:https://github.com/stefanesser/dumpdecrypted/archive/master.zip

下载后,解压运行make编译,就会在当前目录下生成dumpdecrypted.dylib文件

头文件导出

class-dump:class-dump用于导出头文件。 导出头文件步骤: 1. 上传dumpdecrypted.dylib到目标APP的Documents下(使用iFunBox或scp都可以); 2. 把目标应用运行起来,然后通过SSH连接到越犾的设备上,运行ps -e来打印所有进程信息,并找出具体要脱壳的应用目录。 3. 进入到dumpdecrypted.dylib所在目录下,执行脱壳命令:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/EDBFAB4B-A976-400F-932C-0A5B0FDA3D24/calligraphy.app/calligraphy ,此时就会在Documents下,生成一个xxx..decrypted的文件,这就是脱壳的文件了。 4. 使用class-dump导出头文件,把calligraphy.decrypted复制到mac上执行命令class-dump --arch armv7 -H calligraphy.decrypted -o calligraphy.h

更深入详细的相关参考:

iOS 安全攻防

使用 class-dump-z 分析支付宝 App

使用 iNalyzer 分析应用程序

使用 introspy 追踪分析应用程序

移动版的Reveal工具 — FLEX

  1. 生成flex的.dylib库,Xcode安装iOSOpenDev插件即可创建iOS的dylib动态库;
  2. 通过越狱后提供的 MobileSubstrate 框架帮助我们加载动态库中的代码,
  3. 拷贝到真机scp -r libFlex.dylib root@192.168.2.2:/Library/MobileSubstrate/DynamicLibraries,再重启真机或者 ssh 到真机执行命令:killall SpringBoard

    它将会在每个 App 加载后动态载入显示,如果你不想这样,可以在/Library/MobileSubstrate/DynamicLibraries目录下新建同名配置文件libFlex.plist,使其在指定 App 中才会自动加载,例子如下:

    {
     Filter = {
         Bundles = ("com.sina.weibo");
         Bundles = ("com.burbn.instagram");
         Bundles = ("com.apple.podcasts");
         Bundles = ("com.atebits.Tweetie2");
         Bundles = ("com.360buy.jdmobile");
     };
    }
    

    其中填入的 BundlesID 可以在目标 App 根目录下的 iTunesMetadata.plist 文件中获取到

更多相关资源:

Flipboard/FLEX

FLEX .dylib生成脚本

一个自定义的允许添加事件响应的Flipboard FLEX

iOS建立动态库工程

Xcode4.6创建和使用iOS的dylib动态库

iOS程序逆向相关三个强大的工具——Reveal、HopperDisassemble、IDA

详情见:http://www.cnblogs.com/mddblog/p/4960505.html

逆向工程 - Reveal、IDA、Hopper、https抓包

IDA:强大的反汇编工具

手把手教你反编译别人的app

TheOS越狱开发利器

TheOS 被设计为一个在基于 Unix 平台 (Mac OS X、IOS…) 和大多数 的Linux 平台下开发 iOS 程序的集成开发环境。当然除了 TheOS 之外,还有另外一种方法,就是用 iOSOpenDev 界面化开进行 iOS 越狱开发。

详细参考:

iOS越狱开发-TheOS 介绍:iOS越狱开发-TheOS 介绍

Theos:iOS越狱程序开发框架:http://security.ios-wiki.com/issue-3-6/

MachOView介绍

Mach-O格式全称为Mach Object文件格式的缩写,是mac上可执行文件的格式,类似于windows上的PE格式 (Portable Executable ), linux上的elf格式 (Executable and Linking Format)。

更多信息参考:Macho文件浏览器—MachOView

参考链接

极客学院完美的资源:Hack 必备的命令与工具