美文网首页
逆向hock过程

逆向hock过程

作者: iOS_Ru | 来源:发表于2020-05-14 21:28 被阅读0次

准备工作

  • 非越狱的iPhone手机
  • 用PP助手下载: 微信6.6.5(越狱应用)
  • MachOView

MachOView下载地址:http://sourceforge.net/projects/machoview/
MachOView源码地址:https://github.com/gdbinit/MachOView

  • yololib

yololib下载地址https://github.com/KJCracks/yololib?spm=a2c4e.11153940.blogcont63256.9.5126420eAJpqBD

image.png image.png image.png image.png image.png image.png
#!/bin/sh

# ${SRCROOT} 为工程文件所在的目录
TEMP_PATH="${SRCROOT}/Temp"
#资源文件夹,放三方APP的
ASSETS_PATH="${SRCROOT}/APP"
#ipa包路径
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"



#新建Temp文件夹
rm -rf "$TEMP_PATH"
mkdir -p "$TEMP_PATH"

# --------------------------------------
# 1. 解压IPA 到Temp下
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"
# 拿到解压的临时APP的路径
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
# 这里显示打印一下 TEMP_APP_PATH变量
echo "TEMP_APP_PATH: $TEMP_APP_PATH"

# -------------------------------------
# 2. 把解压出来的.app拷贝进去
#BUILT_PRODUCTS_DIR 工程生成的APP包路径
#TARGET_NAME target名称
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "TARGET_APP_PATH: $TARGET_APP_PATH"

rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH/"

# -------------------------------------
# 3. 为了是重签过程简化,移走extension和watchAPP. 此外个人免费的证书没办法签extension

echo "Removing AppExtensions"
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"

# -------------------------------------
# 4. 更新 Info.plist 里的BundleId
#  设置 "Set :KEY Value" "目标文件路径.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"

# 5.给可执行文件上权限
#添加ipa二进制的执行权限,否则xcode会告知无法运行
#这个操作是要找到第三方app包里的可执行文件名称,因为info.plist的 'Executable file' key对应的是可执行文件的名称
#我们grep 一下,然后取最后一行, 然后以cut 命令分割,取出想要的关键信息。存到APP_BINARY变量里
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`


#这个为二进制文件加上可执行权限 +X
chmod +x "$TARGET_APP_PATH/$APP_BINARY"



# -------------------------------------
# 6. 重签第三方app Frameworks下已存在的动态库
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
#遍历出所有动态库的路径
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
echo "🍺🍺🍺🍺🍺🍺FRAMEWORK : $FRAMEWORK"
#签名
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi

# 7. 注入我们编写的动态库
echo "开始注入"
# 需要注入的动态库的路径  这个路径我就写死了!
INJECT_FRAMEWORK_RELATIVE_PATH="Frameworks/libWJHook.dylib"
#
## 通过工具实现注入
yololib(注释 yololib的路径)   "$TARGET_APP_PATH/$APP_BINARY" "$INJECT_FRAMEWORK_RELATIVE_PATH"
echo "注入完成"

image.png image.png image.png

参考文章
https://www.cnblogs.com/WinJayQ/p/9043712.html

相关文章

  • 逆向hock过程

    准备工作 非越狱的iPhone手机 用PP助手下载: 微信6.6.5(越狱应用) MachOView MachOV...

  • hock something

    常见的信息收集方式 流程 在渗透测试的第一步,通常目标会提供一个要进行渗透测试的域名。那么今天我们就从域名开始来做...

  • 一 iOS 逆向工程概述

    1 什么是iOS逆向工程 2 iOS逆向的目的 3 iOS逆向过程以及方法 一 什么是iOS逆向工程 iOS逆向...

  • iOS逆向过程

    1.越狱注:以下是非在线越狱下载 checkra1n,并在电脑上安装 (下载地址:https://checkra...

  • 逆向扫雷

    macos逆向初体验。找个别人逆向过的目标熟悉一下逆向过程。原文地址: iosre.com应该是目前国内ios逆向...

  • app逆向技巧

    目录: 一、多头项目的特点: 二、逆向思路 1、能否判断是否注册 2、逆向过程 三、逆向工具 1、抓包工具 2、测...

  • 六 Hock原理分析

    在上篇文章MachO文件解析已经详细介绍了MachO,并且由MachO引出了dyld,再由dyld讲述了App的启...

  • 《改变心理学的40项研究》翻书笔记

    作者:Roger R Hock译者:白学军等原著名称:《Forty Studies That Changed Ps...

  • Android逆向之so函数识别

    前言 众所周知,逆向的过程绝大程度上是一个符号还原的过程,掌握越多的符号信息对我们逆向破解目标越有利。但是,很多时...

  • Android编译,打包,签名,混淆和反编译相关知识

    1. 逆向工程 逆向工程(又称反向工程),是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产...

网友评论

      本文标题:逆向hock过程

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