文档章节

ios在没有越狱的机器上安装插件

余成海
 余成海
发布于 2017/01/10 20:38
字数 966
阅读 110
收藏 0

之前分享过如何用tweak的方式做一个微信抢红包插件,然后安装在越狱手机上《ios-微信自动抢红包插件

今天分享下如果用你上次写好的插件安装到没有越狱的手机上。前提是你有apple的开发者账号。这样才能有证书重新打包。

1.将线上的微信app敲壳备用Clutch 或者直接到越狱平台上下载一个(pp助手,同步推什么的)

编译Clutch成功后会出现Clutch.app文件,打开包文件会有我们想要的Clutch,将它拷贝到越狱手机上

(如果没有越狱手机,可以直接到第三方平台上下载包ipa)

然后将编译出来的Clutch拷贝到手机上使用 (有些小伙伴懒得编译或者没有证书,可以直接下载

$ chmod 777 Clutch
$ scp Clutch root@<手机ip>:/usr/bin/

连接上越狱手机开始敲壳 密码:alpine

$ ssh root@10.242.68.37 
$ Clutch -i

$ Clutch -d com.tencent.xin

敲壳成功后会生成ipa到/private/var/mobile/Documents/Dumped/目录下,将其拷贝回电脑上,其实就和我们到越狱平台上下载的ipa是一样的

$ mv /private/var/mobile/Documents/Dumped/com.tencent.xin-iOS7.0-\(Clutch-2.0.4\).ipa /private/var/mobile/Documents/Dumped/wechat.ipa
$ scp root@<your.device.ip>:/private/var/mobile/Documents/Dumped/wechat.ipa ~/Desktop

2.打包之前做好的代码生成dylib

到你编写的tweak目录下make 会生成obj目录,里面就有我们想要的dylib文件,不明白可以回看这篇博客《theos搭建

3.合并依赖库

上面的代码是需要合并依赖库的

$ otool -L WeChatRedEnvelop.dylib

WeChatRedEnvelop.dylib (architecture armv7):
	/Library/MobileSubstrate/DynamicLibraries/WeChatRedEnvelop.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.13.0)
	/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.22.0)
	/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3600.6.21)
	/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
WeChatRedEnvelop.dylib (architecture arm64):
	/Library/MobileSubstrate/DynamicLibraries/WeChatRedEnvelop.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.13.0)
	/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.22.0)
	/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3600.6.21)
	/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)

发现会有这么个东西/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate

从越狱手机里面考出这个东西,然后修改下,然后将CydiaSubstrate改名成libsubstrate.dylib

$ scp root@<手机ip>:/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate ~/Desktop
$ install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib WeChatRedEnvelop.dylib
$ otool -L WeChatRedEnvelop.dylib
WeChatRedEnvelop.dylib (architecture armv7):
	/Library/MobileSubstrate/DynamicLibraries/WeChatRedEnvelop.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.13.0)
	/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.22.0)
	/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3600.6.21)
	@loader_path/libsubstrate.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)
WeChatRedEnvelop.dylib (architecture arm64):
	/Library/MobileSubstrate/DynamicLibraries/WeChatRedEnvelop.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.13.0)
	/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.22.0)
	/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3600.6.21)
	@loader_path/libsubstrate.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)

4.将动态链接库注入二进制文件中

下载optool工具

将砸壳过的 ipa 文件解压,然后将 CydiaSubstrate 与 WeChatRedEnvelop.dylib 拷贝到解压后的 WeChat.app 目录下。

$ unzip wechat.ipa -d wechat
$ cp libsubstrate.dylib WeChatRedEnvelop.dylib wechat/Payload/WeChat.app

$ ./optool install -c load -p "@executable_path/WeChatRedEnvelop.dylib" -t wechat/Payload/WeChat.app/WeChat

5.打包并重签名

ios-app-signer 功能能快速帮助重新打包,只要放入你的证书就能重新打包成ipa。

然后通过各种工具安装ipa到你的手机上,就大功告成了

注:如果遇到Watch报错,就在.app中删除watch目录,重新打包

© 著作权归作者所有

共有 人打赏支持
余成海
粉丝 61
博文 57
码字总数 29577
作品 0
杭州
iOS工程师
iOS逆向与安全(一):环境搭建

前言 从本篇文章开始,笔者会整理iOS逆向相关的笔记。作为一位新人,希望通过整理笔记能够更好的理解和掌握知识。作为新人能力有限,在行文时难免出现错误欢迎批评和指正。 前期准备 一台越狱...

紫电清霜Owenli
09/16
0
0
关于IOS越狱和解锁必须知道的一些事情

1.什么是越狱? 苹果开发的每一款产品,包括iphone,ipad,i pod touch和Mac,想要安装软件都是需要从App Store上面购买的,其实购买的不是软件,而是苹果在软件中植入的一个认证,于是大家就...

eric_zhang
2012/12/08
0
0
xFace的快速入门--IOS

ios系统的快速入门和Android的大部分都差不多,模拟器这部分是一样的,只是player的使用上有点区别,今天就来看看ios设备的快速入门。 1、下载工具 便携版模拟器Emulator(Windows) 下载地址...

xFace3
2013/12/03
0
0
阿里潘多拉实验室成功越狱 iOS 12 系统

雷锋网(公众号:雷锋网)消息,9月18日凌晨,Apple(苹果)正式对外发布最新的 iOS 12系统,几小时后,其安全防护系统很快就被阿里安全潘多拉实验室安全专家攻破,成为全球首个完成 iOS 12 完...

郭佳
09/19
0
0
如何在Electra越狱的设备上使用LLDB调试应用程序

        在3月18日的时候,我就曾发表过一篇关于在Electra越狱的设备上使用LLDB调试应用程序的文章。本文我将在此基础上,做进一步的更新优化。   我试图在google搜索,有关使用Ele...

FreeBuf
05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

74.expect脚本同步文件以及指定host同步文件 构建分发系统文件和命令

20.31 expect脚本同步文件: 在expect脚本中去实现在一台机器上把文件同步到另外一台机器上去。核心命令用的是rsync ~1.自动同步文件 #!/usr/bin/expect set passwd "123456" spawn rsync -a...

王鑫linux
17分钟前
0
0
TypeScript项目引用(project references)

转发 TypeScript项目引用(project references) TypeScript新特性之项目引用(project references) 项目引用是TypeScript 3.0中的一项新功能,允许您将TypeScript程序构建为更小的部分。 通过这...

durban
21分钟前
0
0
爬虫入门

导读 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取...

问题终结者
21分钟前
0
0
ppwjs之bootstrap文字排版:无序列表项不换行

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
28分钟前
0
0
SpringBoot 学习一

本文将从以下几个方面介绍: 前言 HelloWorld 读取配置文件 例子(CURD) 前言 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架...

tsmyk0715
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部