不知不觉又曩昔了一年,由于一些原因,干了五年多前端的我决定从前端转到逆向了,现在先从安卓逆向入手,比较头铁,由于才开始没几天就准备研究flutter的逆向了,现在是跟着这篇博客在搞,跟到本地部署Dart SDK源项目这部分时遇到了一些坑,由于我是WIN11渠道(许多大佬都是推荐Ubuntu或许Kali作为逆向环境,据说坑会少一些,可是我比较菜,曾经没咋用Linux,暂时也懒得折腾了),所以想记载一下这些坑,根本都是官方文档(github.com/dart-lang/s…) 中没有提到的坑。
装置、运用depot_tools的踩坑记载
-
需求设置下git、cmd以及boto的署理,否则在初次履行
gclient
或gclient sync
指令时会在cipd相关流程时堵塞,由于cipd相关流程没有发展提示,所以在这里卡死时没有提示,也算是个大坑,或许遇到...NOTICE: You have PROXY values set in...
这样的提示。首先是设置git的署理:
## <proxy_url> example: http://127.0.0.1:1080 git config --global proxy.http <proxy_url> git config --global proxy.https <proxy_url>
然后是cmd的署理,能够在用户变量中添加HTTP_PROXY和HTTPS_PROXY,或许设置一次性的环境变量:
set HTTP_PROXY=<proxy_url> set HTTPS_PROXY=<proxy_url>
最终是boto的署理设置,在某个目录下创立一个文本文件,比方 D:\boto.cfg,文件内容示例如下:
[Boto] proxy=http:://127.0.0.1 proxy=1080
然后设置环境变量
NO_AUTH_BOTO_CONFIG
,值就是这个文件的途径。 -
在履行
fetch dart
或在其目录下经过gclient sync
进行同步时,或许会遇到Failed to fetch file gs://chromium-clang-format/c8455d43d052eb79f65d046c6b02c169857b963b ... for xx\xx\xx.ext
之类的过错,能够将gs://
替换为https://storage.googleapis.com/
然后下载到方针目录,并改名为相应的名称(xx.ext),再履行gclient sync
即可。
经过Dart SDK源码项目进行构建的踩坑记载
- 首先履行指令需求经过python启动,可是python版本有必要是dpot_tools下的,所以dpot_tools的环境变量(Path环境变量中)的位置有必要在你装置的其它Python版本的环境变量之前(假如有装置过其它版本的Python的话)。详细的指令,比方:
./tools/build.py -m product -a simarm gen_snapshot
要改成python ./tools/build.py -m product -a simarm gen_snapshot
或python3 ./tools/build.py -m product -a simarm gen_snapshot
,是用python还是python3能够翻开build.py经过第一行确认。 - 关于WIN10 SDK,假如装置WIN10 SDK的目录不确认,能够建一个C++的工程,包括
#include "virtdisk.h"
, 再跳转曩昔即可确认位置。然后需求新建一个环境变量——WINDOWSSDKDIR, 其值为WIN10 SDK的途径。另外,需求留意的是Dart SDK依靠的WIN10 SDK版本需求包括WinDbg(Debugging Tools for Windows),经过VS installer装置WIN10 SDK或许不包括这个工具,此刻需求到官网下载WIN10 SDK然后装置,装置选项中确认有WinDbg选项,装置完后,确认下SDK目录下是否存在Debuggers文件夹。 - 经过build.py履行构建时,假如你不是Chromium的开发者,那么应该没有运用goma服务,那么构建指令要加上
--no-goma
参数,否则会进行goma鉴权,从而构建失利。 - 在运用
python3 ./tools/build.py -m product -a simarm gen_snapshot
构建gen_snapshot工具时,假如你是64位的系统,那么需求将simarm
改为simarm64
否则会构建失利。
后续研究过程中,有新的发展和心得我或许也会共享一下。现在还是个麻瓜,文中若有不对的地方期望各位给我指出,也期望有志同道合的朋友一同学习、沟通。