Theme Preview

编译 OpenVPN 邂逅 ARM GCC bug

由 李晓岚 在 2017年05月07日发表

这几天折腾在 HG8120C 光猫(ONT)上运行 OpenVPN,历经千辛万苦编译成功了,结果运行中 Assert 失败,一路排查下来,最后发现居然是工具链 GCC 的错。这已经不是第一次遇到工具链的 bug了,第一次是 <a href="%E7%BC%96%E8%AF%91%E5%99%A8ADS%E4%B9%B1%E5%BA%8F%E4%BC%98%E5%8C%96%E5%AD%98%E5%9C%A8Bug" title="ARM编译器ADS1.2 Build 848存在乱序优化Bug">ARM ADS</a> 乱序优化的 bug,第二次是 <a href="Thumb-BLX-Instruction-Encoding" title="链接器中Thumb BLX指令编码">自己写的链接器</a>,如果这也算的话。 <a href="/arm-gcc-v4.4.7-bug-when-compile-openvpn-for-hg8120c-ont">..more</a>
评论» 标签:GCCARMASMONTOpenVPN 更多...

PWN华为HG8120C光猫(一)

由 李晓岚 在 2016年05月01日发表

几星期前,家里网络更换了光猫(ONT),由HG8120R换成了HG8120C,均系华为生产,ISP提供。事后发现原来完美工作的IPv6-in-IPv4 tunnel丢包严重,达到90%以上。由于ONT是唯一变更了的设备,所以可以几乎100%确认是新的ONT HG8120C造成的丢包。于是在过去的几个星期里,PWN新ONT设备便成了我闲暇时光的主要工作,最终成功pwned,获取了root shell。 <a href="/pwn-huawei-hg8120c-ont-via-uart-part-1">..more</a>
评论» 标签:ONTARM安全漏洞路由器固件PWN 更多...

链接器中Thumb BLX指令编码

由 李晓岚 在 2013年05月22日发表

一年前实现了一个简单的ARM程序链接器。在实现Thumb指令调用ARM指令子过程时,使用了Thumb 2中的BLX指令。测试过程中发现某些情况下程序会死掉。进一步跟踪调试发现,只有当BLX指令没有4字节对齐时才会出问题。当时就采取了对未4字节对齐的BLX指令使用跳板(veneer)的策略,绕过了问题。一年多后,再次遇到这个问题,仔细阅读手册后,发现了问题的根源。 <a href="/Thumb-BLX-Instruction-Encoding">..more</a>
评论» 标签:ARMASMLinker 更多...

ARM编译器ADS1.2 Build 848存在乱序优化Bug

由 李晓岚 在 2011年05月27日发表

现代CPU都具有流水线结构,流水线各级可以同时执行不同的指令,ARM CPU就具有这个特点。于是乎,编译器为了提高流水线的效率,加快代码的执行,通常会进行乱序(out-of-order)优化。ADS 1.2 中的Thumb指令编译器TCC在进行乱序优化时,寄存器分配出现了问题,导致了Bug的引入。 <a href="/%E7%BC%96%E8%AF%91%E5%99%A8ADS%E4%B9%B1%E5%BA%8F%E4%BC%98%E5%8C%96%E5%AD%98%E5%9C%A8Bug">..more</a>
评论» 标签:ARMADSTCC 更多...