<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>签名验证 - 标签 - 逆向工程 Cookbook</title><link>https://overkazaf.github.io/reverse_engineering/tags/%E7%AD%BE%E5%90%8D%E9%AA%8C%E8%AF%81/</link><description>Android 与 Web 逆向工程实战手册</description><generator>Hugo 0.147.7 &amp; FixIt v0.4.0-alpha.3-20251224074056-4fec1cda</generator><language>zh-CN</language><managingEditor>overkazaf@gmail.com (+5)</managingEditor><webMaster>overkazaf@gmail.com (+5)</webMaster><lastBuildDate>Mon, 13 Oct 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://overkazaf.github.io/reverse_engineering/tags/%E7%AD%BE%E5%90%8D%E9%AA%8C%E8%AF%81/index.xml" rel="self" type="application/rss+xml"/><item><title>Web 逆向工程 Cookbook</title><link>https://overkazaf.github.io/reverse_engineering/web/</link><pubDate>Fri, 25 Jul 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/</guid><description>&lt;h1 class="heading-element" id="web-逆向工程-cookbook">&lt;span>Web 逆向工程 Cookbook&lt;/span>
 &lt;a href="#web-%e9%80%86%e5%90%91%e5%b7%a5%e7%a8%8b-cookbook" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>欢迎来到 &lt;strong>Web RE Cookbook&lt;/strong> —— 一本实战导向的 Web 逆向工程实用手册。&lt;/p></description></item><item><title>速查表 - Cheat Sheets</title><link>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/</guid><description>&lt;h1 class="heading-element" id="速查表---cheat-sheets">&lt;span>速查表 - Cheat Sheets&lt;/span>
 &lt;a href="#%e9%80%9f%e6%9f%a5%e8%a1%a8---cheat-sheets" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>快速参考手册，帮助你在逆向过程中快速查找常用命令、特征和配置。&lt;/p></description></item><item><title>快速入门</title><link>https://overkazaf.github.io/reverse_engineering/android/00-quick-start/</link><pubDate>Wed, 06 Mar 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/00-quick-start/</guid><description>&lt;h1 class="heading-element" id="快速入门">&lt;span>快速入门&lt;/span>
 &lt;a href="#%e5%bf%ab%e9%80%9f%e5%85%a5%e9%97%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>欢迎！这个指南将帮助你在 &lt;strong>10 分钟内&lt;/strong>完成第一次 Android 逆向分析。&lt;/p></description></item><item><title>金融网站逆向案例</title><link>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_financial/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_financial/</guid><description>&lt;h1 class="heading-element" id="金融网站逆向案例">&lt;span>金融网站逆向案例&lt;/span>
 &lt;a href="#%e9%87%91%e8%9e%8d%e7%bd%91%e7%ab%99%e9%80%86%e5%90%91%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>金融网站通常具有极高的安全要求，包括多层加密、动态令牌、设备指纹、行为分析等。本文通过真实案例介绍金融网站的逆向分析方法和安全机制。&lt;/p></description></item><item><title>视频 App 与 DRM 案例</title><link>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_video_apps_and_drm/</link><pubDate>Mon, 15 Sep 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_video_apps_and_drm/</guid><description>&lt;h1 class="heading-element" id="视频-app-与-drm-案例">&lt;span>视频 App 与 DRM 案例&lt;/span>
 &lt;a href="#%e8%a7%86%e9%a2%91-app-%e4%b8%8e-drm-%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>电商网站逆向案例</title><link>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_ecommerce/</link><pubDate>Sat, 06 Sep 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_ecommerce/</guid><description>&lt;h1 class="heading-element" id="电商网站逆向案例">&lt;span>电商网站逆向案例&lt;/span>
 &lt;a href="#%e7%94%b5%e5%95%86%e7%bd%91%e7%ab%99%e9%80%86%e5%90%91%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>电商网站通常具有复杂的反爬虫机制，包括 API 签名、加密价格、滑块验证码等。本文通过实际案例介绍电商网站的逆向思路。&lt;/p></description></item><item><title>Apache Flink 实时流处理</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/data-analysis/flink/</link><pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/data-analysis/flink/</guid><description>&lt;h1 class="heading-element" id="apache-flink-实时流处理">&lt;span>Apache Flink 实时流处理&lt;/span>
 &lt;a href="#apache-flink-%e5%ae%9e%e6%97%b6%e6%b5%81%e5%a4%84%e7%90%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Apache Flink 是一个分布式流处理框架，专为低延迟、高吞吐量的实时数据处理而设计。&lt;/p></description></item><item><title>音乐 App 案例</title><link>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_music_apps/</link><pubDate>Tue, 29 Jul 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_music_apps/</guid><description>&lt;h1 class="heading-element" id="音乐-app-案例">&lt;span>音乐 App 案例&lt;/span>
 &lt;a href="#%e9%9f%b3%e4%b9%90-app-%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>搜索引擎对抗</title><link>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_search_engine/</link><pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_search_engine/</guid><description>&lt;h1 class="heading-element" id="搜索引擎对抗">&lt;span>搜索引擎对抗&lt;/span>
 &lt;a href="#%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e%e5%af%b9%e6%8a%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>搜索引擎拥有业界最强的反爬虫防护机制。本文通过 5 个真实案例，讲解搜索引擎的防护技术及其对抗策略。&lt;/p></description></item><item><title>WebAssembly 逆向</title><link>https://overkazaf.github.io/reverse_engineering/web/04-advanced-recipes/webassembly_reversing/</link><pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/04-advanced-recipes/webassembly_reversing/</guid><description>&lt;h1 class="heading-element" id="webassembly-逆向">&lt;span>WebAssembly 逆向&lt;/span>
 &lt;a href="#webassembly-%e9%80%86%e5%90%91" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="思考时刻">&lt;span>思考时刻&lt;/span>
 &lt;a href="#%e6%80%9d%e8%80%83%e6%97%b6%e5%88%bb" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>在深入 WebAssembly 逆向之前，先挑战一下你的认知：&lt;/p></description></item><item><title>新闻聚合网站</title><link>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_news_aggregator/</link><pubDate>Sat, 14 Jun 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_news_aggregator/</guid><description>&lt;h1 class="heading-element" id="新闻聚合网站">&lt;span>新闻聚合网站&lt;/span>
 &lt;a href="#%e6%96%b0%e9%97%bb%e8%81%9a%e5%90%88%e7%bd%91%e7%ab%99" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>新闻聚合网站（如 Hacker News、Reddit、今日头条）汇集多个新闻源，并提供个性化推荐。本文通过 5 个真实案例，深入讲解新闻聚合平台的逆向技术。&lt;/p></description></item><item><title>分布式爬虫架构模板</title><link>https://overkazaf.github.io/reverse_engineering/web/09-templates/distributed_crawler/</link><pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/09-templates/distributed_crawler/</guid><description>&lt;h1 class="heading-element" id="分布式爬虫架构模板">&lt;span>分布式爬虫架构模板&lt;/span>
 &lt;a href="#%e5%88%86%e5%b8%83%e5%bc%8f%e7%88%ac%e8%99%ab%e6%9e%b6%e6%9e%84%e6%a8%a1%e6%9d%bf" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>基于 Scrapy + Redis 的分布式爬虫架构，支持多机协同、任务调度和数据去重。&lt;/p></description></item><item><title>开源项目推荐</title><link>https://overkazaf.github.io/reverse_engineering/web/11-resources/github_projects/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/11-resources/github_projects/</guid><description>&lt;h1 class="heading-element" id="开源项目推荐">&lt;span>开源项目推荐&lt;/span>
 &lt;a href="#%e5%bc%80%e6%ba%90%e9%a1%b9%e7%9b%ae%e6%8e%a8%e8%8d%90" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>本章精选了 Web 逆向工程领域的优质开源项目，涵盖工具、框架、库和学习资源。这些项目可以帮助你快速入门、提升技能、解决实际问题。&lt;/p></description></item><item><title>加密算法特征速查表</title><link>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/crypto_signatures/</link><pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/crypto_signatures/</guid><description>&lt;h1 class="heading-element" id="加密算法特征速查表">&lt;span>加密算法特征速查表&lt;/span>
 &lt;a href="#%e5%8a%a0%e5%af%86%e7%ae%97%e6%b3%95%e7%89%b9%e5%be%81%e9%80%9f%e6%9f%a5%e8%a1%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="输出长度特征">&lt;span>输出长度特征&lt;/span>
 &lt;a href="#%e8%be%93%e5%87%ba%e9%95%bf%e5%ba%a6%e7%89%b9%e5%be%81" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>算法&lt;/th>
 &lt;th>输出长度&lt;/th>
 &lt;th>输出格式&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>MD5&lt;/strong>&lt;/td>
 &lt;td>32 字符&lt;/td>
 &lt;td>十六进制&lt;/td>
 &lt;td>&lt;code>5d41402abc4b2a76b9719d911017c592&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>SHA1&lt;/strong>&lt;/td>
 &lt;td>40 字符&lt;/td>
 &lt;td>十六进制&lt;/td>
 &lt;td>&lt;code>aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>SHA256&lt;/strong>&lt;/td>
 &lt;td>64 字符&lt;/td>
 &lt;td>十六进制&lt;/td>
 &lt;td>&lt;code>e3b0c44298fc1c149afbf4c8996fb...&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>SHA512&lt;/strong>&lt;/td>
 &lt;td>128 字符&lt;/td>
 &lt;td>十六进制&lt;/td>
 &lt;td>&lt;code>cf83e1357eefb8bdf1542850d66d8...&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>AES&lt;/strong>&lt;/td>
 &lt;td>可变&lt;/td>
 &lt;td>Base64&lt;/td>
 &lt;td>&lt;code>U2FsdGVkX1+LpXMIpGBwDA==&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>RSA-2048&lt;/strong>&lt;/td>
 &lt;td>256 字节&lt;/td>
 &lt;td>Base64&lt;/td>
 &lt;td>长字符串&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h2 class="heading-element" id="javascript-库特征">&lt;span>JavaScript 库特征&lt;/span>
 &lt;a href="#javascript-%e5%ba%93%e7%89%b9%e5%be%81" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="cryptojs">&lt;span>CryptoJS&lt;/span>
 &lt;a href="#cryptojs" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>// 特征代码
CryptoJS.MD5(text);
CryptoJS.SHA256(text);
CryptoJS.AES.encrypt(text, key);
CryptoJS.enc.Base64.stringify();
CryptoJS.lib.WordArray;&lt;/code>&lt;/pre>&lt;p>&lt;strong>识别要点&lt;/strong>:&lt;/p></description></item><item><title>反分析技术案例</title><link>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_anti_analysis_techniques/</link><pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_anti_analysis_techniques/</guid><description>&lt;h1 class="heading-element" id="反分析技术案例">&lt;span>反分析技术案例&lt;/span>
 &lt;a href="#%e5%8f%8d%e5%88%86%e6%9e%90%e6%8a%80%e6%9c%af%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>常见问题 (FAQ)</title><link>https://overkazaf.github.io/reverse_engineering/web/11-resources/faq/</link><pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/11-resources/faq/</guid><description>&lt;h1 class="heading-element" id="常见问题-faq">&lt;span>常见问题 (FAQ)&lt;/span>
 &lt;a href="#%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98-faq" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>本章汇总了 Web 逆向工程中的常见问题和解答，帮助你快速解决常见困惑。&lt;/p></description></item><item><title>网络和请求问题</title><link>https://overkazaf.github.io/reverse_engineering/web/10-troubleshooting/network_issues/</link><pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/10-troubleshooting/network_issues/</guid><description>&lt;h1 class="heading-element" id="网络和请求问题">&lt;span>网络和请求问题&lt;/span>
 &lt;a href="#%e7%bd%91%e7%bb%9c%e5%92%8c%e8%af%b7%e6%b1%82%e9%97%ae%e9%a2%98" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>常见的网络连接和 HTTP 请求问题及解决方案。&lt;/p></description></item><item><title>HTTP 头速查表</title><link>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/http_headers/</link><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/http_headers/</guid><description>&lt;h1 class="heading-element" id="http-头速查表">&lt;span>HTTP 头速查表&lt;/span>
 &lt;a href="#http-%e5%a4%b4%e9%80%9f%e6%9f%a5%e8%a1%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="常见请求头-request-headers">&lt;span>常见请求头 (Request Headers)&lt;/span>
 &lt;a href="#%e5%b8%b8%e8%a7%81%e8%af%b7%e6%b1%82%e5%a4%b4-request-headers" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Header&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>User-Agent&lt;/strong>&lt;/td>
 &lt;td>客户端信息&lt;/td>
 &lt;td>&lt;code>Mozilla/5.0 (Windows NT 10.0; Win64; x64)...&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Accept&lt;/strong>&lt;/td>
 &lt;td>可接受的内容类型&lt;/td>
 &lt;td>&lt;code>application/json, text/plain, */*&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Accept-Language&lt;/strong>&lt;/td>
 &lt;td>可接受的语言&lt;/td>
 &lt;td>&lt;code>zh-CN,zh;q=0.9,en;q=0.8&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Accept-Encoding&lt;/strong>&lt;/td>
 &lt;td>可接受的编码&lt;/td>
 &lt;td>&lt;code>gzip, deflate, br&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Content-Type&lt;/strong>&lt;/td>
 &lt;td>请求体内容类型&lt;/td>
 &lt;td>&lt;code>application/json; charset=UTF-8&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Content-Length&lt;/strong>&lt;/td>
 &lt;td>请求体长度&lt;/td>
 &lt;td>&lt;code>1234&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Authorization&lt;/strong>&lt;/td>
 &lt;td>认证信息&lt;/td>
 &lt;td>&lt;code>Bearer eyJhbGciOiJIUzI1NiIs...&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Cookie&lt;/strong>&lt;/td>
 &lt;td>Cookie 数据&lt;/td>
 &lt;td>&lt;code>session_id=abc123; user=admin&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Referer&lt;/strong>&lt;/td>
 &lt;td>来源页面&lt;/td>
 &lt;td>&lt;code>https://example.com/page1&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Origin&lt;/strong>&lt;/td>
 &lt;td>请求来源&lt;/td>
 &lt;td>&lt;code>https://example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Host&lt;/strong>&lt;/td>
 &lt;td>目标主机&lt;/td>
 &lt;td>&lt;code>api.example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Connection&lt;/strong>&lt;/td>
 &lt;td>连接方式&lt;/td>
 &lt;td>&lt;code>keep-alive&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Cache-Control&lt;/strong>&lt;/td>
 &lt;td>缓存控制&lt;/td>
 &lt;td>&lt;code>no-cache, no-store&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Pragma&lt;/strong>&lt;/td>
 &lt;td>HTTP/1.0 缓存控制&lt;/td>
 &lt;td>&lt;code>no-cache&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>If-Modified-Since&lt;/strong>&lt;/td>
 &lt;td>条件请求&lt;/td>
 &lt;td>&lt;code>Wed, 21 Oct 2025 07:28:00 GMT&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>If-None-Match&lt;/strong>&lt;/td>
 &lt;td>ETag 条件请求&lt;/td>
 &lt;td>&lt;code>&amp;quot;686897696a7c876b7e&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Range&lt;/strong>&lt;/td>
 &lt;td>范围请求&lt;/td>
 &lt;td>&lt;code>bytes=0-1024&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>X-Requested-With&lt;/strong>&lt;/td>
 &lt;td>标识 AJAX 请求&lt;/td>
 &lt;td>&lt;code>XMLHttpRequest&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>X-CSRF-Token&lt;/strong>&lt;/td>
 &lt;td>CSRF 令牌&lt;/td>
 &lt;td>&lt;code>abc123def456&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h2 class="heading-element" id="常见响应头-response-headers">&lt;span>常见响应头 (Response Headers)&lt;/span>
 &lt;a href="#%e5%b8%b8%e8%a7%81%e5%93%8d%e5%ba%94%e5%a4%b4-response-headers" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Header&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Content-Type&lt;/strong>&lt;/td>
 &lt;td>响应内容类型&lt;/td>
 &lt;td>&lt;code>application/json; charset=utf-8&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Content-Length&lt;/strong>&lt;/td>
 &lt;td>响应体长度&lt;/td>
 &lt;td>&lt;code>1234&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Content-Encoding&lt;/strong>&lt;/td>
 &lt;td>响应编码&lt;/td>
 &lt;td>&lt;code>gzip&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Set-Cookie&lt;/strong>&lt;/td>
 &lt;td>设置 Cookie&lt;/td>
 &lt;td>&lt;code>session_id=abc123; Path=/; HttpOnly&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Cache-Control&lt;/strong>&lt;/td>
 &lt;td>缓存策略&lt;/td>
 &lt;td>&lt;code>max-age=3600, must-revalidate&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Expires&lt;/strong>&lt;/td>
 &lt;td>过期时间&lt;/td>
 &lt;td>&lt;code>Wed, 21 Oct 2025 07:28:00 GMT&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>ETag&lt;/strong>&lt;/td>
 &lt;td>资源标识&lt;/td>
 &lt;td>&lt;code>&amp;quot;686897696a7c876b7e&amp;quot;&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Last-Modified&lt;/strong>&lt;/td>
 &lt;td>最后修改时间&lt;/td>
 &lt;td>&lt;code>Wed, 21 Oct 2025 07:28:00 GMT&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Location&lt;/strong>&lt;/td>
 &lt;td>重定向地址&lt;/td>
 &lt;td>&lt;code>https://example.com/new-page&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Server&lt;/strong>&lt;/td>
 &lt;td>服务器信息&lt;/td>
 &lt;td>&lt;code>nginx/1.18.0&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>X-Powered-By&lt;/strong>&lt;/td>
 &lt;td>技术栈&lt;/td>
 &lt;td>&lt;code>PHP/7.4.0&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Access-Control-Allow-Origin&lt;/strong>&lt;/td>
 &lt;td>CORS 允许来源&lt;/td>
 &lt;td>&lt;code>*&lt;/code> 或 &lt;code>https://example.com&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Access-Control-Allow-Methods&lt;/strong>&lt;/td>
 &lt;td>CORS 允许方法&lt;/td>
 &lt;td>&lt;code>GET, POST, PUT, DELETE&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Access-Control-Allow-Headers&lt;/strong>&lt;/td>
 &lt;td>CORS 允许头&lt;/td>
 &lt;td>&lt;code>Content-Type, Authorization&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Access-Control-Max-Age&lt;/strong>&lt;/td>
 &lt;td>CORS 预检缓存&lt;/td>
 &lt;td>&lt;code>3600&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Strict-Transport-Security&lt;/strong>&lt;/td>
 &lt;td>HSTS&lt;/td>
 &lt;td>&lt;code>max-age=31536000; includeSubDomains&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>X-Frame-Options&lt;/strong>&lt;/td>
 &lt;td>防点击劫持&lt;/td>
 &lt;td>&lt;code>DENY&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>X-Content-Type-Options&lt;/strong>&lt;/td>
 &lt;td>防 MIME 嗅探&lt;/td>
 &lt;td>&lt;code>nosniff&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>X-XSS-Protection&lt;/strong>&lt;/td>
 &lt;td>XSS 过滤器&lt;/td>
 &lt;td>&lt;code>1; mode=block&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h2 class="heading-element" id="安全相关头">&lt;span>安全相关头&lt;/span>
 &lt;a href="#%e5%ae%89%e5%85%a8%e7%9b%b8%e5%85%b3%e5%a4%b4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="请求安全头">&lt;span>请求安全头&lt;/span>
 &lt;a href="#%e8%af%b7%e6%b1%82%e5%ae%89%e5%85%a8%e5%a4%b4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># CSRF 防护
X-CSRF-Token: abc123def456
X-XSRF-TOKEN: abc123def456

# 自定义签名
X-Signature: md5_hash_value
X-Sign: sha256_hash_value
X-Timestamp: 1702887654321

# API密钥
X-API-Key: your_api_key_here
API-Key: your_api_key_here&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="响应安全头">&lt;span>响应安全头&lt;/span>
 &lt;a href="#%e5%93%8d%e5%ba%94%e5%ae%89%e5%85%a8%e5%a4%b4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 内容安全策略
Content-Security-Policy: default-src &amp;#39;self&amp;#39;; script-src &amp;#39;self&amp;#39; &amp;#39;unsafe-inline&amp;#39;

# XSS 防护
X-XSS-Protection: 1; mode=block

# 防点击劫持
X-Frame-Options: SAMEORIGIN

# MIME 类型嗅探防护
X-Content-Type-Options: nosniff

# Referer 策略
Referrer-Policy: no-referrer-when-downgrade

# 权限策略
Permissions-Policy: geolocation=(), camera=()&lt;/code>&lt;/pre>&lt;h2 class="heading-element" id="content-type-常见值">&lt;span>Content-Type 常见值&lt;/span>
 &lt;a href="#content-type-%e5%b8%b8%e8%a7%81%e5%80%bc" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="请求响应通用">&lt;span>请求/响应通用&lt;/span>
 &lt;a href="#%e8%af%b7%e6%b1%82%e5%93%8d%e5%ba%94%e9%80%9a%e7%94%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Content-Type&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>用途&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>application/json&lt;/code>&lt;/td>
 &lt;td>JSON 数据&lt;/td>
 &lt;td>API 请求/响应&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>application/x-www-form-urlencoded&lt;/code>&lt;/td>
 &lt;td>表单数据&lt;/td>
 &lt;td>传统表单提交&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>multipart/form-data&lt;/code>&lt;/td>
 &lt;td>文件上传&lt;/td>
 &lt;td>含文件的表单&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>text/html&lt;/code>&lt;/td>
 &lt;td>HTML 文档&lt;/td>
 &lt;td>网页&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>text/plain&lt;/code>&lt;/td>
 &lt;td>纯文本&lt;/td>
 &lt;td>文本文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>text/css&lt;/code>&lt;/td>
 &lt;td>CSS 样式&lt;/td>
 &lt;td>样式表&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>text/javascript&lt;/code>&lt;/td>
 &lt;td>JavaScript&lt;/td>
 &lt;td>JS 文件&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>application/javascript&lt;/code>&lt;/td>
 &lt;td>JavaScript&lt;/td>
 &lt;td>JS 文件（新标准）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>application/xml&lt;/code>&lt;/td>
 &lt;td>XML 数据&lt;/td>
 &lt;td>XML 格式&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>text/xml&lt;/code>&lt;/td>
 &lt;td>XML 文本&lt;/td>
 &lt;td>XML 文本&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>application/octet-stream&lt;/code>&lt;/td>
 &lt;td>二进制流&lt;/td>
 &lt;td>文件下载&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>image/jpeg&lt;/code>&lt;/td>
 &lt;td>JPEG 图片&lt;/td>
 &lt;td>图片&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>image/png&lt;/code>&lt;/td>
 &lt;td>PNG 图片&lt;/td>
 &lt;td>图片&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>image/gif&lt;/code>&lt;/td>
 &lt;td>GIF 图片&lt;/td>
 &lt;td>动图&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>image/svg+xml&lt;/code>&lt;/td>
 &lt;td>SVG 图片&lt;/td>
 &lt;td>矢量图&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>video/mp4&lt;/code>&lt;/td>
 &lt;td>MP4 视频&lt;/td>
 &lt;td>视频&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>audio/mpeg&lt;/code>&lt;/td>
 &lt;td>MP3 音频&lt;/td>
 &lt;td>音频&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h2 class="heading-element" id="自定义头示例">&lt;span>自定义头示例&lt;/span>
 &lt;a href="#%e8%87%aa%e5%ae%9a%e4%b9%89%e5%a4%b4%e7%a4%ba%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="常见的自定义业务头">&lt;span>常见的自定义业务头&lt;/span>
 &lt;a href="#%e5%b8%b8%e8%a7%81%e7%9a%84%e8%87%aa%e5%ae%9a%e4%b9%89%e4%b8%9a%e5%8a%a1%e5%a4%b4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 版本控制
X-API-Version: 1.0
X-Client-Version: 2.3.1

# 设备信息
X-Device-ID: 1234567890abcdef
X-Device-Type: mobile
X-Platform: ios
X-OS-Version: 14.5

# 追踪和调试
X-Request-ID: uuid-1234-5678
X-Trace-ID: trace_abc123
X-Debug: true

# 地理位置
X-Geo-Country: CN
X-Geo-City: Beijing
X-Client-IP: 1.2.3.4

# A/B测试
X-Experiment: variant_b
X-Feature-Flag: new_ui_enabled&lt;/code>&lt;/pre>&lt;h2 class="heading-element" id="user-agent-示例">&lt;span>User-Agent 示例&lt;/span>
 &lt;a href="#user-agent-%e7%a4%ba%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="桌面浏览器">&lt;span>桌面浏览器&lt;/span>
 &lt;a href="#%e6%a1%8c%e9%9d%a2%e6%b5%8f%e8%a7%88%e5%99%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># Chrome (Windows)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

# Firefox (Windows)
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0

# Edge (Windows)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0

# Safari (macOS)
Mozilla/5.0 (Macintosh; Intel Mac OS X 14_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Safari/605.1.15&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="移动浏览器">&lt;span>移动浏览器&lt;/span>
 &lt;a href="#%e7%a7%bb%e5%8a%a8%e6%b5%8f%e8%a7%88%e5%99%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># iPhone Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Mobile/15E148 Safari/604.1

# Android Chrome
Mozilla/5.0 (Linux; Android 13; SM-S908B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36

# iPad Safari
Mozilla/5.0 (iPad; CPU OS 17_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Mobile/15E148 Safari/604.1&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="爬虫工具">&lt;span>爬虫/工具&lt;/span>
 &lt;a href="#%e7%88%ac%e8%99%ab%e5%b7%a5%e5%85%b7" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># Python Requests
python-requests/2.31.0

# Postman
PostmanRuntime/7.36.0

# cURL
curl/7.68.0&lt;/code>&lt;/pre>&lt;h2 class="heading-element" id="authorization-方式">&lt;span>Authorization 方式&lt;/span>
 &lt;a href="#authorization-%e6%96%b9%e5%bc%8f" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="bearer-token">&lt;span>Bearer Token&lt;/span>
 &lt;a href="#bearer-token" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="basic-auth">&lt;span>Basic Auth&lt;/span>
 &lt;a href="#basic-auth" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
# (username:password 的 Base64编码)&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="digest-auth">&lt;span>Digest Auth&lt;/span>
 &lt;a href="#digest-auth" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>Authorization: Digest username=&amp;#34;user&amp;#34;, realm=&amp;#34;example.com&amp;#34;, nonce=&amp;#34;abc123&amp;#34;, uri=&amp;#34;/api&amp;#34;, response=&amp;#34;def456&amp;#34;&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="api-key">&lt;span>API Key&lt;/span>
 &lt;a href="#api-key" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>Authorization: ApiKey your_api_key_here
# 或
X-API-Key: your_api_key_here&lt;/code>&lt;/pre>&lt;h2 class="heading-element" id="cookie-属性">&lt;span>Cookie 属性&lt;/span>
 &lt;a href="#cookie-%e5%b1%9e%e6%80%a7" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;pre>&lt;code>Set-Cookie: session_id=abc123; Domain=example.com; Path=/; Expires=Wed, 21 Oct 2025 07:28:00 GMT; Max-Age=3600; Secure; HttpOnly; SameSite=Strict&lt;/code>&lt;/pre>&lt;p>&lt;strong>属性说明&lt;/strong>:&lt;/p></description></item><item><title>基于 AOSP 的深度改机技术指南</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/aosp_device_modification/</link><pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/aosp_device_modification/</guid><description>&lt;h1 class="heading-element" id="基于-aosp-的深度改机技术指南">&lt;span>基于 AOSP 的深度改机技术指南&lt;/span>
 &lt;a href="#%e5%9f%ba%e4%ba%8e-aosp-%e7%9a%84%e6%b7%b1%e5%ba%a6%e6%94%b9%e6%9c%ba%e6%8a%80%e6%9c%af%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>在 Android 安全和逆向工程领域，&amp;ldquo;改机&amp;quot;指的是修改设备的各种硬件和软件标识符，以绕过应用程序的安全检测或实现隐私保护。虽然使用 Xposed 或 Frida 等 Hook 框架可以在应用层实现改机，但这些方法容易被检测。&lt;strong>基于 AOSP (Android Open Source Project) 源码进行修改，是从系统层面伪造设备指纹的终极手段&lt;/strong>，因为 App 获取到的信息是由系统本身&amp;quot;真实&amp;quot;地提供的。&lt;/p></description></item><item><title>Android 沙箱技术与实现指南</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/android_sandbox_implementation/</link><pubDate>Sun, 27 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/android_sandbox_implementation/</guid><description>&lt;h1 class="heading-element" id="android-沙箱技术与实现指南">&lt;span>Android 沙箱技术与实现指南&lt;/span>
 &lt;a href="#android-%e6%b2%99%e7%ae%b1%e6%8a%80%e6%9c%af%e4%b8%8e%e5%ae%9e%e7%8e%b0%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Android 沙箱技术，通常也被称为&amp;quot;虚拟化引擎&amp;quot;或&amp;quot;App 多开框架&amp;quot;，是一种在单个 Android 设备上创建隔离环境以运行其他应用程序的技术。它允许一个&amp;quot;宿主&amp;quot;应用程序在自己的进程空间内加载并运行一个&amp;quot;插件&amp;quot;应用程序，同时对插件应用的所有系统交互进行拦截和管理。&lt;/p></description></item><item><title>SO 文件反调试与字符串混淆技术</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/so_anti_debugging_and_obfuscation/</link><pubDate>Fri, 25 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/so_anti_debugging_and_obfuscation/</guid><description>&lt;h1 class="heading-element" id="so-文件反调试与字符串混淆技术">&lt;span>SO 文件反调试与字符串混淆技术&lt;/span>
 &lt;a href="#so-%e6%96%87%e4%bb%b6%e5%8f%8d%e8%b0%83%e8%af%95%e4%b8%8e%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%b7%b7%e6%b7%86%e6%8a%80%e6%9c%af" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>在 Android Native 层安全对抗中，SO 文件是实现高强度保护的重要载体。通过 init_array 机制、字符串混淆和反调试技术的组合使用，可以显著提高逆向分析的难度。本文将深入分析这些技术的实现原理及对应的分析绕过方法。&lt;/p></description></item><item><title>绕过 App 对 Frida 的检测</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/anti-detection/frida_anti_debugging/</link><pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/anti-detection/frida_anti_debugging/</guid><description>&lt;h1 class="heading-element" id="绕过-app-对-frida-的检测">&lt;span>绕过 App 对 Frida 的检测&lt;/span>
 &lt;a href="#%e7%bb%95%e8%bf%87-app-%e5%af%b9-frida-%e7%9a%84%e6%a3%80%e6%b5%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>视频网站逆向</title><link>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_video_streaming/</link><pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_video_streaming/</guid><description>&lt;h1 class="heading-element" id="视频网站逆向">&lt;span>视频网站逆向&lt;/span>
 &lt;a href="#%e8%a7%86%e9%a2%91%e7%bd%91%e7%ab%99%e9%80%86%e5%90%91" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>视频网站是最具挑战性的逆向工程目标之一。本文通过 5 个真实案例，深入讲解视频平台的核心防护机制及其逆向方法。&lt;/p></description></item><item><title>使用静态分析定位 Android App 的关键逻辑</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/static_analysis_deep_dive/</link><pubDate>Thu, 10 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/static_analysis_deep_dive/</guid><description>&lt;h1 class="heading-element" id="使用静态分析定位-android-app-的关键逻辑">&lt;span>使用静态分析定位 Android App 的关键逻辑&lt;/span>
 &lt;a href="#%e4%bd%bf%e7%94%a8%e9%9d%99%e6%80%81%e5%88%86%e6%9e%90%e5%ae%9a%e4%bd%8d-android-app-%e7%9a%84%e5%85%b3%e9%94%ae%e9%80%bb%e8%be%91" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>常用命令速查表</title><link>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/common_commands/</link><pubDate>Sat, 05 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/common_commands/</guid><description>&lt;h1 class="heading-element" id="常用命令速查表">&lt;span>常用命令速查表&lt;/span>
 &lt;a href="#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4%e9%80%9f%e6%9f%a5%e8%a1%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="chrome-devtools-console-命令">&lt;span>Chrome DevTools Console 命令&lt;/span>
 &lt;a href="#chrome-devtools-console-%e5%91%bd%e4%bb%a4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="选择元素">&lt;span>选择元素&lt;/span>
 &lt;a href="#%e9%80%89%e6%8b%a9%e5%85%83%e7%b4%a0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>命令&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>$()&lt;/code>&lt;/td>
 &lt;td>等同于 &lt;code>document.querySelector()&lt;/code>&lt;/td>
 &lt;td>&lt;code>$('#username')&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>$$()&lt;/code>&lt;/td>
 &lt;td>等同于 &lt;code>document.querySelectorAll()&lt;/code>&lt;/td>
 &lt;td>&lt;code>$$('.item')&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>$x()&lt;/code>&lt;/td>
 &lt;td>XPath 选择器&lt;/td>
 &lt;td>&lt;code>$x('//div[@class=&amp;quot;container&amp;quot;]')&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>$0&lt;/code>&lt;/td>
 &lt;td>当前选中的元素&lt;/td>
 &lt;td>&lt;code>$0.innerHTML&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>$1&lt;/code>&lt;/td>
 &lt;td>上一个选中的元素&lt;/td>
 &lt;td>&lt;code>$1.classList&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h3 class="heading-element" id="实用函数">&lt;span>实用函数&lt;/span>
 &lt;a href="#%e5%ae%9e%e7%94%a8%e5%87%bd%e6%95%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>命令&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>copy()&lt;/code>&lt;/td>
 &lt;td>复制到剪贴板&lt;/td>
 &lt;td>&lt;code>copy($0)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>clear()&lt;/code>&lt;/td>
 &lt;td>清空 Console&lt;/td>
 &lt;td>&lt;code>clear()&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>keys()&lt;/code>&lt;/td>
 &lt;td>获取对象所有键&lt;/td>
 &lt;td>&lt;code>keys(window)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>values()&lt;/code>&lt;/td>
 &lt;td>获取对象所有值&lt;/td>
 &lt;td>&lt;code>values(localStorage)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>monitor()&lt;/code>&lt;/td>
 &lt;td>监控函数调用&lt;/td>
 &lt;td>&lt;code>monitor(fetch)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>unmonitor()&lt;/code>&lt;/td>
 &lt;td>取消监控&lt;/td>
 &lt;td>&lt;code>unmonitor(fetch)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>table()&lt;/code>&lt;/td>
 &lt;td>表格显示数据&lt;/td>
 &lt;td>&lt;code>table([{name:'a',age:20}])&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>debug()&lt;/code>&lt;/td>
 &lt;td>在函数第一行设断点&lt;/td>
 &lt;td>&lt;code>debug(myFunction)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>undebug()&lt;/code>&lt;/td>
 &lt;td>移除断点&lt;/td>
 &lt;td>&lt;code>undebug(myFunction)&lt;/code>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h3 class="heading-element" id="网络相关">&lt;span>网络相关&lt;/span>
 &lt;a href="#%e7%bd%91%e7%bb%9c%e7%9b%b8%e5%85%b3" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>// 查看所有 Cookie
document.cookie;

// 清空所有 Cookie
document.cookie.split(&amp;#34;;&amp;#34;).forEach((c) =&amp;gt; {
document.cookie = c
.replace(/^ &amp;#43;/, &amp;#34;&amp;#34;)
.replace(/=.*/, &amp;#34;=;expires=&amp;#34; &amp;#43; new Date().toUTCString() &amp;#43; &amp;#34;;path=/&amp;#34;);
});

// 查看 LocalStorage
Object.keys(localStorage);

// 清空 LocalStorage
localStorage.clear();

// 发送 GET 请求
fetch(&amp;#34;https://api.example.com/data&amp;#34;)
.then((r) =&amp;gt; r.json())
.then(console.log);

// 发送 POST 请求
fetch(&amp;#34;https://api.example.com/login&amp;#34;, {
method: &amp;#34;POST&amp;#34;,
headers: { &amp;#34;Content-Type&amp;#34;: &amp;#34;application/json&amp;#34; },
body: JSON.stringify({ username: &amp;#34;admin&amp;#34;, password: &amp;#34;123456&amp;#34; }),
})
.then((r) =&amp;gt; r.json())
.then(console.log);&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="python-常用库">&lt;span>Python 常用库&lt;/span>
 &lt;a href="#python-%e5%b8%b8%e7%94%a8%e5%ba%93" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="requests">&lt;span>Requests&lt;/span>
 &lt;a href="#requests" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>import requests

# GET 请求
response = requests.get(&amp;#39;https://example.com&amp;#39;)
print(response.text)

# POST 请求
response = requests.post(&amp;#39;https://example.com/api&amp;#39;, json={
&amp;#39;username&amp;#39;: &amp;#39;admin&amp;#39;,
&amp;#39;password&amp;#39;: &amp;#39;123456&amp;#39;
})
print(response.json())

# 设置 Headers
headers = {
&amp;#39;User-Agent&amp;#39;: &amp;#39;Mozilla/5.0 ...&amp;#39;,
&amp;#39;Authorization&amp;#39;: &amp;#39;Bearer token123&amp;#39;
}
response = requests.get(&amp;#39;https://example.com&amp;#39;, headers=headers)

# 使用代理
proxies = {
&amp;#39;http&amp;#39;: &amp;#39;http://127.0.0.1:8080&amp;#39;,
&amp;#39;https&amp;#39;: &amp;#39;http://127.0.0.1:8080&amp;#39;
}
response = requests.get(&amp;#39;https://example.com&amp;#39;, proxies=proxies)

# Session 保持
session = requests.Session()
session.get(&amp;#39;https://example.com/login&amp;#39;)
session.post(&amp;#39;https://example.com/api&amp;#39;, json={&amp;#39;key&amp;#39;: &amp;#39;value&amp;#39;})&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="beautifulsoup">&lt;span>BeautifulSoup&lt;/span>
 &lt;a href="#beautifulsoup" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>from bs4 import BeautifulSoup

# 解析 HTML
soup = BeautifulSoup(html, &amp;#39;html.parser&amp;#39;)

# 查找元素
soup.find(&amp;#39;div&amp;#39;, class_=&amp;#39;content&amp;#39;) # 查找第一个
soup.find_all(&amp;#39;a&amp;#39;) # 查找所有
soup.select(&amp;#39;.class #id tag&amp;#39;) # CSS 选择器

# 获取属性
element = soup.find(&amp;#39;a&amp;#39;)
element.get(&amp;#39;href&amp;#39;) # 获取 href
element.text # 获取文本
element.get_text(strip=True) # 获取文本（去空格）&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="regex-re">&lt;span>Regex (re)&lt;/span>
 &lt;a href="#regex-re" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>import re

# 查找
match = re.search(r&amp;#39;pattern&amp;#39;, text)
matches = re.findall(r&amp;#39;pattern&amp;#39;, text)

# 替换
result = re.sub(r&amp;#39;old&amp;#39;, &amp;#39;new&amp;#39;, text)

# 编译（提高性能）
pattern = re.compile(r&amp;#39;pattern&amp;#39;)
matches = pattern.findall(text)&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="curl-命令">&lt;span>cURL 命令&lt;/span>
 &lt;a href="#curl-%e5%91%bd%e4%bb%a4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="基本用法">&lt;span>基本用法&lt;/span>
 &lt;a href="#%e5%9f%ba%e6%9c%ac%e7%94%a8%e6%b3%95" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># GET 请求
curl https://example.com

# POST 请求
curl -X POST https://example.com/api \
-H &amp;#34;Content-Type: application/json&amp;#34; \
-d &amp;#39;{&amp;#34;username&amp;#34;:&amp;#34;admin&amp;#34;,&amp;#34;password&amp;#34;:&amp;#34;123456&amp;#34;}&amp;#39;

# 设置 User-Agent
curl -A &amp;#34;Mozilla/5.0 ...&amp;#34; https://example.com

# 保存 Cookie
curl -c cookies.txt https://example.com

# 使用 Cookie
curl -b cookies.txt https://example.com

# 跟随重定向
curl -L https://example.com

# 显示响应头
curl -i https://example.com

# 只显示响应头
curl -I https://example.com

# 使用代理
curl -x http://127.0.0.1:8080 https://example.com

# 忽略 SSL 证书
curl -k https://example.com

# 上传文件
curl -F &amp;#34;file=@/path/to/file&amp;#34; https://example.com/upload&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="调试用法">&lt;span>调试用法&lt;/span>
 &lt;a href="#%e8%b0%83%e8%af%95%e7%94%a8%e6%b3%95" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 显示详细信息
curl -v https://example.com

# 显示时间统计
curl -w &amp;#34;@curl-format.txt&amp;#34; -o /dev/null -s https://example.com

# curl-format.txt 内容:
# time_namelookup: %{time_namelookup}\n
# time_connect: %{time_connect}\n
# time_appconnect: %{time_appconnect}\n
# time_redirect: %{time_redirect}\n
# time_pretransfer: %{time_pretransfer}\n
# time_starttransfer: %{time_starttransfer}\n
# ----------\n
# time_total: %{time_total}\n&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="git-常用命令">&lt;span>Git 常用命令&lt;/span>
 &lt;a href="#git-%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="基础操作">&lt;span>基础操作&lt;/span>
 &lt;a href="#%e5%9f%ba%e7%a1%80%e6%93%8d%e4%bd%9c" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 查看状态
git status

# 添加文件
git add .
git add file.txt

# 提交
git commit -m &amp;#34;message&amp;#34;

# 推送
git push origin master

# 拉取
git pull origin master

# 查看历史
git log
git log --oneline --graph

# 回退
git reset --hard HEAD^ # 回退一个版本
git reset --hard commit_id # 回退到指定版本&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="分支操作">&lt;span>分支操作&lt;/span>
 &lt;a href="#%e5%88%86%e6%94%af%e6%93%8d%e4%bd%9c" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 创建分支
git branch feature-name

# 切换分支
git checkout feature-name

# 创建并切换
git checkout -b feature-name

# 合并分支
git merge feature-name

# 删除分支
git branch -d feature-name&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="查看差异">&lt;span>查看差异&lt;/span>
 &lt;a href="#%e6%9f%a5%e7%9c%8b%e5%b7%ae%e5%bc%82" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 查看修改
git diff

# 查看已暂存的修改
git diff --staged

# 查看两个提交的差异
git diff commit1 commit2&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="nodejs--npm">&lt;span>Node.js / npm&lt;/span>
 &lt;a href="#nodejs--npm" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="包管理">&lt;span>包管理&lt;/span>
 &lt;a href="#%e5%8c%85%e7%ae%a1%e7%90%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 安装包
npm install package-name
npm install -g package-name # 全局安装
npm install --save-dev package # 开发依赖

# 卸载包
npm uninstall package-name

# 更新包
npm update package-name

# 查看已安装的包
npm list
npm list -g

# 查看包信息
npm info package-name&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="常用脚本">&lt;span>常用脚本&lt;/span>
 &lt;a href="#%e5%b8%b8%e7%94%a8%e8%84%9a%e6%9c%ac" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 运行脚本
npm run script-name

# 常见的预定义脚本
npm start
npm test
npm run build&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="bash-文本处理">&lt;span>Bash 文本处理&lt;/span>
 &lt;a href="#bash-%e6%96%87%e6%9c%ac%e5%a4%84%e7%90%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="grep">&lt;span>grep&lt;/span>
 &lt;a href="#grep" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 搜索文本
grep &amp;#34;pattern&amp;#34; file.txt

# 忽略大小写
grep -i &amp;#34;pattern&amp;#34; file.txt

# 递归搜索
grep -r &amp;#34;pattern&amp;#34; directory/

# 显示行号
grep -n &amp;#34;pattern&amp;#34; file.txt

# 反向匹配（不包含）
grep -v &amp;#34;pattern&amp;#34; file.txt

# 正则表达式
grep -E &amp;#34;regex pattern&amp;#34; file.txt&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="sed">&lt;span>sed&lt;/span>
 &lt;a href="#sed" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 替换文本
sed &amp;#39;s/old/new/&amp;#39; file.txt # 替换每行第一个
sed &amp;#39;s/old/new/g&amp;#39; file.txt # 替换所有
sed -i &amp;#39;s/old/new/g&amp;#39; file.txt # 直接修改文件

# 删除行
sed &amp;#39;/pattern/d&amp;#39; file.txt # 删除匹配的行
sed &amp;#39;1d&amp;#39; file.txt # 删除第一行
sed &amp;#39;1,10d&amp;#39; file.txt # 删除1-10行&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="awk">&lt;span>awk&lt;/span>
 &lt;a href="#awk" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 打印列
awk &amp;#39;{print $1}&amp;#39; file.txt # 打印第一列
awk &amp;#39;{print $1,$3}&amp;#39; file.txt # 打印第1和第3列

# 条件过滤
awk &amp;#39;$3 &amp;gt; 100&amp;#39; file.txt # 第3列大于100的行

# 求和
awk &amp;#39;{sum&amp;#43;=$1} END {print sum}&amp;#39; file.txt&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="docker-常用命令">&lt;span>Docker 常用命令&lt;/span>
 &lt;a href="#docker-%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="镜像操作">&lt;span>镜像操作&lt;/span>
 &lt;a href="#%e9%95%9c%e5%83%8f%e6%93%8d%e4%bd%9c" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 拉取镜像
docker pull image-name

# 查看镜像
docker images

# 删除镜像
docker rmi image-name

# 构建镜像
docker build -t image-name .&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="容器操作">&lt;span>容器操作&lt;/span>
 &lt;a href="#%e5%ae%b9%e5%99%a8%e6%93%8d%e4%bd%9c" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 运行容器
docker run -d --name container-name image-name
docker run -it image-name /bin/bash # 交互式

# 查看容器
docker ps # 运行中的
docker ps -a # 所有的

# 停止容器
docker stop container-name

# 启动容器
docker start container-name

# 删除容器
docker rm container-name

# 查看日志
docker logs container-name

# 进入容器
docker exec -it container-name /bin/bash&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="快速参考">&lt;span>快速参考&lt;/span>
 &lt;a href="#%e5%bf%ab%e9%80%9f%e5%8f%82%e8%80%83" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="编码解码">&lt;span>编码/解码&lt;/span>
 &lt;a href="#%e7%bc%96%e7%a0%81%e8%a7%a3%e7%a0%81" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># Base64
import base64
encoded = base64.b64encode(b&amp;#39;text&amp;#39;)
decoded = base64.b64decode(encoded)

# URL编码
from urllib.parse import quote, unquote
encoded = quote(&amp;#39;text with spaces&amp;#39;)
decoded = unquote(encoded)

# JSON
import json
json_str = json.dumps({&amp;#39;key&amp;#39;: &amp;#39;value&amp;#39;})
obj = json.loads(json_str)&lt;/code>&lt;/pre>&lt;h3 class="heading-element" id="时间戳">&lt;span>时间戳&lt;/span>
 &lt;a href="#%e6%97%b6%e9%97%b4%e6%88%b3" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code>import time
import datetime

# 当前时间戳（秒）
timestamp = int(time.time())

# 当前时间戳（毫秒）
timestamp_ms = int(time.time() * 1000)

# 时间戳转日期
dt = datetime.datetime.fromtimestamp(timestamp)
print(dt.strftime(&amp;#39;%Y-%m-%d %H:%M:%S&amp;#39;))

# 日期转时间戳
dt = datetime.datetime(2024, 1, 1, 12, 0, 0)
timestamp = int(dt.timestamp())&lt;/code>&lt;/pre>&lt;pre>&lt;code>// JavaScript
const timestamp = Date.now(); // 毫秒
const timestampSec = Math.floor(Date.now() / 1000); // 秒

// 时间戳转日期
const date = new Date(timestamp);
console.log(date.toLocaleString());&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 class="heading-element" id="相关章节">&lt;span>相关章节&lt;/span>
 &lt;a href="#%e7%9b%b8%e5%85%b3%e7%ab%a0%e8%8a%82" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;ul>
&lt;li>&lt;a href="./crypto_signatures.md">加密算法特征&lt;/a> - 加密算法识别&lt;/li>
&lt;li>&lt;a href="./regex_patterns.md">正则表达式&lt;/a> - 常用正则模式&lt;/li>
&lt;li>&lt;a href="./http_headers.md">HTTP 头速查&lt;/a> - HTTP 请求头&lt;/li>
&lt;/ul></description></item><item><title>SO 运行时仿真技术</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/so_runtime_emulation/</link><pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/advanced/so_runtime_emulation/</guid><description>&lt;h1 class="heading-element" id="so-运行时仿真技术">&lt;span>SO 运行时仿真技术&lt;/span>
 &lt;a href="#so-%e8%bf%90%e8%a1%8c%e6%97%b6%e4%bb%bf%e7%9c%9f%e6%8a%80%e6%9c%af" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>在高级 Android 逆向工程中，我们经常需要自动化地调用 SO 文件中的加密、签名或校验函数。然而，在真实的设备上通过 Frida Hook 来做这件事，不仅效率低下，而且容易受到反调试和环境检测的阻碍。&lt;/p></description></item><item><title>JavaScript Hook 脚本</title><link>https://overkazaf.github.io/reverse_engineering/web/07-scripts/javascript_hook_scripts/</link><pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/07-scripts/javascript_hook_scripts/</guid><description>&lt;h1 class="heading-element" id="javascript-hook-脚本">&lt;span>JavaScript Hook 脚本&lt;/span>
 &lt;a href="#javascript-hook-%e8%84%9a%e6%9c%ac" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>Hook（钩子）是逆向工程中最核心的动态分析技术之一。通过运行时劫持(Runtime Interception)原生 API 或自定义函数，可以实现对目标代码的无侵入式监控、参数篡改和行为修改。Hook 技术基于 JavaScript 的动态特性和原型链机制，能够在不修改源代码的情况下改变程序执行流程。&lt;/p></description></item><item><title>社交媒体逆向案例</title><link>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_social_media/</link><pubDate>Sun, 23 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/05-case-studies/case_social_media/</guid><description>&lt;h1 class="heading-element" id="社交媒体逆向案例">&lt;span>社交媒体逆向案例&lt;/span>
 &lt;a href="#%e7%a4%be%e4%ba%a4%e5%aa%92%e4%bd%93%e9%80%86%e5%90%91%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>社交媒体平台通常包含复杂的 API 调用、无限滚动加载、实时通信、内容推荐算法等。本文通过真实案例介绍社交媒体平台的逆向分析技巧。&lt;/p></description></item><item><title>C 代码：用于运行时仿真与设备指纹生成</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/scripts/c_for_emulation/</link><pubDate>Sat, 22 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/scripts/c_for_emulation/</guid><description>&lt;h1 class="heading-element" id="c-代码用于运行时仿真与设备指纹生成">&lt;span>C 代码：用于运行时仿真与设备指纹生成&lt;/span>
 &lt;a href="#c-%e4%bb%a3%e7%a0%81%e7%94%a8%e4%ba%8e%e8%bf%90%e8%a1%8c%e6%97%b6%e4%bb%bf%e7%9c%9f%e4%b8%8e%e8%ae%be%e5%a4%87%e6%8c%87%e7%ba%b9%e7%94%9f%e6%88%90" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>脱壳分析加固的 Android 应用</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/unpacking/un-packing/</link><pubDate>Sat, 22 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/unpacking/un-packing/</guid><description>&lt;h1 class="heading-element" id="脱壳分析加固的-android-应用">&lt;span>脱壳分析加固的 Android 应用&lt;/span>
 &lt;a href="#%e8%84%b1%e5%a3%b3%e5%88%86%e6%9e%90%e5%8a%a0%e5%9b%ba%e7%9a%84-android-%e5%ba%94%e7%94%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>正则表达式速查表</title><link>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/regex_patterns/</link><pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/08-cheat-sheets/regex_patterns/</guid><description>&lt;h1 class="heading-element" id="正则表达式速查表">&lt;span>正则表达式速查表&lt;/span>
 &lt;a href="#%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f%e9%80%9f%e6%9f%a5%e8%a1%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="常用元字符">&lt;span>常用元字符&lt;/span>
 &lt;a href="#%e5%b8%b8%e7%94%a8%e5%85%83%e5%ad%97%e7%ac%a6" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>元字符&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;th>示例&lt;/th>
 &lt;th>&lt;/th>
 &lt;th>&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>.&lt;/code>&lt;/td>
 &lt;td>任意单个字符（除换行）&lt;/td>
 &lt;td>&lt;code>a.c&lt;/code> 匹配 &lt;code>abc&lt;/code>, &lt;code>a1c&lt;/code>&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>*&lt;/code>&lt;/td>
 &lt;td>0 次或多次&lt;/td>
 &lt;td>&lt;code>ab*&lt;/code> 匹配 &lt;code>a&lt;/code>, &lt;code>ab&lt;/code>, &lt;code>abb&lt;/code>&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>+&lt;/code>&lt;/td>
 &lt;td>1 次或多次&lt;/td>
 &lt;td>&lt;code>ab+&lt;/code> 匹配 &lt;code>ab&lt;/code>, &lt;code>abb&lt;/code> (不匹配&lt;code>a&lt;/code>)&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>?&lt;/code>&lt;/td>
 &lt;td>0 次或 1 次&lt;/td>
 &lt;td>&lt;code>ab?&lt;/code> 匹配 &lt;code>a&lt;/code>, &lt;code>ab&lt;/code>&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>^&lt;/code>&lt;/td>
 &lt;td>行首&lt;/td>
 &lt;td>&lt;code>^hello&lt;/code> 匹配行首的 hello&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>$&lt;/code>&lt;/td>
 &lt;td>行尾&lt;/td>
 &lt;td>&lt;code>world$&lt;/code> 匹配行尾的 world&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>\&lt;/code>&lt;/td>
 &lt;td>转义字符&lt;/td>
 &lt;td>&lt;code>\.&lt;/code> 匹配点号&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>`&lt;/td>
 &lt;td>`&lt;/td>
 &lt;td>或&lt;/td>
 &lt;td>`cat&lt;/td>
 &lt;td>dog` 匹配 cat 或 dog&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>[]&lt;/code>&lt;/td>
 &lt;td>字符集&lt;/td>
 &lt;td>&lt;code>[abc]&lt;/code> 匹配 a 或 b 或 c&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>[^]&lt;/code>&lt;/td>
 &lt;td>否定字符集&lt;/td>
 &lt;td>&lt;code>[^abc]&lt;/code> 不匹配 a,b,c&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>()&lt;/code>&lt;/td>
 &lt;td>分组&lt;/td>
 &lt;td>&lt;code>(ab)+&lt;/code> 匹配 ab, abab&lt;/td>
 &lt;td>&lt;/td>
 &lt;td>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h2 class="heading-element" id="预定义字符类">&lt;span>预定义字符类&lt;/span>
 &lt;a href="#%e9%a2%84%e5%ae%9a%e4%b9%89%e5%ad%97%e7%ac%a6%e7%b1%bb" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>字符类&lt;/th>
 &lt;th>等价于&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>\d&lt;/code>&lt;/td>
 &lt;td>&lt;code>[0-9]&lt;/code>&lt;/td>
 &lt;td>数字&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>\D&lt;/code>&lt;/td>
 &lt;td>&lt;code>[^0-9]&lt;/code>&lt;/td>
 &lt;td>非数字&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>\w&lt;/code>&lt;/td>
 &lt;td>&lt;code>[a-zA-Z0-9_]&lt;/code>&lt;/td>
 &lt;td>单词字符&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>\W&lt;/code>&lt;/td>
 &lt;td>&lt;code>[^a-zA-Z0-9_]&lt;/code>&lt;/td>
 &lt;td>非单词字符&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>\s&lt;/code>&lt;/td>
 &lt;td>&lt;code>[ \t\n\r\f\v]&lt;/code>&lt;/td>
 &lt;td>空白字符&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>\S&lt;/code>&lt;/td>
 &lt;td>&lt;code>[^ \t\n\r\f\v]&lt;/code>&lt;/td>
 &lt;td>非空白字符&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;h2 class="heading-element" id="web-逆向常用模式">&lt;span>Web 逆向常用模式&lt;/span>
 &lt;a href="#web-%e9%80%86%e5%90%91%e5%b8%b8%e7%94%a8%e6%a8%a1%e5%bc%8f" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="url-匹配">&lt;span>URL 匹配&lt;/span>
 &lt;a href="#url-%e5%8c%b9%e9%85%8d" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;pre>&lt;code># 完整 URL
https?://[\w\-\.]&amp;#43;(/[\w\-\./?%&amp;amp;=]*)?

# 提取域名
https?://([^/]&amp;#43;)

# 提取路径
https?://[^/]&amp;#43;(/[^?]&amp;#43;)

# 提取查询参数
[?&amp;amp;]([^=]&amp;#43;)=([^&amp;amp;]&amp;#43;)

# 提取所有 URL (宽松)
https?://[^\s]&amp;#43;&lt;/code>&lt;/pre>&lt;p>&lt;strong>Python 示例&lt;/strong>:&lt;/p></description></item><item><title>群控技术 vs API 逆向：技术路线选择指南</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/automation_vs_api_reverse/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/automation_vs_api_reverse/</guid><description>&lt;h1 class="heading-element" id="群控技术-vs-api-逆向技术路线选择指南">&lt;span>群控技术 vs API 逆向：技术路线选择指南&lt;/span>
 &lt;a href="#%e7%be%a4%e6%8e%a7%e6%8a%80%e6%9c%af-vs-api-%e9%80%86%e5%90%91%e6%8a%80%e6%9c%af%e8%b7%af%e7%ba%bf%e9%80%89%e6%8b%a9%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>在移动端数据采集和自动化领域，&lt;strong>群控技术&lt;/strong>和 &lt;strong>API 逆向&lt;/strong>是两条主流的技术路线。本文将从多个维度对比分析两者的优劣，帮助你根据实际场景选择合适的方案。&lt;/p></description></item><item><title>逆向技术：动态住宅 IP 代理池</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/automation/dial_up_proxy_pools/</link><pubDate>Thu, 27 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/automation/dial_up_proxy_pools/</guid><description>&lt;h1 class="heading-element" id="逆向技术动态住宅-ip-代理池">&lt;span>逆向技术：动态住宅 IP 代理池&lt;/span>
 &lt;a href="#%e9%80%86%e5%90%91%e6%8a%80%e6%9c%af%e5%8a%a8%e6%80%81%e4%bd%8f%e5%ae%85-ip-%e4%bb%a3%e7%90%86%e6%b1%a0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>使用动态分析验证和探索 Android App 的运行时行为</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/dynamic_analysis_deep_dive/</link><pubDate>Wed, 26 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/dynamic_analysis_deep_dive/</guid><description>&lt;h1 class="heading-element" id="使用动态分析验证和探索-android-app-的运行时行为">&lt;span>使用动态分析验证和探索 Android App 的运行时行为&lt;/span>
 &lt;a href="#%e4%bd%bf%e7%94%a8%e5%8a%a8%e6%80%81%e5%88%86%e6%9e%90%e9%aa%8c%e8%af%81%e5%92%8c%e6%8e%a2%e7%b4%a2-android-app-%e7%9a%84%e8%bf%90%e8%a1%8c%e6%97%b6%e8%a1%8c%e4%b8%ba" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>绕过应用的 Xposed 检测</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/anti-detection/xposed_anti_debugging/</link><pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/anti-detection/xposed_anti_debugging/</guid><description>&lt;h1 class="heading-element" id="绕过应用的-xposed-检测">&lt;span>绕过应用的 Xposed 检测&lt;/span>
 &lt;a href="#%e7%bb%95%e8%bf%87%e5%ba%94%e7%94%a8%e7%9a%84-xposed-%e6%a3%80%e6%b5%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>JavaScript 反混淆 (Deobfuscation)</title><link>https://overkazaf.github.io/reverse_engineering/web/04-advanced-recipes/javascript_deobfuscation/</link><pubDate>Fri, 21 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/04-advanced-recipes/javascript_deobfuscation/</guid><description>&lt;h1 class="heading-element" id="javascript-反混淆-deobfuscation">&lt;span>JavaScript 反混淆 (Deobfuscation)&lt;/span>
 &lt;a href="#javascript-%e5%8f%8d%e6%b7%b7%e6%b7%86-deobfuscation" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>使用 AST 工具和手动技巧，还原混淆代码的可读性，快速定位核心加密逻辑。&lt;/p></description></item><item><title>JA4+ TLS/QUIC 指纹识别技术详解</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/network/ja4_fingerprinting/</link><pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/network/ja4_fingerprinting/</guid><description>&lt;h1 class="heading-element" id="ja4-tlsquic-指纹识别技术详解">&lt;span>JA4+ TLS/QUIC 指纹识别技术详解&lt;/span>
 &lt;a href="#ja4-tlsquic-%e6%8c%87%e7%ba%b9%e8%af%86%e5%88%ab%e6%8a%80%e6%9c%af%e8%af%a6%e8%a7%a3" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>JNI 开发与调用原理</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/native/jni_development/</link><pubDate>Sun, 16 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/native/jni_development/</guid><description>&lt;h1 class="heading-element" id="jni-开发与调用原理">&lt;span>JNI 开发与调用原理&lt;/span>
 &lt;a href="#jni-%e5%bc%80%e5%8f%91%e4%b8%8e%e8%b0%83%e7%94%a8%e5%8e%9f%e7%90%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>社交媒体 App 与风控案例</title><link>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_social_media_and_anti_bot/</link><pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/03-case-studies/case_social_media_and_anti_bot/</guid><description>&lt;h1 class="heading-element" id="社交媒体-app-与风控案例">&lt;span>社交媒体 App 与风控案例&lt;/span>
 &lt;a href="#%e7%a4%be%e4%ba%a4%e5%aa%92%e4%bd%93-app-%e4%b8%8e%e9%a3%8e%e6%8e%a7%e6%a1%88%e4%be%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>逆向分析项目模板</title><link>https://overkazaf.github.io/reverse_engineering/web/09-templates/reverse_project/</link><pubDate>Fri, 31 Jan 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/09-templates/reverse_project/</guid><description>&lt;h1 class="heading-element" id="逆向分析项目模板">&lt;span>逆向分析项目模板&lt;/span>
 &lt;a href="#%e9%80%86%e5%90%91%e5%88%86%e6%9e%90%e9%a1%b9%e7%9b%ae%e6%a8%a1%e6%9d%bf" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Web 逆向分析的标准项目模板，帮助你系统化地进行网站分析和文档记录。&lt;/p></description></item><item><title>VMP 分析</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/vmp_analysis/</link><pubDate>Thu, 30 Jan 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/vmp_analysis/</guid><description>&lt;h1 class="heading-element" id="vmp-分析">&lt;span>VMP 分析&lt;/span>
 &lt;a href="#vmp-%e5%88%86%e6%9e%90" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>SO 文件字符串混淆对抗指南</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/unpacking/so_string_deobfuscation/</link><pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/unpacking/so_string_deobfuscation/</guid><description>&lt;h1 class="heading-element" id="so-文件字符串混淆对抗指南">&lt;span>SO 文件字符串混淆对抗指南&lt;/span>
 &lt;a href="#so-%e6%96%87%e4%bb%b6%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%b7%b7%e6%b7%86%e5%af%b9%e6%8a%97%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>调试技巧与断点设置</title><link>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/debugging_techniques/</link><pubDate>Tue, 31 Dec 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/debugging_techniques/</guid><description>&lt;h1 class="heading-element" id="调试技巧与断点设置">&lt;span>调试技巧与断点设置&lt;/span>
 &lt;a href="#%e8%b0%83%e8%af%95%e6%8a%80%e5%b7%a7%e4%b8%8e%e6%96%ad%e7%82%b9%e8%ae%be%e7%bd%ae" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>调试是逆向工程的核心技能。掌握高级调试技巧可以大幅提升逆向效率，快速定位关键代码，理解程序逻辑。&lt;/p></description></item><item><title>工程化：虚拟化与容器技术</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/automation/virtualization_and_containers/</link><pubDate>Sat, 28 Dec 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/automation/virtualization_and_containers/</guid><description>&lt;h1 class="heading-element" id="工程化虚拟化与容器技术">&lt;span>工程化：虚拟化与容器技术&lt;/span>
 &lt;a href="#%e5%b7%a5%e7%a8%8b%e5%8c%96%e8%99%9a%e6%8b%9f%e5%8c%96%e4%b8%8e%e5%ae%b9%e5%99%a8%e6%8a%80%e6%9c%af" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>前置知识&lt;/strong>&lt;/p></description></item><item><title>抓包分析 Android 应用的网络流量</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/network/network_sniffing/</link><pubDate>Sat, 07 Dec 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/network/network_sniffing/</guid><description>&lt;h1 class="heading-element" id="抓包分析-android-应用的网络流量">&lt;span>抓包分析 Android 应用的网络流量&lt;/span>
 &lt;a href="#%e6%8a%93%e5%8c%85%e5%88%86%e6%9e%90-android-%e5%ba%94%e7%94%a8%e7%9a%84%e7%bd%91%e7%bb%9c%e6%b5%81%e9%87%8f" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>学习资源 (Learning Resources)</title><link>https://overkazaf.github.io/reverse_engineering/android/05-appendix/learning_resources/</link><pubDate>Thu, 05 Dec 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/05-appendix/learning_resources/</guid><description>&lt;h1 class="heading-element" id="学习资源-learning-resources">&lt;span>学习资源 (Learning Resources)&lt;/span>
 &lt;a href="#%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%ba%90-learning-resources" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="本页面收集了-android-逆向工程领域的高质量学习资源包括书籍博客论坛社区和课程">&lt;span>本页面收集了 Android 逆向工程领域的高质量学习资源，包括书籍、博客、论坛、社区和课程。&lt;/span>
 &lt;a href="#%e6%9c%ac%e9%a1%b5%e9%9d%a2%e6%94%b6%e9%9b%86%e4%ba%86-android-%e9%80%86%e5%90%91%e5%b7%a5%e7%a8%8b%e9%a2%86%e5%9f%9f%e7%9a%84%e9%ab%98%e8%b4%a8%e9%87%8f%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%ba%90%e5%8c%85%e6%8b%ac%e4%b9%a6%e7%b1%8d%e5%8d%9a%e5%ae%a2%e8%ae%ba%e5%9d%9b%e7%a4%be%e5%8c%ba%e5%92%8c%e8%af%be%e7%a8%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h2 class="heading-element" id="书籍-books">&lt;span>书籍 (Books)&lt;/span>
 &lt;a href="#%e4%b9%a6%e7%b1%8d-books" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="入门与基础">&lt;span>入门与基础&lt;/span>
 &lt;a href="#%e5%85%a5%e9%97%a8%e4%b8%8e%e5%9f%ba%e7%a1%80" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>《Android 软件安全与逆向分析》&lt;/strong> (丰生强 / 非虫)
经典的入门书籍，涵盖了 Android 系统架构、Smali 语法、静态分析、动态调试等基础知识。&lt;/li>
&lt;li>&lt;strong>《Android 安全攻防实战》&lt;/strong> (EaaLaboratory)
偏向实战，包含很多案例分析。&lt;/li>
&lt;/ul>
&lt;h3 class="heading-element" id="进阶与深入">&lt;span>进阶与深入&lt;/span>
 &lt;a href="#%e8%bf%9b%e9%98%b6%e4%b8%8e%e6%b7%b1%e5%85%a5" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>《Android Internals: A Confectioner&amp;rsquo;s Cookbook》&lt;/strong> (Jonathan Levin)
&lt;a href="http://newandroidbook.com/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
深入剖析 Android 系统内部原理，是理解 Android 底层机制的必读之作。&lt;/li>
&lt;li>&lt;strong>《Android Hacker&amp;rsquo;s Handbook》&lt;/strong> (Joshua J. Drake et al.)
全面介绍 Android 安全架构、漏洞挖掘和利用技术。&lt;/li>
&lt;li>&lt;strong>《MASTG - Mobile App Security Testing Guide》&lt;/strong> (OWASP)
&lt;a href="https://mas.owasp.org/MASTG/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
OWASP 发布的移动应用安全测试指南，涵盖了 iOS 和 Android 平台的安全测试方法论和技术细节，是行业标准参考文档。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 class="heading-element" id="博客与网站-blogs--websites">&lt;span>博客与网站 (Blogs &amp;amp; Websites)&lt;/span>
 &lt;a href="#%e5%8d%9a%e5%ae%a2%e4%b8%8e%e7%bd%91%e7%ab%99-blogs--websites" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;h3 class="heading-element" id="个人博客">&lt;span>个人博客&lt;/span>
 &lt;a href="#%e4%b8%aa%e4%ba%ba%e5%8d%9a%e5%ae%a2" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>Maddie Stone&lt;/strong> (&lt;a href="https://googleprojectzero.blogspot.com/" target="_blank" rel="external nofollow noopener noreferrer">Project Zero&lt;/a>)
专注于 Android 恶意软件分析和漏洞挖掘，文章质量极高。&lt;/li>
&lt;li>&lt;strong>R0ysue (肉丝)&lt;/strong>
国内知名的 Android 逆向专家，Frida 领域的领军人物。&lt;/li>
&lt;li>&lt;strong>Wei (LSPosed Developer)&lt;/strong>
深入研究 Android Runtime (ART) 和 Hook 技术。&lt;/li>
&lt;li>&lt;strong>Orange Tsai&lt;/strong>
Web 和移动安全领域的知名研究员，常有精彩的利用思路。&lt;/li>
&lt;/ul>
&lt;h3 class="heading-element" id="技术团队与厂商">&lt;span>技术团队与厂商&lt;/span>
 &lt;a href="#%e6%8a%80%e6%9c%af%e5%9b%a2%e9%98%9f%e4%b8%8e%e5%8e%82%e5%95%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h3>&lt;ul>
&lt;li>&lt;strong>Google Project Zero&lt;/strong>
&lt;a href="https://googleprojectzero.blogspot.com/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
Google 的安全研究团队，发布了大量关于 Android 内核、驱动和框架层的高质量漏洞分析报告。&lt;/li>
&lt;li>&lt;strong>Quarkslab Blog&lt;/strong>
&lt;a href="https://blog.quarkslab.com/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
发布了许多关于混淆、反混淆和底层逆向工具（如 Triton）的研究文章。&lt;/li>
&lt;li>&lt;strong>Check Point Research&lt;/strong>
经常披露 Android 恶意软件和高危漏洞。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 class="heading-element" id="论坛与社区-forums--communities">&lt;span>论坛与社区 (Forums &amp;amp; Communities)&lt;/span>
 &lt;a href="#%e8%ae%ba%e5%9d%9b%e4%b8%8e%e7%a4%be%e5%8c%ba-forums--communities" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>52pojie (吾爱破解)&lt;/strong>
&lt;a href="https://www.52pojie.cn/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
国内最大的破解和逆向技术交流论坛，拥有丰富的教程、工具和活跃的社区氛围。&lt;/li>
&lt;li>&lt;strong>Kanxue (看雪论坛)&lt;/strong>
&lt;a href="https://bbs.kanxue.com/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
国内老牌的安全技术社区，专注于二进制安全、漏洞挖掘和内核安全，技术深度较高。&lt;/li>
&lt;li>&lt;strong>XDA Developers&lt;/strong>
&lt;a href="https://forum.xda-developers.com/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
全球最大的 Android 开发者社区，关于 ROM 定制、Root、Xposed/Magisk 模块的资源非常丰富。&lt;/li>
&lt;li>&lt;strong>Reddit r/ReverseEngineering&lt;/strong>
&lt;a href="https://www.reddit.com/r/ReverseEngineering/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
国际逆向工程技术讨论区，汇集了全球的逆向爱好者和专家。&lt;/li>
&lt;li>&lt;strong>Reddit r/androiddev&lt;/strong>
&lt;a href="https://www.reddit.com/r/androiddev/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
虽然侧重开发，但了解开发者的思维对于逆向工程也非常有帮助。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 class="heading-element" id="课程与教程-courses--tutorials">&lt;span>课程与教程 (Courses &amp;amp; Tutorials)&lt;/span>
 &lt;a href="#%e8%af%be%e7%a8%8b%e4%b8%8e%e6%95%99%e7%a8%8b-courses--tutorials" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Frida 官方文档与教程&lt;/strong>
&lt;a href="https://frida.re/docs/home/" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a>
学习 Frida 最权威的资料。&lt;/li>
&lt;li>&lt;strong>Android App Reverse Engineering 101&lt;/strong> (Maddie Stone)
&lt;a href="https://www.r00t0k.com/course/android-app-reverse-engineering-101" target="_blank" rel="external nofollow noopener noreferrer">链接&lt;/a> (需查找有效链接或存档)
Workshops 形式的入门教程，非常适合初学者。&lt;/li>
&lt;li>&lt;strong>OWASP Mobile Security Testing Guide (MSTG) Hacking Playground&lt;/strong>
配合 MSTG 书籍的练习环境。&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 class="heading-element" id="学术论文-academic-papers">&lt;span>学术论文 (Academic Papers)&lt;/span>
 &lt;a href="#%e5%ad%a6%e6%9c%af%e8%ae%ba%e6%96%87-academic-papers" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>以下是与 Android 逆向工程相关的重要学术论文，涵盖移动安全、恶意软件分析、代码保护等领域。&lt;/p></description></item><item><title>Web 逆向工程工作流</title><link>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/re_workflow/</link><pubDate>Wed, 20 Nov 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/re_workflow/</guid><description>&lt;h1 class="heading-element" id="web-逆向工程工作流">&lt;span>Web 逆向工程工作流&lt;/span>
 &lt;a href="#web-%e9%80%86%e5%90%91%e5%b7%a5%e7%a8%8b%e5%b7%a5%e4%bd%9c%e6%b5%81" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>一个系统化的 Web 逆向分析完整流程，从初步侦查到自动化实现。&lt;/p></description></item><item><title>加密算法识别与检测脚本</title><link>https://overkazaf.github.io/reverse_engineering/web/07-scripts/crypto_detection_scripts/</link><pubDate>Tue, 19 Nov 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/07-scripts/crypto_detection_scripts/</guid><description>&lt;h1 class="heading-element" id="加密算法识别与检测脚本">&lt;span>加密算法识别与检测脚本&lt;/span>
 &lt;a href="#%e5%8a%a0%e5%af%86%e7%ae%97%e6%b3%95%e8%af%86%e5%88%ab%e4%b8%8e%e6%a3%80%e6%b5%8b%e8%84%9a%e6%9c%ac" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>在 Web 逆向工程中，识别目标网站使用的加密算法是分析的第一步。通过自动化检测脚本，可以快速定位加密函数调用点、识别算法类型，并提取关键参数。本章介绍加密算法的特征识别、自动检测方法以及实战 Hook 脚本。&lt;/p></description></item><item><title>使用 Frida 脱壳加固 App 并修复 SO 文件</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/unpacking/frida_unpacking_and_so_fixing/</link><pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/unpacking/frida_unpacking_and_so_fixing/</guid><description>&lt;h1 class="heading-element" id="使用-frida-脱壳加固-app-并修复-so-文件">&lt;span>使用 Frida 脱壳加固 App 并修复 SO 文件&lt;/span>
 &lt;a href="#%e4%bd%bf%e7%94%a8-frida-%e8%84%b1%e5%a3%b3%e5%8a%a0%e5%9b%ba-app-%e5%b9%b6%e4%bf%ae%e5%a4%8d-so-%e6%96%87%e4%bb%b6" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>OLLVM 反混淆</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/ollvm_deobfuscation/</link><pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/analysis/ollvm_deobfuscation/</guid><description>&lt;h1 class="heading-element" id="ollvm-反混淆">&lt;span>OLLVM 反混淆&lt;/span>
 &lt;a href="#ollvm-%e5%8f%8d%e6%b7%b7%e6%b7%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>使用 TLS 指纹识别检测和绕过应用指纹</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/network/tls_fingerprinting_guide/</link><pubDate>Mon, 04 Nov 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/network/tls_fingerprinting_guide/</guid><description>&lt;h1 class="heading-element" id="使用-tls-指纹识别检测和绕过应用指纹">&lt;span>使用 TLS 指纹识别检测和绕过应用指纹&lt;/span>
 &lt;a href="#%e4%bd%bf%e7%94%a8-tls-%e6%8c%87%e7%ba%b9%e8%af%86%e5%88%ab%e6%a3%80%e6%b5%8b%e5%92%8c%e7%bb%95%e8%bf%87%e5%ba%94%e7%94%a8%e6%8c%87%e7%ba%b9" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>动态参数分析</title><link>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/dynamic_parameter_analysis/</link><pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/dynamic_parameter_analysis/</guid><description>&lt;h1 class="heading-element" id="动态参数分析">&lt;span>动态参数分析&lt;/span>
 &lt;a href="#%e5%8a%a8%e6%80%81%e5%8f%82%e6%95%b0%e5%88%86%e6%9e%90" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>当静态代码混淆得像一团乱麻时，动态分析是我们唯一的出路。通过观察参数在运行时的变化，我们可以推导出生成逻辑。&lt;/p></description></item><item><title>SO 动态库编译与加载</title><link>https://overkazaf.github.io/reverse_engineering/android/01-recipes/native/so_compilation/</link><pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/01-recipes/native/so_compilation/</guid><description>&lt;h1 class="heading-element" id="so-动态库编译与加载">&lt;span>SO 动态库编译与加载&lt;/span>
 &lt;a href="#so-%e5%8a%a8%e6%80%81%e5%ba%93%e7%bc%96%e8%af%91%e4%b8%8e%e5%8a%a0%e8%bd%bd" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;blockquote>
&lt;p>&lt;strong>📚 前置知识&lt;/strong>&lt;/p></description></item><item><title>AST (抽象语法树) 工具</title><link>https://overkazaf.github.io/reverse_engineering/web/02-tooling/ast_tools/</link><pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/02-tooling/ast_tools/</guid><description>&lt;h1 class="heading-element" id="ast-抽象语法树-工具">&lt;span>AST (抽象语法树) 工具&lt;/span>
 &lt;a href="#ast-%e6%8a%bd%e8%b1%a1%e8%af%ad%e6%b3%95%e6%a0%91-%e5%b7%a5%e5%85%b7" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>在对抗混淆（Obfuscation）时，字符串替换和正则匹配往往力不从心。AST 为我们提供了操作代码结构的上帝视角。通过解析 AST，我们可以安全地删除死代码、还原控制流平坦化、计算常量表达式。&lt;/p></description></item><item><title>IDA Pro 入门</title><link>https://overkazaf.github.io/reverse_engineering/android/02-tools/static/ida_pro_guide/</link><pubDate>Fri, 06 Sep 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/02-tools/static/ida_pro_guide/</guid><description>&lt;h1 class="heading-element" id="ida-pro-入门">&lt;span>IDA Pro 入门&lt;/span>
 &lt;a href="#ida-pro-%e5%85%a5%e9%97%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>IDA Pro (Interactive Disassembler Professional) 是由 Hex-Rays 公司开发的一款业界闻名的交互式反汇编器。在逆向工程领域，IDA Pro 被广泛认为是&lt;strong>黄金标准&lt;/strong>，以其最强大的反汇编引擎、无与伦比的处理器支持和极其成熟的生态系统，成为专业人士进行软件分析、漏洞挖掘和恶意软件研究的首选工具。&lt;/p></description></item><item><title>Xposed 内部原理深度剖析</title><link>https://overkazaf.github.io/reverse_engineering/android/02-tools/dynamic/xposed_internals/</link><pubDate>Tue, 27 Aug 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/02-tools/dynamic/xposed_internals/</guid><description>&lt;h1 class="heading-element" id="xposed-内部原理深度剖析">&lt;span>Xposed 内部原理深度剖析&lt;/span>
 &lt;a href="#xposed-%e5%86%85%e9%83%a8%e5%8e%9f%e7%90%86%e6%b7%b1%e5%ba%a6%e5%89%96%e6%9e%90" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Xposed 是一个强大的 Android 框架，允许用户在运行时修改系统和应用程序进程的行为，而无需修改任何 APK 文件。本文档深入探讨了 Xposed 工作的核心原理。&lt;/p></description></item><item><title>API 逆向与重放攻击</title><link>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/api_reverse_engineering/</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/03-basic-recipes/api_reverse_engineering/</guid><description>&lt;h1 class="heading-element" id="api-逆向与重放攻击">&lt;span>API 逆向与重放攻击&lt;/span>
 &lt;a href="#api-%e9%80%86%e5%90%91%e4%b8%8e%e9%87%8d%e6%94%be%e6%94%bb%e5%87%bb" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>掌握 API 签名逆向，实现脱离浏览器的自动化请求。&lt;/p></description></item><item><title>SELinux 安全机制</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/selinux/</link><pubDate>Mon, 22 Jul 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/selinux/</guid><description>&lt;h1 class="heading-element" id="selinux-安全机制">&lt;span>SELinux 安全机制&lt;/span>
 &lt;a href="#selinux-%e5%ae%89%e5%85%a8%e6%9c%ba%e5%88%b6" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>SELinux (Security-Enhanced Linux) 是 Android 安全模型的核心组件，从 Android 4.3 开始引入，Android 5.0 后全面强制执行。理解 SELinux 对于逆向工程、Root 检测绕过、应用沙箱分析至关重要。&lt;/p></description></item><item><title>Smali 语法入门</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/smali_syntax/</link><pubDate>Fri, 12 Jul 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/smali_syntax/</guid><description>&lt;h1 class="heading-element" id="smali-语法入门">&lt;span>Smali 语法入门&lt;/span>
 &lt;a href="#smali-%e8%af%ad%e6%b3%95%e5%85%a5%e9%97%a8" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Smali/Baksmali 是 Dalvik 虚拟机字节码的汇编器/反汇编器。Smali 是对 DEX 格式的一种人类可读的表示，允许我们精确地查看和修改应用的行为。理解 Smali 是进行 Android 应用静态 patching（修改后重打包）的关键。&lt;/p></description></item><item><title>浏览器开发者工具 (DevTools)</title><link>https://overkazaf.github.io/reverse_engineering/web/02-tooling/browser_devtools/</link><pubDate>Thu, 27 Jun 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/02-tooling/browser_devtools/</guid><description>&lt;h1 class="heading-element" id="浏览器开发者工具-devtools">&lt;span>浏览器开发者工具 (DevTools)&lt;/span>
 &lt;a href="#%e6%b5%8f%e8%a7%88%e5%99%a8%e5%bc%80%e5%8f%91%e8%80%85%e5%b7%a5%e5%85%b7-devtools" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="思考时刻">&lt;span>思考时刻&lt;/span>
 &lt;a href="#%e6%80%9d%e8%80%83%e6%97%b6%e5%88%bb" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>在深入学习 DevTools 之前，先思考：&lt;/p></description></item><item><title>Fiddler Classic 指南</title><link>https://overkazaf.github.io/reverse_engineering/web/02-tooling/fiddler_guide/</link><pubDate>Tue, 18 Jun 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/02-tooling/fiddler_guide/</guid><description>&lt;h1 class="heading-element" id="fiddler-classic-指南">&lt;span>Fiddler Classic 指南&lt;/span>
 &lt;a href="#fiddler-classic-%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>Fiddler (Classic) 是一款历史悠久、功能强大的抓包工具。虽然界面稍显复古，但其核心优势在于&lt;strong>FiddlerScript&lt;/strong>——允许你用 C# 代码极其灵活地控制 HTTP 请求的每一个细节。&lt;/p></description></item><item><title>Puppeteer &amp; Playwright</title><link>https://overkazaf.github.io/reverse_engineering/web/02-tooling/puppeteer_playwright/</link><pubDate>Mon, 17 Jun 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/02-tooling/puppeteer_playwright/</guid><description>&lt;h1 class="heading-element" id="puppeteer--playwright">&lt;span>Puppeteer &amp;amp; Playwright&lt;/span>
 &lt;a href="#puppeteer--playwright" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>Puppeteer (基于 CDP) 和 Playwright (支持多浏览器) 是现代 Web 自动化的首选工具。在逆向中，我们需要利用它们来：&lt;/p></description></item><item><title>Unidbg 模拟执行框架指南</title><link>https://overkazaf.github.io/reverse_engineering/android/02-tools/dynamic/unidbg_guide/</link><pubDate>Sun, 09 Jun 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/02-tools/dynamic/unidbg_guide/</guid><description>&lt;h1 class="heading-element" id="unidbg-模拟执行框架指南">&lt;span>Unidbg 模拟执行框架指南&lt;/span>
 &lt;a href="#unidbg-%e6%a8%a1%e6%8b%9f%e6%89%a7%e8%a1%8c%e6%a1%86%e6%9e%b6%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Unidbg 是一个基于 Java 开发的 Android/iOS 原生库 (&lt;code>.so&lt;/code>/&lt;code>.dylib&lt;/code>) 模拟执行框架。它能够在 PC 上模拟完整的 ARM 执行环境，使你可以像调用本地 Java 方法一样直接调用和调试原生库中的函数。&lt;/p></description></item><item><title>TLS/SSL 握手过程</title><link>https://overkazaf.github.io/reverse_engineering/web/01-foundations/tls_ssl_handshake/</link><pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/01-foundations/tls_ssl_handshake/</guid><description>&lt;h1 class="heading-element" id="tlsssl-握手过程">&lt;span>TLS/SSL 握手过程&lt;/span>
 &lt;a href="#tlsssl-%e6%8f%a1%e6%89%8b%e8%bf%87%e7%a8%8b" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>在 HTTPS 通信中，TLS/SSL 握手是建立安全连接的第一个环节。对于逆向工程，理解握手过程是破解 SSL Pinning（证书固定）和进行流量解密（MITM）的基础。&lt;/p></description></item><item><title>Burp Suite 指南</title><link>https://overkazaf.github.io/reverse_engineering/web/02-tooling/burp_suite_guide/</link><pubDate>Tue, 14 May 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/02-tooling/burp_suite_guide/</guid><description>&lt;h1 class="heading-element" id="burp-suite-指南">&lt;span>Burp Suite 指南&lt;/span>
 &lt;a href="#burp-suite-%e6%8c%87%e5%8d%97" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>Burp Suite 不仅仅是渗透测试神器，也是 Web 逆向中最強大的中间人攻击（MITM）工具。它不仅能抓包，还能修改重发、暴力破解签名、自动化解码等。本指南仅关注逆向工程中常用的功能。&lt;/p></description></item><item><title>Android 运行时 (ART) 深度解析</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/art_runtime/</link><pubDate>Tue, 07 May 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/art_runtime/</guid><description>&lt;h1 class="heading-element" id="android-运行时-art-深度解析">&lt;span>Android 运行时 (ART) 深度解析&lt;/span>
 &lt;a href="#android-%e8%bf%90%e8%a1%8c%e6%97%b6-art-%e6%b7%b1%e5%ba%a6%e8%a7%a3%e6%9e%90" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>ART (Android Runtime) 是 Android 5.0 (Lollipop) 之后默认的应用程序运行时环境，取代了旧的 Dalvik 虚拟机 (DVM)。ART 的引入显著改变了 Android 应用的执行方式，旨在提高应用的性能、启动速度和电池续航。&lt;/p></description></item><item><title>Web API 与 Ajax</title><link>https://overkazaf.github.io/reverse_engineering/web/01-foundations/web_api_and_ajax/</link><pubDate>Sun, 28 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/01-foundations/web_api_and_ajax/</guid><description>&lt;h1 class="heading-element" id="web-api-与-ajax">&lt;span>Web API 与 Ajax&lt;/span>
 &lt;a href="#web-api-%e4%b8%8e-ajax" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>Web API 和 Ajax 是现代 Web 应用的核心。对于逆向工程师来说，理解这些技术是拦截网络请求、分析数据流向以及绕过某些安全检测的基础。&lt;/p></description></item><item><title>DEX 文件相关</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/dex_format/</link><pubDate>Sat, 27 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/dex_format/</guid><description>&lt;h1 class="heading-element" id="dex-文件相关">&lt;span>DEX 文件相关&lt;/span>
 &lt;a href="#dex-%e6%96%87%e4%bb%b6%e7%9b%b8%e5%85%b3" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>DEX (Dalvik Executable) 文件是 Android 操作系统的核心组成部分之一。它们是专门为在内存和处理器速度受限的设备上高效运行而设计的。本指南将深入探讨 DEX 文件的定义、格式、运行原理以及相关工具。&lt;/p></description></item><item><title>APK 文件结构详解</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/apk_structure/</link><pubDate>Wed, 24 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/apk_structure/</guid><description>&lt;h1 class="heading-element" id="apk-文件结构详解">&lt;span>APK 文件结构详解&lt;/span>
 &lt;a href="#apk-%e6%96%87%e4%bb%b6%e7%bb%93%e6%9e%84%e8%af%a6%e8%a7%a3" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>APK (Android Package) 是 Android 操作系统用于分发和安装移动应用的文件格式。它本质上是一个 ZIP 归档文件，包含了应用的所有代码、资源、证书等。理解其内部结构是逆向工程和安全分析的第一步。&lt;/p></description></item><item><title>JavaScript 基础</title><link>https://overkazaf.github.io/reverse_engineering/web/01-foundations/javascript_basics/</link><pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/01-foundations/javascript_basics/</guid><description>&lt;h1 class="heading-element" id="javascript-基础">&lt;span>JavaScript 基础&lt;/span>
 &lt;a href="#javascript-%e5%9f%ba%e7%a1%80" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>JavaScript 是 Web 逆向工程中最重要的语言。掌握 JavaScript 的核心概念对于理解和分析 Web 应用至关重要。&lt;/p></description></item><item><title>TOTP 技术原理</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/totp/</link><pubDate>Sat, 13 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/totp/</guid><description>&lt;h1 class="heading-element" id="totp-技术原理">&lt;span>TOTP 技术原理&lt;/span>
 &lt;a href="#totp-%e6%8a%80%e6%9c%af%e5%8e%9f%e7%90%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>&lt;strong>TOTP (Time-Based One-Time Password)&lt;/strong> 是一种基于时间的一次性密码算法，广泛应用于双因素认证 (2FA) 和 API 防护场景。&lt;/p></description></item><item><title>Cookie 与 Storage</title><link>https://overkazaf.github.io/reverse_engineering/web/01-foundations/cookie_and_storage/</link><pubDate>Tue, 09 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/01-foundations/cookie_and_storage/</guid><description>&lt;h1 class="heading-element" id="cookie-与-storage">&lt;span>Cookie 与 Storage&lt;/span>
 &lt;a href="#cookie-%e4%b8%8e-storage" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>Web 应用需要在客户端存储数据，用于维持会话状态（Session）、保存用户偏好或缓存数据。在逆向工程中，这些存储位置往往是寻找 Token、密钥或敏感信息的首选之地。&lt;/p></description></item><item><title>Android .so 文件详解 (ELF Format)</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/so_elf_format/</link><pubDate>Fri, 05 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/so_elf_format/</guid><description>&lt;h1 class="heading-element" id="android-so-文件详解-elf-format">&lt;span>Android .so 文件详解 (ELF Format)&lt;/span>
 &lt;a href="#android-so-%e6%96%87%e4%bb%b6%e8%af%a6%e8%a7%a3-elf-format" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>&lt;code>.so&lt;/code> 文件（Shared Object）是 Android 平台上的原生共享库，等同于 Windows 上的 &lt;code>.dll&lt;/code> 或 Linux 上的 &lt;code>.so&lt;/code>。它们包含了由 C/C++ 等原生代码编译而成的机器码。在 Android 逆向工程中，分析 &lt;code>.so&lt;/code> 文件是理解应用核心逻辑、破解加密算法和绕过安全机制的关键一步。&lt;/p></description></item><item><title>Android Studio 调试工具集</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/android_studio_debug_tools/</link><pubDate>Thu, 04 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/foundations/android_studio_debug_tools/</guid><description>&lt;h1 class="heading-element" id="android-studio-调试工具集">&lt;span>Android Studio 调试工具集&lt;/span>
 &lt;a href="#android-studio-%e8%b0%83%e8%af%95%e5%b7%a5%e5%85%b7%e9%9b%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;p>Android Studio 不仅仅是一个代码编辑器，它还集成了一套强大、可视化的调试和分析工具，能够极大地提升开发和逆向分析的效率。熟悉这些工具是每个 Android 工程师的必备技能。&lt;/p></description></item><item><title>HTTP/HTTPS 协议</title><link>https://overkazaf.github.io/reverse_engineering/web/01-foundations/http_https_protocol/</link><pubDate>Thu, 04 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/01-foundations/http_https_protocol/</guid><description>&lt;h1 class="heading-element" id="httphttps-协议">&lt;span>HTTP/HTTPS 协议&lt;/span>
 &lt;a href="#httphttps-%e5%8d%8f%e8%ae%ae" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="概述">&lt;span>概述&lt;/span>
 &lt;a href="#%e6%a6%82%e8%bf%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>HTTP (HyperText Transfer Protocol) 和 HTTPS (HTTP Secure) 是 Web 通信的基础协议。理解这些协议对于 Web 逆向工程至关重要。&lt;/p></description></item><item><title>配方：解密 API 参数</title><link>https://overkazaf.github.io/reverse_engineering/web/00-quick-start/decrypt_api_params/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/web/00-quick-start/decrypt_api_params/</guid><description>&lt;h1 class="heading-element" id="配方解密-api-参数">&lt;span>配方：解密 API 参数&lt;/span>
 &lt;a href="#%e9%85%8d%e6%96%b9%e8%a7%a3%e5%af%86-api-%e5%8f%82%e6%95%b0" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h1>&lt;h2 class="heading-element" id="配方信息">&lt;span>配方信息&lt;/span>
 &lt;a href="#%e9%85%8d%e6%96%b9%e4%bf%a1%e6%81%af" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;div class="table-wrapper">
 &lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>项目&lt;/th>
 &lt;th>说明&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>难度&lt;/strong>&lt;/td>
 &lt;td>⭐⭐ (初级)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>预计时间&lt;/strong>&lt;/td>
 &lt;td>30-45 分钟&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>所需工具&lt;/strong>&lt;/td>
 &lt;td>Chrome 浏览器, Python 3.7+&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>适用场景&lt;/strong>&lt;/td>
 &lt;td>破解 API 签名、解密请求参数&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>前置知识&lt;/strong>&lt;/td>
 &lt;td>完成 &lt;a href="./your_first_hook.md">你的第一个 Hook&lt;/a>&lt;/td>
 &lt;/tr>
 &lt;/tbody>
 &lt;/table>
&lt;/div>&lt;hr>
&lt;h2 class="heading-element" id="-前置知识">&lt;span>📚 前置知识&lt;/span>
 &lt;a href="#-%e5%89%8d%e7%bd%ae%e7%9f%a5%e8%af%86" class="heading-mark">
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true">&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z">&lt;/path>&lt;/svg>
 &lt;/a>
&lt;/h2>&lt;p>在开始本配方之前，建议先掌握以下内容：&lt;/p></description></item></channel></rss>