<?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/android/04-reference/engineering/</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>Fri, 23 May 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>框架、工具与中间件</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/frameworks_and_middleware/</link><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/frameworks_and_middleware/</guid><description>&lt;h1 class="heading-element" id="框架工具与中间件">&lt;span>框架、工具与中间件&lt;/span>
 &lt;a href="#%e6%a1%86%e6%9e%b6%e5%b7%a5%e5%85%b7%e4%b8%8e%e4%b8%ad%e9%97%b4%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;p>在复杂的逆向工程和数据采集中，单纯依靠基础工具往往效率低下。为了处理大规模的任务、管理复杂的依赖和保证流程的稳定性，我们需要引入&amp;quot;工程化&amp;quot;的思维，利用成熟的框架和中间件来构建健壮、可扩展的分析系统。&lt;/p></description></item><item><title>消息队列 (Message Queue)</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/message_queues/</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/engineering/message_queues/</guid><description>&lt;h1 class="heading-element" id="消息队列-message-queue">&lt;span>消息队列 (Message Queue)&lt;/span>
 &lt;a href="#%e6%b6%88%e6%81%af%e9%98%9f%e5%88%97-message-queue" 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="消息队列mq是大型分布式系统中用于服务间异步通信的核心组件在规模化的逆向分析和数据采集中它扮演着缓冲池和解耦器的关键角色确保数据流的稳定高效和可靠">&lt;span>消息队列（MQ）是大型分布式系统中用于服务间异步通信的核心组件。在规模化的逆向分析和数据采集中，它扮演着&amp;quot;缓冲池&amp;quot;和&amp;quot;解耦器&amp;quot;的关键角色，确保数据流的稳定、高效和可靠。&lt;/span>
 &lt;a href="#%e6%b6%88%e6%81%af%e9%98%9f%e5%88%97mq%e6%98%af%e5%a4%a7%e5%9e%8b%e5%88%86%e5%b8%83%e5%bc%8f%e7%b3%bb%e7%bb%9f%e4%b8%ad%e7%94%a8%e4%ba%8e%e6%9c%8d%e5%8a%a1%e9%97%b4%e5%bc%82%e6%ad%a5%e9%80%9a%e4%bf%a1%e7%9a%84%e6%a0%b8%e5%bf%83%e7%bb%84%e4%bb%b6%e5%9c%a8%e8%a7%84%e6%a8%a1%e5%8c%96%e7%9a%84%e9%80%86%e5%90%91%e5%88%86%e6%9e%90%e5%92%8c%e6%95%b0%e6%8d%ae%e9%87%87%e9%9b%86%e4%b8%ad%e5%ae%83%e6%89%ae%e6%bc%94%e7%9d%80%e7%bc%93%e5%86%b2%e6%b1%a0%e5%92%8c%e8%a7%a3%e8%80%a6%e5%99%a8%e7%9a%84%e5%85%b3%e9%94%ae%e8%a7%92%e8%89%b2%e7%a1%ae%e4%bf%9d%e6%95%b0%e6%8d%ae%e6%b5%81%e7%9a%84%e7%a8%b3%e5%ae%9a%e9%ab%98%e6%95%88%e5%92%8c%e5%8f%af%e9%9d%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;/h2>&lt;h2 class="heading-element" id="1-核心概念与作用">&lt;span>1. 核心概念与作用&lt;/span>
 &lt;a href="#1-%e6%a0%b8%e5%bf%83%e6%a6%82%e5%bf%b5%e4%b8%8e%e4%bd%9c%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;/h2>&lt;h3 class="heading-element" id="a-为什么需要消息队列">&lt;span>a) 为什么需要消息队列？&lt;/span>
 &lt;a href="#a-%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81%e6%b6%88%e6%81%af%e9%98%9f%e5%88%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;/h3>&lt;p>想象一个场景：你有 100 台爬虫节点（生产者）在高速抓取数据，同时有 10 个数据处理节点（消费者）负责清洗和入库。如果让生产者直接调用消费者的 API，会产生几个问题：&lt;/p></description></item><item><title>Redis 常用命令备忘录</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/redis/</link><pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/redis/</guid><description>&lt;h1 class="heading-element" id="redis-常用命令备忘录">&lt;span>Redis 常用命令备忘录&lt;/span>
 &lt;a href="#redis-%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4%e5%a4%87%e5%bf%98%e5%bd%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;/h1>&lt;p>Redis 是一个开源的、基于内存的、高性能的键值存储系统。它支持多种数据结构，如字符串、哈希、列表、集合和有序集合。本备忘录旨在提供常用命令的快速参考。&lt;/p></description></item><item><title>风控 SDK 架构设计</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/risk_control_sdk_build_guide/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><author>overkazaf@gmail.com (+5)</author><guid>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/risk_control_sdk_build_guide/</guid><description>&lt;h1 class="heading-element" id="风控-sdk-架构设计">&lt;span>风控 SDK 架构设计&lt;/span>
 &lt;a href="#%e9%a3%8e%e6%8e%a7-sdk-%e6%9e%b6%e6%9e%84%e8%ae%be%e8%ae%a1" 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>: 本案例是笔者根据实际风控 SDK 逆向分析经验，构建的一个&lt;strong>精简版客户端风控 SDK Demo&lt;/strong>。
旨在帮助读者理解风控 SDK 的核心架构和设计思路，而非生产级实现。&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>数据分析</title><link>https://overkazaf.github.io/reverse_engineering/android/04-reference/engineering/data-analysis/</link><pubDate>Wed, 09 Apr 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/</guid><description>&lt;p>本章介绍大数据技术栈中的核心组件，帮助读者掌握从数据采集、存储到计算分析的完整链路。在大规模逆向工程项目中，高效的数据处理能力是不可或缺的基础设施。&lt;/p></description></item></channel></rss>