diff --git a/frida-gadget/FridaGadget.config b/frida-gadget/FridaGadget.config new file mode 100644 index 0000000..110c7f7 --- /dev/null +++ b/frida-gadget/FridaGadget.config @@ -0,0 +1,8 @@ +{ + "interaction": { + "type": "listen", + "address": "127.0.0.1", + "port": 27042, + "on_load": "resume" + } +} \ No newline at end of file diff --git a/frida-gadget/readme.md b/frida-gadget/readme.md new file mode 100644 index 0000000..9829050 --- /dev/null +++ b/frida-gadget/readme.md @@ -0,0 +1,16 @@ +# 克隆源码 +git clone https://github.com/Tyilo/insert_dylib + +# 进入目录 +cd insert_dylib + +# 使用 Xcode 命令行工具进行编译 +xcodebuild + +# 将生成的二进制文件移动到系统路径,方便全局调用 +cp build/Release/insert_dylib /usr/local/bin/ +cd /Applications/WeChat.app/Contents/MacOS/ +/usr/local/bin/insert_dylib --inplace --strip-codesig "@executable_path/../Frameworks/FridaGadget.dylib" WeChat +./sign.sh +cp frida-gadget/FridaGadget.config /Applications/WeChat.app/Contents/Frameworks/ +frida -H 127.0.0.1:27042 -n Gadget -l ./frida/script.js diff --git a/frida-gadget/sign.sh b/frida-gadget/sign.sh new file mode 100755 index 0000000..ef7e538 --- /dev/null +++ b/frida-gadget/sign.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +APP_PATH="/Applications/WeChat.app" +GADGET_PATH="$APP_PATH/Contents/Frameworks/FridaGadget.dylib" +ENTITLEMENTS="temp.entitlements" # 确保你已经创建了这个文件 + +echo "开始对 Gadget 签名..." +codesign -f -s - --timestamp=none "$GADGET_PATH" + +echo "开始对所有子框架进行深层签名..." +# 遍历微信内部所有的 Frameworks 和 dylib 进行签名 +find "$APP_PATH/Contents" -name "*.framework" -or -name "*.dylib" -or -name "*.bundle" | xargs codesign -f -s - --timestamp=none + +echo "最后对主程序进行签名并注入 Entitlements..." +codesign -f -s - --timestamp=none --entitlements "$ENTITLEMENTS" --force "$APP_PATH" + +echo "完成!" \ No newline at end of file diff --git a/frida-gadget/temp.entitlements b/frida-gadget/temp.entitlements new file mode 100644 index 0000000..c6c0fa8 --- /dev/null +++ b/frida-gadget/temp.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.cs.disable-library-validation + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + get-task-allow + + + \ No newline at end of file diff --git a/frida/succ.js b/frida/succ.js index 1e57449..017ee9a 100644 --- a/frida/succ.js +++ b/frida/succ.js @@ -33,7 +33,7 @@ var contentAddr = ptr(0); var insertMsgAddr = ptr(0); // 消息的taskId var taskId = 0x20000090 -var receiver = "wxid_7wd1ece99f7i21" +var receiver = "wxid_" var content = "hello world"; // 打印消息的地址,便于查询问题