App Extension的脱壳办法
App Extension的脱壳办法
从app store下载的app和app extension是加过密的,可以通过otool查看:
$ otool -l binary_name | grep crypt
cryptoff 16384
cryptsize 294912
cryptid 1
iPhone applications的解密办法
dumpdecrypted 是个出色的app脱壳开源工具,它的原理是:将应用程序运行起来(iOS系统会先解密程序再启动),然后将内存中的解密结果dump写入文件中,得到一个新的可执行程序。
iPhone app extensions的特别之处
- app extension虽是独立进程,但不可独立运行
- app extension的进程中,写权限被严格控制
基于以上两点,dumpdecrypted 无法实现对iPhone app extensions的脱壳。
iPhone app extensions的解密办法
通过对dumpdecrypted稍作修改,更改其写入dump结果的path,变通启动方式就可实现对app extension的解密,详见:Carina’s dumpdecrypted
使用方法很简单,用微信的Share Extension为例
1、本地编译好 dumpdecrypted.dylib
2、指定作用的Extension Bundle
{
Filter = {
Bundles = ("com.tencent.xin.sharetimeline");
};
}
3、将 dumpdecrypted.plist 和 dumpdecrypted.dylib 拷贝至越狱机的 /Library/MobileSubstrate/DynamicLibraries/ 下
4、利用系统相册启动微信的Share Extension
当微信的Share Extension被启动时,解密插件自动工作。 值得注意的是,如果你的越狱机是armv7架构,那么也就只dump armv7那部分; 如果越狱机是arm64架构,那么也就只dump arm64那部分。So,最后你需要:
$ lipo -thin armv7 xxx.decrypted -output xxx_armv7.decrypted
$ lipo -thin armv64 xxx.decrypted -output xxx_arm64.decrypted
来得到干净的dump结果
App Extension的脱壳办法的更多相关文章
- iOS9中找不到XXX.dylib 与 is unavailable no availabel on ios (app extension) - use view controller 的解决办法
在 iOS9 中现在找不到 XXX.dylib 了,比如libz.tbd 如果要用到 libz.dylib,可以用下面的办法,来自 Stack Overflow. Go to Build Phase ...
- 关于报错:'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based
最近在看Extension相关知识的时候,自己写了个小demo 发现[UIApplication sharedApplication]这个方法敲不出来了, 总是报错:'sharedApplicatio ...
- App Extension访问Cocoapods引入的第三方库
步骤一: PROJECT --info --configurations,将对应的Debug和Release 设置成pods.debug和pods.release 步骤2:编译一下(本人遇到的问 ...
- App Extension Today
App Extensions 是iOS8新开放的扩展机制,之后不断增加功能.App Extension Programming Guide: Today 不喜欢废话,直接上干货! 一:重要概 ...
- App Extension编程指南(iOS8/OS X v10.10)中文版
http://www.cocoachina.com/ios/20141023/10027.html 当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展.顾名思 ...
- iOS - App Extension 整体总结
一.App Extension的介绍 App Extension可以让你扩展你APP的自定义功能和内容,使用户可以在与其他应用或者系统进行互动的时候去使用它.app extension即为本文所说的e ...
- iOS 在Host App 与 App Extension 之间发送通知
如何从你的一个App发送通知给另一个App? (例:搜狗输入法下载皮肤完成后使用皮肤) 注:搜狗输入法是App.而键盘是Extension 当你为你的App 添加 App Extension时,如果想 ...
- 揭秘 iOS App Extension 开发 —— Today 篇
转自:http://www.cocoachina.com/ios/20160619/16760.html 本文授权转载,作者:Cyandev(简书) 从 iOS 8 开始,苹果引入了全新的 App E ...
- iOS App Extension入门
转自简书:http://www.jianshu.com/p/8cf08db29356 iOS 10推出了很多新功能,其中有几个高调的变化:通知栏更加实用,电话可以防骚扰,iMessage变得更加有 ...
随机推荐
- cocos2d-x v3.0各个环境下创建项目以及编译、执行官方DEMO
摘自:https://github.com/cocos2d/cocos2d-x/ 怎样创建一个新项目 How to start a new game Download the code from co ...
- Android studio如何导出.so库(NDK开发入门)
转自:http://blog.csdn.net/ssy_neo/article/details/51758687 项目中用到了硬件调试,google一下拿到了硬件调试的源码,可惜握草so库根本加载不进 ...
- php 单进程SAPI生命周期
php的生命周期3.1 STARTUP 1.初始化引擎和核心组件. 2.解析php.ini. 3.初始化静态构建的模块(MINIT). 4.初始化共享模块(MINIT).3.2 ...
- 【转】svn 的开发目录结构和流程
原文: https://blog.csdn.net/iteye_15570/article/details/82548132 ------------------------------------- ...
- 解决iOS Xcode 模拟器键盘不弹出
1. 选中模拟器,在屏幕上方的菜单中找到Hardware->Keyboard 2. 直接快捷键shift+command+k
- T-SQL 之 DDL语法
CREATE语句的开头都是一样的,然后是特定的细节. CREATE <object type> <object name> 一.CREATE DATABASE CREATE D ...
- SQL语法 之 表连接
一.连接条件 连接查询中用来连接连个表的条件称为连接条件或连接谓词.其形式为: [<表1>].<列名1> <连接运算符> [<表2>].<列2&g ...
- HTTP 响应头消息
HTTP 响应头信息 HTTP请求头提供了关于请求,响应或者其他的发送实体的信息. 在本章节中我们将具体来介绍HTTP响应头信息. 应答头 说明 Allow 服务器支持哪些请求方法(如GET.POST ...
- Project Euler:Problem 76 Counting summations
It is possible to write five as a sum in exactly six different ways: 4 + 1 3 + 2 3 + 1 + 1 2 + 2 + 1 ...
- Python list替换元素
替换直接对应位置赋值 假设现在班里仍然是3名同学: >>> L = ['Adam', 'Lisa', 'Bart'] 现在,Bart同学要转学走了,碰巧来了一个Paul同学,要更新班 ...