美文网首页iOS 道路之行
3.iOS渗透之逆向WeChat(无需越狱)

3.iOS渗透之逆向WeChat(无需越狱)

作者: 清水川崎 | 来源:发表于2018-03-14 20:28 被阅读993次

微信作为一款大部分人重度使用的app,自然而然会有特别多的人对它有研究兴趣,我也不例外。好在今天终于成功了。实现了自动抢红包、虚拟定位、消息防撤回、修改运动步数。对我来说,抢红包是一个非常实用的功能,防撤回对付一些很烦的人也非常有用。
那么我们开始吧。

1.准备工作
首先我们需要准备如下工具:
(1)砸了壳的原版微信安装包(ipa格式)
(2)iOS重签名工具
(3)开发者账号,是否付费无所谓
砸壳app的ipa安装包很好找到,你有闲心可以去我前面的章节寻找怎么砸壳,如果没有你去装一个pp助手电脑版下载一个越狱应用就行。
PP助手越狱应用

下完以后放到你的Mac上。
使用iOS重签名工具是因为,我们修改了微信以后,它不再带有苹果的授权证书,自然无法安装和运行。所以我们需要签上我们自己的开发者证书。


iOS重签名工具

开发者账号自然是为了能有开发者证书,所以才准备的。

2.代码编写

我们需要用cycript对微信各功能的UI元素进行动态分析,分析出哪一个功能用了哪些class,再配合class-dump打出来的头文件进行验证,最后利用ida pro的静态分析它的具体实现内容,利用hook技术写出dylib。这个过程非常繁琐,这里我直接丢出已经生成好的dylib。


dylib

dylib又叫动态注入库,它可以使用工具直接注入到微信app的二进制文件中。
其实,ipa安装包本质是一种苹果设立的压缩包格式,完全可以解压。
解压以后,长下面那个样子


ipa解压

起到重要作用的就是Payload文件夹中的文件。


Payload
Payload文件中的这个文件,本质也是一个压缩包
二进制压缩包
图中那个红色标注的名为WeChat才是实际运行在iOS平台上面的app程序主体。
而我们则是需要将dylib注入到里面去。
3.开始注入

我们利用自动注入脚本进行注入。
首先我们打开iTerm进入到脚本目录


脚本目录

脚本代码如下:

# !/bin/bash
# 使用  ./autoInsertDylib.sh  ipa文件路径  dylib文件路径  eg: ./autoInsertDylib.sh wechat.ipa robot.dylib

shell_path="$(dirname "$0")"

SOURCEIPA="$1"
DYLIB="$2"
LIBSUBSTRATE="${shell_path}/libsubstrate.dylib"

temp_dir="${shell_path}/tweak-temp-tk"
ipa_bundle_path="${temp_dir}/${SOURCEIPA##*/}"
libsubstrate_path="${temp_dir}/${LIBSUBSTRATE##*/}"
dylib_path="${temp_dir}/${DYLIB##*/}"

framework_path="${app_bundle_path}/${framework_name}.framework"
rm -rf ${shell_path}/../Products/*
mkdir ${shell_path}/../Products/
if [ ! -d ${temp_dir} ]; then
    # echo "创建 ${temp_dir}"
    mkdir ${temp_dir}
fi

cp "$SOURCEIPA" "$DYLIB" "$LIBSUBSTRATE" ${temp_dir}

# cd "$shell_path"

echo "开始注入dylib >>> \n\n\n"
# echo "正将" ${SOURCEIPA##*/} ${DYLIB##*/} ${LIBSUBSTRATE##*/}  "拷贝至/tweak-temp-tk"

otool -L ${dylib_path} > ${temp_dir}/depend.log
grep "/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate" ${temp_dir}/depend.log >${temp_dir}/grep_result.log
if [ $? -eq 0 ]; then
    # echo "发现有 ${DYLIB##*/} 依赖于 CydiaSubstrate, 正将其替换为 libsubstrate"
    install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib ${dylib_path}

# else
    # echo "没有发现依赖于CydiaSubstrate"
fi

# echo "解压" ${SOURCEIPA##*/}

unzip -qo "$ipa_bundle_path" -d ${shell_path}/extracted

APPLICATION=$(ls "${shell_path}/extracted/Payload/")
app_path="${shell_path}/extracted/Payload/${APPLICATION}"

# cp -R ${app_path} ./

# rm -rf ~/Desktop/temp/extracted/Payload/$APPLICATION/*Watch*
cp "${shell_path}/popup_close_btn.png" ${app_path}
cp ${dylib_path} ${libsubstrate_path} ${app_path}

# echo "删除" ${APPLICATION##*/} "中 watch 相关文件"

rm -rf ${app_path}/*watch* ${app_path}/*Watch*

# echo "注入" ${DYLIB##*/} "到" $APPLICATION
${shell_path}/insert_dylib  @executable_path/${DYLIB##*/} ${app_path}/${APPLICATION%.*} > ${temp_dir}/insert_dylib.log

echo "注入成功 !!!"

rm -rf ${app_path}/${APPLICATION%.*}
mv ${app_path}/${APPLICATION%.*}_patched ${app_path}/${APPLICATION%.*}

cp -R ${app_path} ${shell_path}/../Products/${APPLICATION}

# echo "删除临时文件 >>>"
rm -rf ${shell_path}/extracted ${temp_dir}

# echo "打开 tweak-temp-tk 文件夹"
open ${shell_path}/../Products/
# open /Applications/iOS\ App\ Signer.app

autoInsertDylib.sh
好在已经写好了,我们直接使用即可
格式如下:
./autoInsertDylib.sh ipa文件路径 dylib文件路径
我这里命令为
./Others/autoInsertDylib.sh ./wejalibreak.ipa ./robot.dylib
读者根据自己的情况自行调节
注入完后以后,Products文件夹会自动打开,里面就是生成好的Payload文件夹中的二进制文件压缩包。
二进制文件压缩包
4.重新签名并打包

这里我们需要先用Xcode新建一个项目,设置一下下面三个地方


新建项目并设置

设置完以后,我们用数据线将iPhone和Mac连接,并真机调试这个项目,目的是为了将我们这个项目的证书导入到我们的iPhone中,方便安装我们修改好的微信。
调试完成以后,我们就可以进行重签名。


重签名设置
这里设置必须和上面那个新建项目保持一致。设置ok以后,我们点击start会提示选择输出ipa安装包的位置,我们任意选择一个就行了。
生成以后的新安装包,我们就可以安装到我们的手机了。

我们打开Xcode,点击Window即可看到如下选项


真机和模拟器管理
我们点击+号即可安装我们重新生成的微信安装包
安装ipa
这时,你的iPhone上面会有两个微信。
截图
新出现的微信可以和原来的共存,你可以进去以后,点设置会多出一个Plugin选项。
Plugin
Plugin
到此,我们逆向微信完成。

看看效果


防撤回
运动步数修改
虚拟定位
抢红包功能也没问题,就不截gif了。
教程所涉及的重签名工具,脚本,以及dylib动态注入库,请到如下链接下载。而砸壳的原版app,请自行下载pp助手电脑版下载即可。

https://pan.baidu.com/s/19BwaXeJCOnvgpsfIKu7Flw 密码:EkP5

相关文章

网友评论

  • 小小冠:楼主。。。坦白讲。我的微信被封了。:cold_sweat:
    小小冠:@清水川崎 嗯嗯。前几天用pp助手下载越狱版微信的。版本:6.6.6 类别:社交 大小:140.91MB 时间:2018-04-25。能把你用的那个越狱版ipa文件也放网盘吗?感谢
    清水川崎:@小小冠 用的好好的。没问题啊。还是用的最新版的微信注入了
  • 大锤爱学习:那个远程控制是什么功能啊?看你文档上没有解释怎么用哦。。
    清水川崎:@Crown_ffdc 不会封!5.7已经测了
    大锤爱学习:@清水川崎 这样啊。跳过微信检测封号 楼主有好的方案吗?或者说这个方案会被封不。。
    清水川崎:@Crown_ffdc 配合Mac电脑使用,然后控制锁屏,网易云音乐上下曲。
  • 馒头压扁就是饼:你好 手机是不是需要越狱才能装上啊
    馒头压扁就是饼:@清水川崎 用越狱的微信ipa 逆向生成的ipa。装不上没越狱的手机。目前我遇到的问题。
    清水川崎:@馒头压扁就是饼 有Xcode按照步骤来,完全没问题
    清水川崎:@馒头压扁就是饼 你不看标题就来问,我最讨厌伸手党!
  • 馒头压扁就是饼:链接打不开了
    清水川崎:@馒头压扁就是饼 已经更新
  • zombieEngineer:有没有代码啊
    清水川崎:@zombieEngineer 代码不能给。还有越狱版的qq也不能打出头文件,你可以classdump试试。不好意思啊。
    zombieEngineer:@清水川崎 直接找越狱的ipa 就可以了,可以私聊发我下代码么?我研究研究,对逆向感点兴趣,谢谢~
    清水川崎:@zombieEngineer 不公开代码是因为,防止腾讯做代码混淆已经加壳。qq已经不能砸壳,打出头文件了。
  • 静若517:完全看不懂
    大锤爱学习:有兴趣可以研究下
    清水川崎:@静若517 这是我们计算机的专业文章。你只需要看最终实现的效果就行了。
  • 42e6f2848772:爱你,胖砸
    清水川崎:@嘻嘻king 加油你是最胖的!

本文标题:3.iOS渗透之逆向WeChat(无需越狱)

本文链接:https://www.haomeiwen.com/subject/ryrqqftx.html