【移动安全】初识MonkeyDev

admin 2022年6月18日22:22:50评论231 views字数 5077阅读16分55秒阅读模式


【移动安全】初识MonkeyDev

声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!




  • 一、前言

  • 二、MonkeyDev介绍

  • 三、MonkeyDev插件的安装

  • 四、MonkeyApp的使用

    • 常用的logos语法

  • 五、查找定位微信登录按钮

  • 六、修改微信步数

  • 七、微信抢红包插件

    • 使用Impactor安装

    • 使用AltDeploy安装

    • 使用MonkeyDev安装

    • 注入重打包ipa文件

    • 将ipa安装到非越狱手机

  • 八、总结

  • 九、参考链接

一、前言

过年在家无聊,原本打算装个抢红包插件发笔小横财,却掉进了很多坑,折腾损失了不少时间和精力红包。顺便学习了下猴神MonkeyDev的使用。

二、MonkeyDev介绍

iOSOpenDev的升级版,非越狱插件开发集成神器。

  • 可以使用Xcode开发CaptainHook TweakLogos Tweak和命令行工具,在越狱机器开发插件,这是原来的iOSOpenDev功能的迁移和改进。

  • 只需拖入一个砸壳应用,即可自动集成class-dumprestore-symbolRevealCycript和注入的动态库并重签名安装到非越狱机器。

  • 支持调试自己编写的动态库和第三方App

  • 支持通过CocoaPods第三方应用集成SDK以及非越狱插件,简单来说就是通过CocoaPods建造了一个非越狱插件商店。

相关链接
monkeydev文档说明:https://monkeydev.org/

三、MonkeyDev插件的安装

这里给出官方环境要求和安装步骤:
环境要求

1、 安装最新的theos

sudo git clone --recursive https://github.com/theos/theos.git /opt/theos

2、 安装ldid(如安装theos过程安装了ldid,跳过)

brew install ldid

3、 配置免密码登录越狱设备(如果没有越狱设备,跳过)

ssh-keygen -t rsa -P ''
ssh-copy-id -i /Users/username/.ssh/id_rsa root@ip

或者安装sshpass自己的设置密码:

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
  • 注:Mac环境git clone提速

  • 修改https方式git clone配置 (需根据ss代理端口号而定)

vim ~/.gitconfig

[http]
postBuffer = 524288000
proxy = socks5://127.0.0.1:1086
[https]
proxy = socks5://127.0.0.1:1086
  • 或者用命令行修改配置

git config --global http.proxy 'socks5://127.0.0.1:1086'
git config --global https.proxy 'socks5://127.0.0.1:1086'

安装
1、 通过以下命令选择指定的Xcode进行安装:

sudo xcode-select -s /Applications/Xcode-beta.app

2、 默认安装的Xcode为:

xcode-select -p

3、 执行安装命令:

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install)"

4、 卸载:

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-uninstall)"

5、 如果没有发布特殊说明,使用如下命令更新即可:

sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-update)"

安装/更新之后重启下Xcode再新建项目。

四、MonkeyApp的使用

主要介绍MonkeyDev的一步集成非越狱调试。
创建项目
安装完成之后,打开Xcode,单击File - New - Project...,选择iOS滑动到最下方可以看到MonkeyDev提供的模块如下图,选择相应的项目类型,就可以创建对应的项目。
【移动安全】初识MonkeyDev
点击创建MonkeyAPP,然后会自动生成相关文件如下图:
【移动安全】初识MonkeyDev
项目结构包含以下部分:
put ipa or app here:将需要分析的解密后的App或者ipa文件放到该目录下面。
WeChatDemoDylib这个是将被注入目标App的动态库,需要hook的代码可以在WeChatDemoDylib.m文件里面写,支持OC runtimeHOOK,C函数的fishhook
WeChatDemoDylib.xm:支持用Logos语法编写hook代码。
WeChatDemoDylib.m:可以在该文件中编写注人的hook代码。
AntiAntiDebug:里面是反反调试的代码.
fishhook:自动集成的fishhook模块。

常用的logos语法

官方介绍http://iphonedevwiki.net/index.php/Logos
1、%hook指定需要hook的类名

%hook SBApplicationController
-(void)uninstallApplication:(SBApplication *)application {
NSLog(@"Hey, we're hooking uninstallApplication:!");
%orig; // Call the original implementation of this method
return;
}
%end

2、%new该指令用来给指定的class添加一个新的函数

%new
-(void)newMethod:(NSString*) output{
NSLog(@"This is a new method : %@", output);
}

3、%orig调用原始的挂钩方法。

orig
orig (arg1 , … )

4、%group用于条件初始化或%hook分组

%group iOS8
%hook IOS8_SPECIFIC_CLASS
// your code here
%end // end hook
%end // end group ios8

%group
iOS9
%hook IOS9_SPECIFIC_CLASS
// your code here
%end // end hook
%end // end group ios9

%ctor
{
if (kCFCoreFoundationVersionNumber > 1200) {
%init(iOS9);
} else {
%init(iOS8);
}
}

五、查找定位微信登录按钮

pp助手下载的解密后的ipa放入targetapp文件中,通过monkey工程的图层调试发现(Debug > View Debugging > Capture View Hierarchy)为灰色无法选择。
故使用FLEXLoader定位APP登录按钮:
FLEXLoader下载及使用相关链接:https://github.com/buginux/FLEXLoader
【移动安全】初识MonkeyDev
选择登录按钮后,查看views,点击查看方法详情。
【移动安全】初识MonkeyDev
然后定位到了登录按钮的方法onFirstViewLogin和该方法所在的类WCAccountLoginControlLogic
编写相关代码监听登录按按钮:
【移动安全】初识MonkeyDev

六、修改微信步数

通过搜索发现使用MonkeyDev插件修改微信步数的代码如下:

#import <UIKit/UIKit.h>

%
hook WCDeviceStepObject
- (int)m7StepCount {
return 88888;
}
%end

【移动安全】初识MonkeyDev

七、微信抢红包插件

找了两款自动抢红包插件,分别是yahibo的源码和清水师傅打包好的dylib,测试发现在最新版微信(7.0.8)都可以正常使用。
【移动安全】初识MonkeyDev
清水师傅的功能较多,并且使用和安装方便快捷。
【移动安全】初识MonkeyDev

注入重打包ipa文件

以清水师傅打包好的dylib为例,在非越狱手机下的安装方法如下。
相关链接:https://qiita.com/shimizukawasaki/items/d8d01e30a8f67da68ea1
1、使用PP助手下载越狱应用里的VX(该区的ipa均为砸壳后的文件)
【移动安全】初识MonkeyDev

2、下载一键注入工具:
【移动安全】初识MonkeyDev
选好对应路径,将下载的砸壳后的ipa文件和dylib文件进行重打包。
下载地址:http://www.iosre.com/t/ipa-ipa/15494

将ipa安装到非越狱手机

先说下踩过的2个坑吧

使用Impactor安装

坑一:
ipa文件拖入Impactor,输入APPLE ID帐号与密码后出现了各种报错提示,关闭了苹果双重认证,重新申请了apple id,换win系统等等,最后一直没安装成功,放弃了。
【移动安全】初识MonkeyDev
相关链接
http://www.cydiaimpactor.com/
https://www.52pojie.cn/thread-946944-1-1.html

使用AltDeploy安装

坑二:
google发现有说AltDeploy简单快捷完全取代了Impactor,然后下载使用发现最后出现应用名错误,找到issues发现不少人遇到此问题,解决方法说更换1.0版本,最后发现AltDeploy在安装ipa过程中莫名崩溃,也放弃了。
【移动安全】初识MonkeyDev

相关链接
https://mrmad.com.tw/altdeploy
https://github.com/pixelomer/AltDeploy

使用MonkeyDev安装

最后还是使用MonkeyDev来安装注入好的ipa文件。
1、打开Xcode,单击File - New - Project...,选择iOS滑动到最下方可以看到MonkeyDev点击创建MonkeyAPP,将注入好的ipa文件放入TargetApp目录内。
【移动安全】初识MonkeyDev

2、在Signing&Capabilities内设置登录自己的APPLE ID
【移动安全】初识MonkeyDev
3、将非越狱手机连接mac,选择需要安装的手机设备,然后按运行。
【移动安全】初识MonkeyDev
4、点击手机设置-通用-描述文件与设备管理,将开发者应用Apple Development:your AppleID设置为信任
【移动安全】初识MonkeyDev
5、打开微信-设置-清水必杀技即可启用抢红包防撤回和修改微信步数等功能。
【移动安全】初识MonkeyDev
6、可以使用ida来修改字符串达到个人DIY设置
【移动安全】初识MonkeyDev

八、总结

通过学习和实践发现MonkeyDev不但可以在非越狱的手机上进行逆向分析,还能自动完成各种准备工作,并且能联动Xcode自身的调试功能。
1、源码及DYLIB下载地址:
链接:https://pan.baidu.com/s/1exLgmqPNomD0KK7ddmM2kA  密码:fg3b
2、猴神的私有CocoaPods仓库 https://github.com/AloneMonkey/MonkeyDevSpecs 有一些网友上传的插件,也可以学习和使用。

九、参考链接

https://github.com/AloneMonkey/MonkeyDev/wiki/
https://juejin.im/post/5da82cf1e51d4524e207fc39#heading-14
https://mp.weixin.qq.com/s/XArk877Av3RvYhrwfhzKsA
https://juejin.im/post/5e1aa4d951882520a167d8ee#heading-3
https://qiita.com/shimizukawasaki/items/d8d01e30a8f67da68ea1
https://github.com/zhengmin1989/MyArticles




E




N




D






【移动安全】初识MonkeyDev


guān




zhù







men





Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.com 或长按二维码关注公众号:

【移动安全】初识MonkeyDev





原文始发于微信公众号(白帽子):【移动安全】初识MonkeyDev

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月18日22:22:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【移动安全】初识MonkeyDevhttp://cn-sec.com/archives/1127368.html

发表评论

匿名网友 填写信息