7.1.1.1 GNU Assembler GAS 7.1.1.1 GNU Assembler GAS:当 里的字符串突然“活过来”——一个被忽略的符号对齐陷阱与 指令的救赎 你有没有试过这样一段看似无害的 GAS 汇编代码: 它编译、链接、运行——输出 ,一切正常。 可当你把 改成 (加个换行),再把长度从 改成 ,程序却在 时静默崩溃, 显示 ? 而 —— 那正是 的地址。 地址没错,权限没错( 是只读但可读),长度没错,系统调用号没错…… 那为什么内核说“坏地址”? 这不是 bug,不是链接器发疯,也不是 ASLR 搞鬼。 这是 GAS 在 段中埋下的一个沉默的对齐契约——而你,刚刚亲手撕毁了它。 一、真相藏在 的第三列里 让我们直奔现场。