摘要:本文记录目前新版Frida在Window下四个版本Release|Debug and win32|x64 编译
编译测试平台:【Windows 11】、【Visual Studio 2022】
之前在【Frida编译】中描述的问题这里不再重述
一、【Window】
准备工具:VS2022、Git、Python3.10、Node.js、nasm
如下图的官方说明,
(1)VS2022社区版对个人而言就远远够用;
(2)Git,都懂的;
(3)最好还是用官方推荐的Python3.10,否则一些python脚本执行可能会有问题;
(4)Node.js,地球自转需要;
(5)nasm 汇编编译器,下图没有提,但是在构建SDK工具链时需要。
(6)7-Zip 怎么还有?这里提一下,这是我常用的cmd工具,path会存在,实际在编译SDK工具链中也发现其使用了7z对编译结果进行最后封装,安装与否自己判断,可能没有的情况下,也会自动下载个7z。
要完美构建四个版本,我们如果先构建SDK工具链(本文也是先构建SDK工具链),会省去很多麻烦,也能有效避免各种错误缺失代价。当然,如果不预先构建SDK工具链,在四个版本[Release,Debug]X[win32,x64]的构建中,也可能会有漫长的网络下载工具链动作,如果下载过程中有错误或缺失,异常定位将带领我们进入迷失世界。
启动命令行
如果是Unicode和%s字符相关问题,参考之前的文章修正。
如果是 WindowsPath 问题
把【frida\releng\deps.py】或相关错误文件的参数【path_var】变换为【str(path_var.absolute())】,如下异常代码
改为
@rem
设置python环境
@set
PYTHONHOME
=
D:\Python310_64
@set
PYTHONPATH
=
%
PYTHONHOME
%
\Lib\idlelib;
%
PYTHONHOME
%
\DLLs;
%
PYTHONHOME
%
\lib;
%
PYTHONHOME
%
;
%
PYTHONHOME
%
\lib\site
-
packages
@set
PATH
=
%
PYTHONHOME
%
;
%
PYTHONHOME
%
\Scripts;
%
PATH
%
@rem
设置git\nodejs\nasm\
7Z
路径
@set
PATH
=
C:\Program Files\Git\cmd;
%
PATH
%
@set
PATH
=
d:\nodejs;
%
PATH
%
@set
PATH
=
d:\nasm;
%
PATH
%
@set
PATH
=
d:\
7
-
Zip
;
%
PATH
%
@rem
vs2022 x64 cmd 环境初始化
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
@REM
取代码,漫长的下载,漫长的构建SDK工具链
git clone
-
-
recurse
-
submodules https:
/
/
github.com
/
frida
/
frida
cd frida
python releng\build
-
deps
-
windows.py
@rem
最终会生成 build\toolchain
-
windows
-
x86.exe 和build\sdk
-
windows
-
any
.exe 工具链及SDK自解压包
@rem
我们通过
7z
直接解压到当前目录,注意[
-
o.]紧跟当前目录点
@rem
这样我们就得到了四个版本需要的相关文件
cd build
7z
x sdk
-
windows
-
any
.exe
-
o.
7z
x toolchain
-
windows
-
x86.exe
-
o.
得到以下编译所需SDK和工具链目录,目录包含四个版本所需头文件和库等内容
build\sdk
-
windows
build\toolchain
-
windows
在打开vs2022前,我们先修正【frida\releng\frida.props】文件中的Python路径,如下
将
<PythonLocation Condition
=
"'$(PythonLocation)'=='' AND '$(Platform)'=='x64'"
>$(ProgramFiles)\Python310<
/
PythonLocation>
<PythonLocation Condition
=
"'$(PythonLocation)'=='' AND '$(Platform)'=='Win32'"
>$(MSBuildProgramFiles32)\Python310<
/
PythonLocation>
修改为自己Pyhont310的
32
和
64
位版本
<PythonLocation Condition
=
"'$(PythonLocation)'=='' AND '$(Platform)'=='x64'"
>D:\Python310_64<
/
PythonLocation>
<PythonLocation Condition
=
"'$(PythonLocation)'=='' AND '$(Platform)'=='Win32'"
>D:\Python310_32<
/
PythonLocation>
当然,到这里,在命令行输入快捷链接启动前,可以参考之前的文章修正vala相关文件的【“
%
s”】修改为【\
"%s\"
】,或等到编译出错再找相关c文件同名vala文件修改。
最后命令行通过快捷方式启动vs2022(为了继承上述配置的环境变量),打开frida.sln进行愉快的编译
"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022.lnk"
@rem
设置python环境
@set
PYTHONHOME
=
D:\Python310_64
@set
PYTHONPATH
=
%
PYTHONHOME
%
\Lib\idlelib;
%
PYTHONHOME
%
\DLLs;
%
PYTHONHOME
%
\lib;
%
PYTHONHOME
%
;
%
PYTHONHOME
%
\lib\site
-
packages
@set
PATH
=
%
PYTHONHOME
%
;
%
PYTHONHOME
%
\Scripts;
%
PATH
%
@rem
设置git\nodejs\nasm\
7Z
路径
@set
PATH
=
C:\Program Files\Git\cmd;
%
PATH
%
@set
PATH
=
d:\nodejs;
%
PATH
%
@set
PATH
=
d:\nasm;
%
PATH
%
@set
PATH
=
d:\
7
-
Zip
;
%
PATH
%
@rem
vs2022 x64 cmd 环境初始化
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
@REM
取代码,漫长的下载,漫长的构建SDK工具链
git clone
-
-
recurse
-
submodules https:
/
/
github.com
/
frida
/
frida
cd frida
python releng\build
-
deps
-
windows.py
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-10-21 08:50
被tritium编辑
,原因: