frida-go icon indicating copy to clipboard operation
frida-go copied to clipboard

Will it support the 32-bit frida-go of Windows in the future

Open 806854015 opened this issue 6 months ago • 5 comments

Currently, I can use it normally on 64-bit, but related library issues occurred after switching to 32-bit, and the build of frida-core mingw devkit is

build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install python3.11 uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install necessary packages run: sudo apt update && sudo apt install -y golang nodejs npm git g++-mingw-w64-i686 gcc-mingw-w64-i686 - name: Download frida run: | git clone https://github.com/frida/frida.git ffrida && cd ffrida/ python3 tools/ensure-submodules.py frida-core - name: Build frida-core env: CC: i686-w64-mingw32-gcc CXX: i686-w64-mingw32-g++ run: | cd ffrida/subprojects/frida-core ./configure --host=i686-w64-mingw32 --without-prebuilds=sdk:host --with-devkits=core make mkdir /tmp/frida-core-devkit cp ./build/src/devkit/* /tmp/frida-core-devkit/ - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: frida-core-devkit-windows-x86-64 path: /tmp/frida-core-devkit/

Finally, after obtaining the relevant library Image

Execute the following compilation to appear PS E:\www\test> ./build32.bat

command-line-arguments

C:\bin\go1.24.4.windows-386\pkg\tool\windows_386\link.exe: running gcc failed: exit status 1 C:\bin\msys64\mingw32\bin\gcc.exe -m32 -s -mconsole -Wl,--tsaware -Wl,--nxcompat -Wl,--major-os-version=6 -Wl,--minor-os-version=1 -Wl,--major-subsystem-version=6 -Wl,--minor-subsystem-version=1 -Wl,--dynamicbase -o $WORK\b001\exe\main.exe -Wl,--no-insert-timestamp C:\Users\admin\AppData\Local\Temp\go-link-3974986732\go.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000000.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000001.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000002.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000003.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000004.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000005.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000006.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000007.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000008.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000009.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000010.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000011.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000012.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000013.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000014.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000015.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000016.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000017.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000018.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000019.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000020.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000021.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000022.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000023.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000024.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000025.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000026.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000027.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000028.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000029.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000030.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000031.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000032.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000033.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000034.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000035.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000036.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000037.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000038.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000039.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000040.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000041.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000042.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000043.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000044.o C:\Users\admin\AppData\Local\Temp\go-link-3974986732\000045.o -LC:/bin/msys64/mingw32/lib -lfrida-core -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lfrida-core -lm -lws2_32 -lgdi32 -lole32 -liphlpapi -lsetupapi -lpsapi -lshell32 -lshlwapi -ldnsapi -lcrypt32 -luuid -lshfolder -Wl,--allow-multiple-definition -LC:/bin/msys64/mingw32/lib -lfrida-core -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -Wl,-T,C:\Users\admin\AppData\Local\Temp\go-link-3974986732\fix_debug_gdb_scripts.ld -Wl,--start-group -lmingwex -lmingw32 -Wl,--end-group -lkernel32 C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_application_query_options_deserialize: symbol not found

806854015 avatar Jun 21 '25 07:06 806854015

目前在 64 位上可以正常使用,但切换到 32 位后出现了相关库问题,frida-core mingw devkit 的构建是

构建:运行时间:ubuntu-latest 步骤:名称:签出仓库使用:作/checkout@v4 - 名称:安装python3.11使用:作/设置-python@v5与:python版本:'3.11' - 名称:安装必要的软件包运行:sudo apt update & sudo apt install -y golang nodejs npm git g++-mingw-w64-i686 gcc-mingw-w64-i686 - 名称:下载frida 运行: | git克隆 https://github.com/frida/frida.git ffrida && cd ffrida/ python3工具/ensure-submodules.py frida-core - 名称:构建frida-core env:CC:i686-w64-mingw32-gcc CXX:i686-w64-mingw32-g++运行: | cd ffrida/subprojects/frida-core ./configure --host=i686-w64-mingw32 --without-prebuilds=sdk:host --with-devkits=core make mkdir /tmp/frida-core-devkit cp ./build/src/devkit/* /tmp/frida-core-devkit/ - name: 上传工件 使用: actions/upload-artifact@v4 with: name: frida-core-devkit-windows-x86-64 path: /tmp/frida-core-devkit/

最后,在获取相关库后 Image

执行以下编译以显示 PS E:\www\test> ./build32.bat

命令行参数

PS E:\www\test> ./build32.bat go: downloading go1.24.0 (windows/386)

command-line-arguments

C:\Users\admin\go\pkg\mod\golang.org\[email protected]\pkg\tool\windows_386\link.exe: running gcc failed: exit status 1 C:\bin\msys64\mingw32\bin\gcc.exe -m32 -s -mconsole -Wl,--tsaware -Wl,--nxcompat -Wl,--major-os-version=6 -Wl,--minor-os-version=1 -Wl,--major-subsystem-version=6 -Wl,--minor-subsystem-version=1 -Wl,--dynamicbase -o $WORK\b001\exe\main.exe -Wl,--no-insert-timestamp C:\Users\admin\AppData\Local\Temp\go-link-2926436137\go.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000000.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000001.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000002.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000003.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000004.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000005.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000006.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000007.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000008.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000009.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000010.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000011.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000012.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000013.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000014.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000015.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000016.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000017.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000018.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000019.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000020.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000021.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000022.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000023.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000024.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000025.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000026.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000027.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000028.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000029.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000030.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000031.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000032.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000033.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000034.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000035.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000036.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000037.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000038.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000039.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000040.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000041.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000042.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000043.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000044.o C:\Users\admin\AppData\Local\Temp\go-link-2926436137\000045.o -LC:/bin/msys64/mingw32/lib -lfrida-core -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lfrida-core -lm -lws2_32 -lgdi32 -lole32 -liphlpapi -lsetupapi -lpsapi -lshell32 -lshlwapi -ldnsapi -lcrypt32 -luuid -lshfolder -Wl,--allow-multiple-definition -LC:/bin/msys64/mingw32/lib -lfrida-core -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -Wl,-T,C:\Users\admin\AppData\Local\Temp\go-link-2926436137\fix_debug_gdb_scripts.ld -Wl,--start-group -lmingwex -lmingw32 -Wl,--end-group -lkernel32 C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_application_query_options_deserialize: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_application_query_options_serialize: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_bus_detach: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_bus_detach_finish: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_device_do_close: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_device_do_close_finish: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_device_manager_release_device: symbol not found
C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_device_release_session: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_device_release_session_finish: symbol not found
C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_frontmost_query_options_deserialize: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_frontmost_query_options_serialize: symbol not found C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_peer_options_deserialize: symbol not found
C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_snapshot_options_serialize: symbol not found
C:/bin/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/15.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot export _frida_windows_host_session_on_child_dead: symbol not found collect2.exe: error: ld returned 1 exit status

806854015 avatar Jun 21 '25 09:06 806854015

I think you can use frida-server to connect. That's exactly what I'm doing now.

AnxiangLemon avatar Jun 24 '25 08:06 AnxiangLemon

This is WIP along with tweaks for x86_64

NSEcho avatar Jun 24 '25 17:06 NSEcho

I compiled the 32-bit version of frida-go on windows but failed after various attempts. It kept indicating that the frida library was missing relevant functions. I also tried multiple versions of mingw for testing but still couldn't solve the problem. Maybe I did something wrong. It is expected that the official can provide a windwos frida-core-devkit. Due to the urgent needs of the industry, frida-go is temporarily not used. Instead, frida-gadget is directly used to inject the dll into the process for running. Currently, it can be used to replace frida-go with difficulty. Ha ha

Image

806854015 avatar Jun 25 '25 02:06 806854015

Mingw i686 is the problem and I am working to sort it out, x86_64 mingw doesn't have these problems. I will let you know in the issue once it is done.

NSEcho avatar Jun 25 '25 06:06 NSEcho