<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>逆向工程 on 文艺技术笔记</title>
        <link>https://wenyiblog.top/tags/%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B/</link>
        <description>Recent content in 逆向工程 on 文艺技术笔记</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <copyright>文艺技术笔记 | 软件工程师文艺</copyright>
        <lastBuildDate>Sat, 13 Jun 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://wenyiblog.top/tags/%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>汇编语言调试技巧：Debug 工具与逆向分析基础</title>
        <link>https://wenyiblog.top/2026/06/asm-19-debugging/</link>
        <pubDate>Sat, 13 Jun 2026 12:00:00 +0800</pubDate>
        
        <guid>https://wenyiblog.top/2026/06/asm-19-debugging/</guid>
        <description>&lt;h2 id=&#34;debugexe-基础&#34;&gt;&lt;a href=&#34;#debugexe-%e5%9f%ba%e7%a1%80&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;DEBUG.exe 基础
&lt;/h2&gt;&lt;p&gt;DOS 自带的调试工具，支持单步执行、寄存器查看、内存修改。&lt;/p&gt;
&lt;h3 id=&#34;启动&#34;&gt;&lt;a href=&#34;#%e5%90%af%e5%8a%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;启动
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;debug program.exe
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;常用命令&#34;&gt;&lt;a href=&#34;#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;常用命令
&lt;/h3&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;命令&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;功能&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;示例&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;r&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;查看/修改寄存器&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;r ax&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;d&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;查看内存&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;d ds:0100&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;e&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;修改内存&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;e ds:0100 90 90&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;t&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;单步执行&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;g&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;运行到断点&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;g 0100&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;u&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;反汇编&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;u cs:0100&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;strong&gt;a&lt;/strong&gt;&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;汇编&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;&lt;code&gt;a cs:0100&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;单步调试示例&#34;&gt;&lt;a href=&#34;#%e5%8d%95%e6%ad%a5%e8%b0%83%e8%af%95%e7%a4%ba%e4%be%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;单步调试示例
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-debug hello.exe
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-r          ; 查看寄存器
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-t          ; 执行一条指令
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-r ax       ; 查看 AX 变化
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-d ds:0000  ; 查看数据段
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-q          ; 退出
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;turbo-debugger-td&#34;&gt;&lt;a href=&#34;#turbo-debugger-td&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Turbo Debugger (TD)
&lt;/h2&gt;&lt;p&gt;图形化调试器，支持：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;源码/反汇编窗口&lt;/li&gt;
&lt;li&gt;断点设置&lt;/li&gt;
&lt;li&gt;变量监视&lt;/li&gt;
&lt;li&gt;调用栈查看&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;gdb-调试32-位-linux&#34;&gt;&lt;a href=&#34;#gdb-%e8%b0%83%e8%af%9532-%e4%bd%8d-linux&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;GDB 调试（32 位 Linux）
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nasm -f elf32 prog.asm -o prog.o
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ld -m elf_i386 prog.o -o prog
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gdb ./prog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;GDB 命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(gdb) break main
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(gdb) run
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(gdb) info registers
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(gdb) stepi
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(gdb) x/10xw $esp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;逆向分析基础&#34;&gt;&lt;a href=&#34;#%e9%80%86%e5%90%91%e5%88%86%e6%9e%90%e5%9f%ba%e7%a1%80&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;逆向分析基础
&lt;/h2&gt;&lt;h3 id=&#34;静态分析&#34;&gt;&lt;a href=&#34;#%e9%9d%99%e6%80%81%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;静态分析
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;使用 &lt;code&gt;objdump&lt;/code&gt; 或 &lt;code&gt;IDA&lt;/code&gt; 查看反汇编&lt;/li&gt;
&lt;li&gt;识别函数边界（PUSH BP / MOV BP,SP &amp;hellip; POP BP / RET）&lt;/li&gt;
&lt;li&gt;追踪数据流&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;动态分析&#34;&gt;&lt;a href=&#34;#%e5%8a%a8%e6%80%81%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;动态分析
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;设置断点&lt;/li&gt;
&lt;li&gt;观察寄存器变化&lt;/li&gt;
&lt;li&gt;修改内存测试边界条件&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;常见调试技巧&#34;&gt;&lt;a href=&#34;#%e5%b8%b8%e8%a7%81%e8%b0%83%e8%af%95%e6%8a%80%e5%b7%a7&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;常见调试技巧
&lt;/h2&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&#34;text-align:left&#34;&gt;问题&lt;/th&gt;
&lt;th style=&#34;text-align:left&#34;&gt;调试方法&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;程序崩溃&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;检查栈平衡（PUSH/POP 是否配对）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;结果错误&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;单步执行，逐条检查寄存器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;死循环&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;检查 CX 是否正确递减&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&#34;text-align:left&#34;&gt;内存越界&lt;/td&gt;
&lt;td style=&#34;text-align:left&#34;&gt;检查 DS/ES 段地址&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结
&lt;/h2&gt;&lt;p&gt;调试是汇编开发的必备技能。掌握 DEBUG/GDB，你就能定位任何底层 Bug。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;下一篇：《汇编在现代系统中的位置：从 Bootloader 到逆向工程》&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        </item>
        <item>
        <title>汇编在现代系统中的位置：从 Bootloader 到逆向工程</title>
        <link>https://wenyiblog.top/2026/06/asm-20-modern-relevance/</link>
        <pubDate>Sat, 13 Jun 2026 12:00:00 +0800</pubDate>
        
        <guid>https://wenyiblog.top/2026/06/asm-20-modern-relevance/</guid>
        <description>&lt;h2 id=&#34;汇编过时了吗&#34;&gt;&lt;a href=&#34;#%e6%b1%87%e7%bc%96%e8%bf%87%e6%97%b6%e4%ba%86%e5%90%97&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;汇编过时了吗？
&lt;/h2&gt;&lt;p&gt;没有。它只是从&amp;quot;日常开发&amp;quot;变成了&amp;quot;专业工具&amp;quot;。&lt;/p&gt;
&lt;h2 id=&#34;场景-1bootloader-与-uefi&#34;&gt;&lt;a href=&#34;#%e5%9c%ba%e6%99%af-1bootloader-%e4%b8%8e-uefi&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;场景 1：Bootloader 与 UEFI
&lt;/h2&gt;&lt;p&gt;计算机启动的第一行代码是汇编：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BIOS/UEFI 固件&lt;/li&gt;
&lt;li&gt;GRUB 引导加载器&lt;/li&gt;
&lt;li&gt;Windows Boot Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;; 典型的 MBR 引导代码
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[BITS 16]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ORG 0x7C00]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;start:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    mov ax, 0
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    mov ds, ax
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    mov es, ax
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    mov ss, ax
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    mov sp, 0x7C00
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    mov si, msg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    call print_string
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    jmp $
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;场景-2操作系统内核&#34;&gt;&lt;a href=&#34;#%e5%9c%ba%e6%99%af-2%e6%93%8d%e4%bd%9c%e7%b3%bb%e7%bb%9f%e5%86%85%e6%a0%b8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;场景 2：操作系统内核
&lt;/h2&gt;&lt;p&gt;Linux 内核的入口点是汇编：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;; arch/x86/boot/header.S
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;.code16
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;jmp     trampoline
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;内核初始化阶段：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;设置段寄存器&lt;/li&gt;
&lt;li&gt;切换到保护模式&lt;/li&gt;
&lt;li&gt;建立页表&lt;/li&gt;
&lt;li&gt;跳转到 C 代码&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;场景-3漏洞分析与利用&#34;&gt;&lt;a href=&#34;#%e5%9c%ba%e6%99%af-3%e6%bc%8f%e6%b4%9e%e5%88%86%e6%9e%90%e4%b8%8e%e5%88%a9%e7%94%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;场景 3：漏洞分析与利用
&lt;/h2&gt;&lt;p&gt;逆向分析 CVE 漏洞时，你看到的是汇编：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;0x08048456:  call   strcpy    ; 缓冲区溢出点
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;0x0804845B:  leave
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;0x0804845C:  ret              ; EIP 被覆盖 → 控制流劫持
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;场景-4性能优化&#34;&gt;&lt;a href=&#34;#%e5%9c%ba%e6%99%af-4%e6%80%a7%e8%83%bd%e4%bc%98%e5%8c%96&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;场景 4：性能优化
&lt;/h2&gt;&lt;p&gt;关键热点函数手写汇编：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;视频编解码（x264）&lt;/li&gt;
&lt;li&gt;加密算法（AES-NI）&lt;/li&gt;
&lt;li&gt;数学库（BLAS/LAPACK）&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;; SSE2 向量化加法
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;movdqa xmm0, [a]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paddd  xmm0, [b]
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;movdqa [c], xmm0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;场景-5游戏与反作弊&#34;&gt;&lt;a href=&#34;#%e5%9c%ba%e6%99%af-5%e6%b8%b8%e6%88%8f%e4%b8%8e%e5%8f%8d%e4%bd%9c%e5%bc%8a&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;场景 5：游戏与反作弊
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;游戏引擎底层渲染&lt;/li&gt;
&lt;li&gt;反作弊驱动（Ring 0）&lt;/li&gt;
&lt;li&gt;模拟器开发（NES/GBA）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;学习建议&#34;&gt;&lt;a href=&#34;#%e5%ad%a6%e4%b9%a0%e5%bb%ba%e8%ae%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;学习建议
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先学 8086&lt;/strong&gt;：理解基础概念&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;再学 x86_64&lt;/strong&gt;：掌握现代架构&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;结合 C 语言&lt;/strong&gt;：理解编译输出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;动手实践&lt;/strong&gt;：写 Bootloader、分析 CrackMe&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结
&lt;/h2&gt;&lt;p&gt;汇编语言是程序员的&amp;quot;拉丁文&amp;quot;。它不常用，但懂它的人能读懂计算机的真正语言。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;汇编语言系列到此结束。&lt;/strong&gt; 从基础到实战，从历史到现代，希望这个系列能帮你建立完整的底层知识体系。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
