图书前言

前言

在当前的技术领域中,关于Chromium浏览器的资料非常稀缺。大多数初学者在学习Chromium浏览器时,唯一的选择就是阅读官方文档。我从四年前开始深入学习Chromium源码,独自摸索了很长时间,深知这一学习之路的艰辛与挑战。为此,我设计了这本适合初学者的Chromium教程,而且针对的是指纹浏览器开发这一方向。

本书是国内首本专门讲解Chromium指纹浏览器开发的技术书籍,旨在为广大读者提供一份全面而深入的指南。内容涵盖了从Chromium的环境搭建、基础知识,到浏览器指纹的传递、软硬件指纹的获取方式和定制方法。每个步骤都力求做到易懂、详细且实用,帮助读者一步步掌握Chromium指纹浏览器开发的精髓。

本书共8章,围绕Chromium浏览器的119版本进行讲解,并配合实际代码编写,旨在帮助读者掌握指纹浏览器的开发。

第1章介绍浏览器开发环境的搭建,包括VMware安装配置、Windows 11虚拟机的创建、Chromium开发环境配置及源码拉取和编译。通过本章的学习,读者将会搭建起一个完整的Chromium浏览器开发环境。

第2章讲解Chromium浏览器的基础知识,详细介绍了Chromium源码的目录结构、多进程架构及其调试方法,并深入解析了Blink渲染引擎的工作原理和模块组成。通过本章的学习,读者将会掌握Chromium浏览器的基础架构和核心组件。

第3章讲解Chromium浏览器进行指纹传递的方法,介绍如何通过工具类在不同进程间传递指纹信息,重点讲解RendererProcessHost的初始化和添加渲染进程命令行的函数。通过本章的学习,读者将会实现指纹信息的传递和管理。

第4章讲解Chromium硬件指纹的定制,详细介绍各类硬件指纹的获取与定制方法,包括Canvas指纹、WebGL指纹、WebAudio指纹、设备内存和处理器、充电电池信息、网络连接信息及触摸屏信息的定制。通过本章的学习,读者将会掌握硬件指纹的定制方法。

第5章讲解Chromium软件指纹的定制,详细介绍各类软件指纹的定制方法,包括WebRTC指纹、浏览器navigator指纹、时区时间信息、doNotTrack指纹、UA指纹、字体指纹、ClientRects指纹及Client Hints指纹的定制。通过本章的学习,读者将会实现软件指纹的定制。

第6章讲解浏览器指纹之间的关联性,介绍了如何关联IP指纹和HTTP指纹,并详细讲解了UA指纹关联、HTTP请求头和Client Hints请求头关联的方法。通过本章的学习,读者将会实现多种指纹信息的关联与统一管理。

第7章讲解TLS/SSL指纹信息,介绍了TLS/SSL协议的基础知识及其指纹信息,重点讲解了JA3和JA4指纹的获取与修改方法,并提供了BoringSSL的介绍和指纹修改的具体步骤。通过本章的学习,读者将会掌握TLS/SSL指纹的定制技巧。

第8章讲解自动化驱动指纹浏览器,介绍了自动化浏览器技术及其在指纹浏览器中的应用,详细讲解了Playwright自动化工具的使用方法,并探讨了自动化检测及其应对策略,包括isTrusted属性应对、CDP检测和无头模式检测的方法。通过本章的学习,读者将会实现对指纹浏览器的自动化驱动与检测应对。

我从事计算机教育多年,本书是从过去设计的浏览器课程整理而来的,与此同时,冯维淼老师多次和我探讨浏览器指纹相关的内容,并给予了我可行的技术建议,最终完成了本书的编写,希望能够为读者提供切实的帮助和指导。相信这本书能够让读者在学习Chromium指纹浏览器开发的道路上有所收获,少走弯路。

由于编者水平有限,书中疏漏之处在所难免,欢迎广大同行和读者批评指正。

李岳阳2024年6月