# Memory Integrity Bypass

> 内存完整性校验（.text 校验/CRC 自校验）对抗方法论（供安全研究/自有应用）。当加固会扫描代码段检测你是否 patch 过 SO/dex（inline hook 或字节修改被发现导致闪退）时，用于分析校验点、维持内存视图一致性、绕过完整性检测。涵盖 .text CRC 校验、mprotect 监控、双映射思路。

- Skill: `xiamiya/memory-integrity-bypass` (Agent Skill)
- Install (CLI): `npx skillmds@latest add xiamiya/memory-integrity-bypass`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xiamiya/memory-integrity-bypass/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: xiamiya (https://skillmd.com/u/xiamiya)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/xiamiya/memory-integrity-bypass

---


# 内存完整性校验绕过

现代加固会**自校验代码段**（读 `.text` 算 CRC/哈希，和预存值比对），一旦发现你 inline hook 或改了字节就闪退。这个技能教你分析和对抗。

## 一、先搞清校验类型
| 类型 | 检测什么 | 触发点 |
|---|---|---|
| .text CRC 自校验 | 代码段字节被改（inline hook/patch） | 启动时、定时、关键函数前 |
| dex CRC | dex 被改/重打包 | 类加载时 |
| GOT/PLT 校验 | 导入表被改（符号 hook） | 调用敏感函数前 |
| maps 扫描 | 检测非预期的可写代码段（frida/hook 框架） | 定时轮询 /proc/self/maps |

## 二、定位校验代码
1. 现象：单独运行正常，一 hook/patch 就崩 → 有完整性校验。
2. 用 `rev-symbol`/IDA 搜特征：`crc32`
...[612 chars omitted]...
射方案（原始页给校验读，执行走 patch 页），复杂但最彻底。

## 四、推荐顺序
1. 先试**改校验逻辑本身**（最简单）——nop 掉校验、或 patch 比对跳转。
2. 校验分散/多处 → 用 Frida 动态 hook 校验函数统一返回正确值。
3. 校验读原始文件对比 → 改成不落地的纯内存 hook（Frida inline hook 不改磁盘）。
4. 都不行再上双映射/影子页（配合 kernel-system-hook）。

## 五、验证
每绕一层后：目标功能是否正常、有没有延迟闪退（有些校验是定时的，跑几分钟再看）。

## 边界
用于自有 App / 授权样本的加固机制研究、hook 对抗学习、安全评估。不协助破解他人付费/侵权。

