首页
社区
课程
招聘
[原创]指纹浏览器的编译与开发
发表于: 2025-6-8 16:50 2554

[原创]指纹浏览器的编译与开发

2025-6-8 16:50
2554

最近一年一直忙于开发严重怀疑自己转行了,学习研究的,很浅薄只为完成某些功能罢了,大佬勿喷。

开发的指纹浏览器是基于chromium 

首先准备基本环境

操作系统:ubuntu22.04.4


家里网络太差,我是在公司下载的。

git clone 6dcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0K9s2u0G2L8h3W2#2L8g2)9J5k6h3N6G2L8$3N6D9k6i4y4G2N6i4u0U0k6g2)9J5k6h3y4G2L8g2)9J5c8X3y4Z5M7X3!0E0K9i4g2E0i4K6u0r3N6r3!0G2L8s2y4Q4x3V1k6V1k6i4m8G2N6q4)9#2k6Y4c8G2L8$3I4K6i4K6u0W2k6$3W2@1

获取工具depot_tools用来下载chrom源码,并将工具目录放到环境中

获取编译所需的所有代码

fetch --nohooks android

拉取最新的代码,二选一

fetch --no-history --nohooks android

拉取特定版本的代码

gclient sync --with_branch_heads -r 120.0.6099.243

build/install-build-deps.sh --android

gclient runhooks

python推荐使用内置的

export PATH=~/chromium/Chromium_120.0.6099.243/depot_tools/.cipd_bin/3.8/bin:$PATH

可以查看gn的所有选项

gn args --list out/Default

release版本

gn gen out/Release --args='target_os="android" target_cpu="arm64" is_debug=false is_official_build=true enable_nacl=false is_chrome_branded=false use_official_google_api_keys=false ffmpeg_branding="Chrome" proprietary_codecs=true enable_remoting=true treat_warnings_as_errors=false system_webview_package_name = "com.google.android.webview"'

debug版本

gn gen out/Debug --args='target_os="android" target_cpu="arm64" is_debug=true is_official_build=false enable_nacl=false is_chrome_branded=false use_official_google_api_keys=false ffmpeg_branding="Chrome" proprietary_codecs=true enable_remoting=true treat_warnings_as_errors=false'

autoninja -C out/Release system_webview_apk -j8

构建android的webview

autoninja -C out/Release monochrome_public_apk -j8

构建单独的浏览器


以上就是下载源码编译的全过程,下面开始更改调整位置。不同版本位置会有略微差异

代码的基质位置位于/chromium_120.0.6099.243/code/src(函数参数就不写了)

android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java(对于打webview.apk是有效的)

loadUrl()

通过修改mWebSettings.setUserAgenString()

third_party/blink/common/device_memory/approximated_device_memory.cc

GetculateAndSetApproximatedDeviceMemory()

通过修改字段approximated_device_memory_gb_

third_party/blink/renderer/core/frame/screen.cc

height()


width()



若要获取pixel来计算分辨率的话,则在Screen()初始化函数中使用GetScreenInfo().device_scale_factor获取

colorDepth()


availHeight()


avaiWidth()


third_party/blink/renderer/core/frame/navigator_ua_data.cc

AddBrandVersion()


AddBrandFullVersion()


SetBrandVersionList()



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

最后于 2025-6-8 16:50 被琳宇编辑 ,原因:
收藏
免费 9
支持
分享
最新回复 (3)
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2025-6-8 19:41
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
大佬   可以加vx交流下吗,我也搞这个
6天前
0
雪    币: 480
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
厉害 佬做什么工作的 反爬虫到这种程度
5天前
0
游客
登录 | 注册 方可回帖
返回