- 博客(26)
- 收藏
- 关注
原创 Android 动态代理详解
动态代理是一种在运行时动态生成代理对象并拦截方法调用的技术。它广泛应用于 Android 开发中,例如 AOP(面向切面编程)、插件化开发、网络请求框架(如 Retrofit)等场景。通过理解动态代理的原理和实现细节,可以在 Android 开发中灵活应用这一技术,提升代码的可维护性和扩展性。定义一个接口,作为目标对象的行为规范。接口,定义方法调用的拦截逻辑。创建一个类实现该接口。
2025-03-19 11:37:37
980
原创 网页图片长按HitTest流程分析
1. 生成触摸事件 (WM_TOUCH/WEBKIT_EVENT_TOUCH_START)2. 通过IPC::BrokeForwardTouchEvent。11. 通过Mojo接口传递HitTestData。
2025-03-17 14:02:15
668
原创 QUIC网络通信协议
QUIC减少握手延迟(0-RTT)解决 TCP 队头阻塞,提高 HTTP/3 传输效率更安全(默认 TLS 1.3),不易被中间人攻击连接迁移能力强,适合移动设备QUIC 未来可能逐步取代TCP + TLS,成为互联网新一代主流传输协议。下面是 QUIC 连接建立和数据传输的时序图,使用Mermaid语法表示:fill:#333;ClientServer连接建立 (1-RTT)连接建立 (0-RTT)连接迁移完成QUIC 连接关闭ClientServer。
2025-03-13 18:21:02
645
原创 AES加密原理
密钥扩展(Key Expansion)将原始密钥扩展为多个轮密钥(round keys),每一轮使用一个不同的密钥。扩展算法基于轮常量(Rcon)和字节替换操作。初始轮(Initial Round)将明文分块(128 位一组),直接与初始轮密钥进行按位异或(AddRoundKey)操作,生成初始状态矩阵。主轮(Rounds)SubBytes:使用 S-box 对状态矩阵中的每个字节进行非线性替换。ShiftRows:按行进行循环左移,不同行的位移量不同,打乱字节顺序。MixColumns。
2025-03-07 18:15:00
916
原创 主流加解密算法全景解析:对称、非对称与哈希算法详解
对称加密:安全性依赖于密钥保密,适用于大数据量加解密;代表算法如AES、3DES等。非对称加密:密钥对管理简单,支持数字签名和密钥交换,但加解密速度较慢;代表算法如RSA、ECC、DSA等。哈希算法:单向加密,用于数据完整性和密码存储;代表算法如MD5、SHA-256、HMAC等。各类加密算法在现代安全体系中各有定位,通常需要结合使用以构建既高效又安全的通信系统和数据保护方案。选择具体算法时需根据应用场景、数据量、安全需求以及硬件资源等因素综合考虑。
2025-03-07 12:15:17
872
原创 Android双亲委派
下面是一份 Android 类加载器双亲委派机制的时序图示例,描述了当应用调用 loadClass() 时,各个加载器之间的委派过程。ClientApp ClassLoader(DexClassLoader/PathClassLoader)Parent ClassLoader(PathClassLoader)BootClassLoader应用代码调用加载请求loadClass("TargetClass")1. 检查是否已加载2. 未加载则委派父加载器loadClass("TargetClass")1. 继续
2025-03-07 10:25:10
557
原创 RePlugin字节码修改流程分析
判断是否需要修改(如目标类名匹配)判断是否需要修改(如目标类名匹配)回写修改后的 .class 文件。回写修改后的 .class 文件。继续后续构建流程(打包、签名等)注册自定义 Transform。完成 Transform 任务。遍历所有 .class 文件。遍历所有 .class 文件。加载 CtClass 对象。加载 CtClass 对象。
2025-02-27 19:28:12
946
原创 C++语言基础
以上是 C++ 语言的基础内容,涵盖了基本语法、数据类型、控制结构、函数、面向对象编程、指针与引用以及 STL 的使用。C++ 是一种通用的、面向对象的编程语言,广泛应用于系统软件开发、游戏开发、嵌入式系统等领域。它继承了 C 语言的高效性和灵活性,并在此基础上增加了面向对象的特性。C++ 的核心特性之一是支持面向对象编程(OOP),主要包括类和对象。C++ 提供了丰富的数据类型,包括基本数据类型和复合数据类型。C++ 提供了强大的 STL,包含容器、算法和迭代器等工具。
2025-02-26 14:15:00
557
原创 C++开发技能
掌握常见的数据结构如链表、树、图、哈希表、队列、栈等的实现和应用,熟悉基本算法,如排序、查找、动态规划等,并能在实际问题中灵活运用。:掌握C++11、C++14、C++17等新特性,如智能指针、lambda表达式、并发支持等,以编写现代化的C++代码。:深入理解面向对象编程概念,包括类与对象、封装、继承、多态等OOP特性,以及模板、命名空间、异常处理等C++特性。:熟悉C++的基本语法、数据类型、指针、内存管理等核心知识,能够编写高效、可靠的C++代码。
2025-02-26 09:52:40
356
原创 Android Chromium 开发必备技能
深入了解Chromium的架构,特别是其渲染引擎Blink的工作原理。:了解如何在Android应用中集成和定制Chromium内核,特别是WebView的使用和优化。:熟悉使用调试工具(如GDB、LLDB)和性能分析工具(如Chrome DevTools)来调试和优化Chromium代码。:了解操作系统的基本概念,如进程管理、内存管理、文件系统等,以便更好地理解Chromium与系统的交互。:熟练使用Git等版本控制系统,以及相关的协作工具,以便参与Chromium的开发和维护。
2025-02-26 09:49:16
319
原创 Https通信中证书验证流程
客户端验证服务器证书的有效性是一个多步骤的过程,涉及证书链验证、域名匹配、吊销检查等多个环节。但在某些场景下(如自定义客户端或嵌入式设备),可能需要手动处理证书验证逻辑。在 HTTPS 通信中,客户端验证服务器证书的有效性是确保通信安全的重要步骤。检查证书的 Not Before 和 Not After 字段。以下是将您提供的 HTTPS 证书验证流程转换为。返回证书链(服务器证书 + 中间证书)使用中间证书公钥验证服务器证书签名。检查证书的 SAN 或 CN 字段。使用根证书公钥验证中间证书签名。
2025-02-21 21:24:39
872
原创 HTTPS 证书交换流程
HTTPS 的密钥交换过程是基于 TLS(Transport Layer Security)协议实现的,其核心目标是通过加密和认证机制确保通信双方的安全性。HTTPS 密钥交换的核心是通过非对称加密(如 ECDHE)协商共享密钥,并使用对称加密(如 AES)保护实际数据传输。在此阶段,客户端和服务器通过密钥交换算法(如 ECDHE)协商出共享密钥(Pre-Master Secret)。握手完成后,客户端和服务器使用协商出的会话密钥进行对称加密通信。由于椭圆曲线的数学特性,双方计算出的。
2025-02-21 12:03:21
798
原创 HTTPS 通信流程
加密套件(如 TLS_AES_256_GCM_SHA384)支持的椭圆曲线(如 X25519, P-256)验证签名算法(RSA-2048/ECDSA)验证签名(SHA-256 with RSA)发送服务器证书(X.509 v3)Finished(AEAD加密)Finished(AEAD加密)计算共享密钥(ECDHE)计算共享密钥(ECDHE)客户端随机数(32字节)服务器随机数(32字节)验证域名(CN/SAN)OCSP检查(HTTP)应用数据(AEAD加密)应用数据(AEAD加密)
2025-02-20 16:05:56
924
原创 DNS\DOH\DOT 查询流程图
fill:#333;color:#333;color:#333;fill:none;DoHDoT传统DNS协议: HTTPS端口: 443TLS加密+HTTP混合在HTTPS流量中协议: TLS端口: 853TLS加密专用端口可能被封锁协议: UDP/TCP端口: 53无加密易被劫持/篡改。
2025-02-19 10:29:50
849
原创 Chromium 内核 DNS 解析
下面是 Chromium 内核 DNS 解析的完整调用链路和时序图:fill:#333;paraltaltalt:应用程序通过调用方法来创建一个实例。在内部创建一个实例,负责管理解析请求。DnsClient创建一个DnsClient实例,用于处理 DNS 查询。DnsClientDnsClient完成初始化,准备处理 DNS 请求。:应用程序调用的方法,传入主机名。调用的方法,创建一个新的解析请求。调用缓存组件,检查是否存在该主机名的缓存记录。:如果缓存中存在有效记录,直接返回缓存结果。
2025-02-18 16:47:28
771
原创 深入解析 DNS 与 DoH(DNS over HTTPS)协议
DNS(Domain Name System,域名系统)是互联网的一项核心服务,用于将人类可读的域名(如)转换为计算机可识别的 IP 地址(如DNS 的主要功能是帮助用户通过易于记忆的域名访问网站,而不需要记住复杂的 IP 地址。DoH(DNS over HTTPS,基于 HTTPS 的 DNS)是一种通过 HTTPS 协议进行 DNS 查询的技术。它旨在解决传统 DNS 查询中存在的安全性和隐私问题。
2025-02-12 14:36:47
1306
原创 2024年AI大模型评测深度分析:GPT-4仍领先,国产模型奋起直追
近期,随着Claude 3、文心4.0等新一代AI大模型的发布,全球AI模型竞争格局愈发激烈。通过分析权威评测榜单的最新数据,我们可以清晰地看到当前AI大模型的发展现状和未来趋势。
2025-02-12 09:35:15
730
原创 Chromium 的 GN 语法总结
GN 语法设计简洁且灵活,核心概念包括目标(targets)、变量(variables)、依赖(dependencies)、条件判断(conditionals)、路径(paths)、函数(functions)等。它使用类似于其他构建工具的方式来组织和管理项目的构建过程,但更加关注构建效率和可扩展性。掌握 GN 语法有助于在 Chromium 项目中高效地管理构建流程,确保正确的目标和依赖关系被处理。
2025-01-26 14:10:36
1230
原创 Native 崩溃解析工具
一个Python工具库,用于简化Android NDK崩溃分析。该库通过封装NDK工具来简化操作,支持解析.dmp文件和logcat崩溃日志,并支持灵活配置参数。支持多平台(Linux、Windows、macOS),并提供Shell和Batch脚本便于使用。
2025-01-22 13:21:53
1012
原创 自动填充组件 Autofill
core/: 在 content/ 和 ios/ 中共享的代码。browser/: 浏览器进程的代码。common/: 浏览器和渲染器共享的代码。content/: 使用 //content 层的驱动程序(除 iOS 外的所有平台)。browser/: 浏览器进程的代码。renderer/: 渲染器进程的代码。common/: 浏览器和渲染器共享的代码。ios/: 使用 //ios 的驱动程序(与 //content 相对应)。android/: Android 平台的 Java 代码。
2024-06-05 11:31:13
1480
原创 Chromium 扩展工作原理
与扩展页面和后台页面的通信:扩展程序的不同组件之间可以通过消息传递机制进行通信。内容脚本可以向扩展页面或后台页面发送消息,而扩展页面和后台页面也可以相互之间发送消息,实现不同组件之间的数据传递和协作。事件监听和处理:扩展程序可以监听浏览器和页面的各种事件,如页面加载完成、用户点击按钮等,然后根据这些事件执行相应的操作,如修改页面内容、弹出通知、打开新标签页等。这个时序图详细描述了扩展工作流程中的各个环节,包括页面事件和浏览器事件的处理,以及扩展与页面和后台页面之间的消息传递过程。
2024-05-10 18:06:20
426
1
原创 Chromium浏览器的代理配置和通信原理
是一个用于获取PAC脚本的组件,它的作用是从指定的URL地址获取PAC脚本内容,以便浏览器能够根据脚本定义的规则来动态选择合适的代理服务器。总的来说,Chromium浏览器通过代理服务器来处理网络请求,代理服务器负责转发请求、处理响应,从而实现了对网络请求的管理和控制。是负责执行PAC脚本并根据其结果选择适当的代理服务器的组件,它在代理配置的动态管理和网络请求的代理路由中起着关键作用。是负责代理配置管理和代理信息提供的核心组件,在浏览器的网络请求中起着重要的作用。
2024-05-08 15:34:43
1741
1
原创 浏览器预防中间人攻击-HSTS策略
在收到带有`Strict-Transport-Security`头部的HTTPS响应后,浏览器会在指定的时间内强制使用HTTPS连接该域名,即使用户手动输入HTTP链接或通过HTTP链接访问该域名,浏览器也会自动将其重定向到HTTPS。HSTS(HTTP Strict Transport Security)是一种网络安全策略,通过强制使用加密的HTTPS连接,防止不安全的HTTP连接,提高网站安全性,防止中间人攻击和数据窃取。当为1时,表示浏览器应将当前页面的所有HTTP请求升级为HTTPS请求。
2024-05-08 15:28:45
374
3
课堂安全教育 小学生防溺水 注意事项.pptx
2024-05-08
课堂安全教育:溺水防护措施总结.pptx
2024-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人