<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ip2867</title><link>https://ip2867.github.io/</link><description>Recent content from Ip2867</description><generator>Hugo</generator><language>zh-CN</language><managingEditor>xxx@example.com (栗悟饭与龟波功)</managingEditor><webMaster>xxx@example.com (栗悟饭与龟波功)</webMaster><copyright>本博客所有文章除特别声明外，均采用 BY-NC-SA 许可协议。转载请注明出处！</copyright><lastBuildDate>Mon, 02 Nov 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://ip2867.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>JNI / NDK / 交叉编译：从 .so 生产流程到 Hook 动态注册</title><link>https://ip2867.github.io/post/jni-ndk-crosscompile-and-registernatives-hook/</link><pubDate>Mon, 02 Nov 2026 11:00:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/jni-ndk-crosscompile-and-registernatives-hook/</guid><description>
<![CDATA[<h1>JNI / NDK / 交叉编译：从 .so 生产流程到 Hook 动态注册</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>很多人学 Android Native 逆向时会把三个概念混在一起：<strong>JNI、NDK、交叉编译</strong>。它们不在同一个层面上——</p>
<ul>
<li><strong>JNI</strong> 是「两个国家之间的外交协议」：规定 Java 和 C/C++ 怎么互相调用。</li>
<li><strong>NDK</strong> 是「外交部」：装着编译器、头文件、构建脚本的工具箱。</li>
<li><strong>交叉编译</strong> 是「外交部里专门做翻译的人」：让 x86 电脑产出 ARM 手机能跑的代码。</li>
</ul>
<p>协议不依赖外交部存在，但没有外交部，你很难按协议高效生产出可用的东西。搞清这三层之后，再回头看 Frida 为什么必须 Hook <code>RegisterNatives</code>，逻辑就是自然的了。</p>
        
        <hr><p>本文2026-11-02首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-11-02</p>]]></description><category>逆向</category></item><item><title>Frida 实战进阶：从 Java Hook 到 SO 层、RPC 与反调试绕过</title><link>https://ip2867.github.io/post/frida-advanced-hook-guide/</link><pubDate>Mon, 02 Nov 2026 10:30:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/frida-advanced-hook-guide/</guid><description>
<![CDATA[<h1>Frida 实战进阶：从 Java Hook 到 SO 层、RPC 与反调试绕过</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>这篇按「Java 层 → SO 层 → JNI 内核 → 主动调用与 RPC → 自动化 → 对抗实战」六层递进整理 Frida 用法。目标不是罗列 API，而是让你清楚<strong>每一层能做什么、边界在哪、什么时候必须往下一层走</strong>。</p>
        
        <hr><p>本文2026-11-02首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-11-02</p>]]></description><category>逆向</category></item><item><title>ARM 汇编完整入门：指令集、寄存器、寻址与函数调用</title><link>https://ip2867.github.io/post/arm-assembly-complete-guide/</link><pubDate>Mon, 02 Nov 2026 10:20:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/arm-assembly-complete-guide/</guid><description>
<![CDATA[<h1>ARM 汇编完整入门：指令集、寄存器、寻址与函数调用</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>这篇把 ARM 汇编从「指令长什么样」到「函数怎么调用」串成一条线。目标不是背指令表，而是建立两个和 x86 完全不同的直觉：<strong>ARM 是 Load/Store 架构</strong>，以及<strong>返回地址在 LR 里而不是栈上</strong>。这两点决定了 ARM 逆向和 Pwn 的所有后续推演。</p>
        
        <hr><p>本文2026-11-02首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-11-02</p>]]></description><category>逆向</category></item><item><title>Pwn 入门基础（三）：ROP 技巧全梳理——ret2xxx 与栈迁移</title><link>https://ip2867.github.io/post/pwn-basics-part3-rop-techniques/</link><pubDate>Sun, 01 Nov 2026 14:10:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/pwn-basics-part3-rop-techniques/</guid><description>
<![CDATA[<h1>Pwn 入门基础（三）：ROP 技巧全梳理——ret2xxx 与栈迁移</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>前两篇把汇编、栈帧、越界和保护机制的地基打完了。这一篇进入真正的&quot;利用&quot;阶段：当你能控制返回地址之后，跳到哪里、怎么跳、跳过去之后怎么继续，就是 ROP 要解决的问题。</p>
        
        <hr><p>本文2026-11-01首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-11-01</p>]]></description><category>Pwn</category></item><item><title>Pwn 入门基础（二）：虚拟地址空间、栈帧与越界控制流</title><link>https://ip2867.github.io/post/pwn-basics-part2-address-space-stack-frame/</link><pubDate>Sun, 01 Nov 2026 10:00:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/pwn-basics-part2-address-space-stack-frame/</guid><description>
<![CDATA[<h1>Pwn 入门基础（二）：虚拟地址空间、栈帧与越界控制流</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>上一篇把汇编、寄存器、函数调用和保护机制串了一遍。这一篇补上两块地基——<strong>进程地址空间</strong>和<strong>栈帧的动态变化</strong>——然后用两个最小实验（数组越界、字符串栈溢出）把「覆盖返回地址劫持 rip」从原理推到实操，最后用 pwntools 写出第一个能跑的 exploit。</p>
        
        <hr><p>本文2026-11-01首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-11-01</p>]]></description><category>Pwn</category></item><item><title>Pwn 入门基础：从汇编、栈到保护机制</title><link>https://ip2867.github.io/post/pwn-basics-asm-stack-protections/</link><pubDate>Fri, 30 Oct 2026 15:00:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/pwn-basics-asm-stack-protections/</guid><description>
<![CDATA[<h1>Pwn 入门基础：从汇编、栈到保护机制</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>这篇笔记想做的事，是把「汇编基础」和「保护机制」两条线接起来。目标不是背指令表，而是让你看到一段 <code>read(0, buf, 256)</code> 时，脑子里能自动浮现出栈的布局、返回地址的位置，以及这道题可能开了哪些保护、该从哪里下手。</p>
        
        <hr><p>本文2026-10-30首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-10-30</p>]]></description><category>Pwn</category></item><item><title>我和 AI 一起打通了 Cheat Engine 训练关：两个人在同一个死局里怎么换思路</title><link>https://ip2867.github.io/post/cheat-engine-ai-agent/</link><pubDate>Mon, 26 Oct 2026 00:55:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/cheat-engine-ai-agent/</guid><description>
<![CDATA[<h1>我和 AI 一起打通了 Cheat Engine 训练关：两个人在同一个死局里怎么换思路</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>这件事如果只看标题，很容易被理解成&quot;AI 全自动破解游戏&quot;。完全不是。</p>
<p>真实过程是我和它坐在同一台机器前面，<strong>我给方向，它去验证；它的验证结果反过来修正我的判断</strong>。两关都是这样一点点磨出来的。这篇记的是那个协作过程本身 —— 包括我判断错的地方，和它推不动的时刻。</p>
        
        <hr><p>本文2026-10-26首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-10-26</p>]]></description><category>逆向</category></item><item><title>Cheat Engine 九关教程通关笔记：从数值扫描到代码注入</title><link>https://ip2867.github.io/post/cheat-engine-tutorial/</link><pubDate>Thu, 22 Oct 2026 10:00:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/cheat-engine-tutorial/</guid><description>
<![CDATA[<h1>Cheat Engine 九关教程通关笔记：从数值扫描到代码注入</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>Cheat Engine 自带的九关教程，本质上是一条很完整的逆向入门路线：先学会在内存里找值，再顺着值找到改值的代码，最后读懂并改写这段代码。九关走完，动态调试的基本功就齐了。</p>
        
        <hr><p>本文2026-10-22首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-10-22</p>]]></description><category>逆向</category></item><item><title>把 AI 当团队管理：规划、派活、调研与交接的四条实践</title><link>https://ip2867.github.io/post/ai-agent-workflow-practices/</link><pubDate>Tue, 20 Oct 2026 17:20:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/ai-agent-workflow-practices/</guid><description>
<![CDATA[<h1>把 AI 当团队管理：规划、派活、调研与交接的四条实践</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>单会话聊到第 50 轮之后，你会发现一个问题：<strong>它开始忘事，而你开始替它记。</strong></p>
<p>上下文压缩不是免费的。每压缩一次，模型就要重新理解一遍&quot;我们到底在干什么&quot;，反应变慢、判断变钝。
这篇记录我目前跑通的四条做法：把 AI 当团队管理，而不是当聊天对象。</p>
        
        <hr><p>本文2026-10-20首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-10-20</p>]]></description><category>AI</category></item><item><title>CTF-RE-TOOL v1.8：让 AI 真的会用调试器</title><link>https://ip2867.github.io/post/ctf-re-tool-v1.8-dynamic-debugging/</link><pubDate>Tue, 20 Oct 2026 14:50:00 +0800</pubDate><author>xxx@example.com (栗悟饭与龟波功)</author><guid>https://ip2867.github.io/post/ctf-re-tool-v1.8-dynamic-debugging/</guid><description>
<![CDATA[<h1>CTF-RE-TOOL v1.8：让 AI 真的会用调试器</h1><p>作者：栗悟饭与龟波功（xxx@example.com）</p>
        
          <blockquote>
<p>上一篇写这个工具时，我说核心是「AI 自主调用工具解题」。十多天过去，我发现这句话有个漏洞：
<strong>工具&quot;能调用&quot;和工具&quot;能解题&quot;之间，隔着几个必须靠实测才能发现的坑。</strong></p>
        
        <hr><p>本文2026-10-20首发于<a href='https://ip2867.github.io/'>Ip2867</a>，最后修改于2026-10-20</p>]]></description><category>逆向</category></item></channel></rss>