《九阴真经: iOS黑客攻防秘籍》新书发布,干货满满,快来看看吧!

iOS 安全论坛 - 专注于研究 iOS 安全

 找回密码
 立即注册
查看: 191|回复: 12

书中298页重签名问题

[复制链接]

4

主题

14

帖子

66

积分

注册会员

Rank: 2

积分
66
发表于 2019-10-21 13:30:11 | 显示全部楼层 |阅读模式
我通过010 Editor已经编写好shellcode 并插入到了可执行文件 然后修改完原始入口地址 替换可执行文件 按照书中方式打包后 程序入口地址怎么又变回原来的了 ?
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-10-21 13:35:58 | 显示全部楼层
插入成功的 Shellcode 还在可执行文件里吗?如果不在的话,大概率是打包文件时选择错了。
回复

使用道具 举报

4

主题

14

帖子

66

积分

注册会员

Rank: 2

积分
66
 楼主| 发表于 2019-10-21 13:40:53 | 显示全部楼层
exchen 发表于 2019-10-21 13:35
插入成功的 Shellcode 还在可执行文件里吗?如果不在的话,大概率是打包文件时选择错了。 ...

Shellcode 还在 知识LC_MAIN 里面 Entry Offset 变了
回复

使用道具 举报

4

主题

14

帖子

66

积分

注册会员

Rank: 2

积分
66
 楼主| 发表于 2019-10-21 13:48:05 | 显示全部楼层
还有一个问题 如果我用Xcode 新建工程里面引入重签名脚本 给带shellcode的ipa 重签名 会报错-不能识别ShellCode
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-10-21 13:56:16 | 显示全部楼层
书中用到的在 Xcode 里打包,替换文件重签名打包的方法,我是屡试不爽的。但是我不确认新版的 Xcode 是不是有什么改动。当时我试过的有 Xcode 7.2、Xcode 9.2、Xcode 10.0
你的 Xcode 是什么版本?
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-10-21 13:57:07 | 显示全部楼层
时光机 发表于 2019-10-21 13:48
还有一个问题 如果我用Xcode 新建工程里面引入重签名脚本 给带shellcode的ipa 重签名 会报错-不能识别Shell ...

是怎么提示的?另外脚本能不能发一下看看?
回复

使用道具 举报

4

主题

14

帖子

66

积分

注册会员

Rank: 2

积分
66
 楼主| 发表于 2019-10-21 14:14:39 | 显示全部楼层
exchen 发表于 2019-10-21 13:56
书中用到的在 Xcode 里打包,替换文件重签名打包的方法,我是屡试不爽的。但是我不确认新版的 Xcode 是不是 ...

我的是Xcode是10.1 我再仔细看看吧
回复

使用道具 举报

4

主题

14

帖子

66

积分

注册会员

Rank: 2

积分
66
 楼主| 发表于 2019-10-21 14:41:32 | 显示全部楼层
本帖最后由 时光机 于 2019-10-21 14:45 编辑
exchen 发表于 2019-10-21 13:57
是怎么提示的?另外脚本能不能发一下看看?
脚本
# ${SRCROOT} 它是工程文件所在的目录
TEMP_PATH="${SRCROOT}/Temp"
#资源文件夹,我们提前在工程目录下新建一个APP文件夹,里面放ipa包
ASSETS_PATH="${SRCROOT}/APP"
#目标ipa包路径
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"
#清空Temp文件夹
rm -rf "${SRCROOT}/Temp"
mkdir -p "${SRCROOT}/Temp"



#----------------------------------------
# 1. 解压IPA到Temp下
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"
# 拿到解压的临时的APP的路径
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
# echo "路径是TEMP_APP_PATH"


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

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



#----------------------------------------
# 3. 删除extension和WatchAPP.个人证书没法签名Extention
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"



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


#----------------------------------------
# 5. 给MachO文件上执行权限
# 拿到MachO文件的路径
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#上可执行权限
chmod +x "$TARGET_APP_PATH/$APP_BINARY"



#----------------------------------------
# 6. 重签名第三方 FrameWorks
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do

#签名
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

86

主题

262

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
发表于 2019-10-21 19:17:07 | 显示全部楼层

看这个图的提示,感觉和重签名没关系,是程序本身就出错了。
unknow opcode 是未知代码,感觉像是调试器解析汇编代码出错了。应该是 ARM 指令,调试器解析成 Thumb 了。你确认插入 Shellcode 之后,程序能正常运行吗?
回复

使用道具 举报

4

主题

14

帖子

66

积分

注册会员

Rank: 2

积分
66
 楼主| 发表于 2019-10-21 21:41:13 | 显示全部楼层
exchen 发表于 2019-10-21 19:17
看这个图的提示,感觉和重签名没关系,是程序本身就出错了。
unknow opcode 是未知代码,感觉像是调试器解 ...

我又写了个demo  重新理了一遍 前面重签名 函数入口地址 应该是我的问题 。新demo 确实修改完入口地址 重签名后 安装闪退问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|iOSHacker

GMT+8, 2019-11-15 10:13 , Processed in 0.053640 second(s), 20 queries .

iOS安全论坛

© 2017-2019 iOS Hacker Inc.

快速回复 返回顶部 返回列表