Forensic statistics in Python13 hours agohttps://www.johndcook.com/blog/2026/07/21/forensic-accounting-in-python/作者描述了一个项目,该项目需要对具有模糊变量选择的数据分析进行逆向工程。提供了一个例子:三个数字,可能的值分别为(第一个:31,41,59;第二个:26,53;第三个:58,97,93,23),代码枚举了所有24种组合并打印出和。例子中的所有和都是唯一的,因此已知的和187可以确定数字为41、53和93,而和为200则表示没有有效组合。
Notes on the Pentium's microcode circuitry13 hours agohttp://www.righto.com/2025/03/pentium-microcde-rom-circuitry.html微码是位于机器指令之下的一层软件,以存储在ROM中的微指令实现。奔腾处理器的微码ROM有4608条微指令,每条宽度为90位,存储在两个存储体中,每个存储体有288行和720列。位通过网格中NMOS晶体管的存在与否来存储,晶体管将输出线拉低。微码地址寄存器(MAR)保存13位地址,用于选择ROM中的行和列,支持递增、分支和最多三级堆栈的子程序调用。行选择驱动器使用优化的解码器,包含6输入与门和3位解码,以高效激活288行中的一行。输出电路包括多路复用器,用于每选择16列中的一位,随后是锁存器和用于放大的BiCMOS驱动器。测试电路使用线性反馈移位寄存器(LFSR)扫描ROM并计算校验和,从而实现单比特错误的检测。ROM的复杂性源于优化的布局(例如,镜像列组、BiCMOS驱动器)和可测试性特性。
Reverse engineering the mysterious Up-Data Link Test Set from Apollo13 hours agohttp://www.righto.com/2025/07/reverse-engineering-mysterious-up-data.html一位收藏家在仓库中发现了一套阿波罗时代的通信测试设备(上行数据链路置信测试设备),起初缺少电路板,后来在一个单独的袋子里找到了。该测试设备由摩托罗拉设计,用于验证阿波罗飞船的上行数据链路(UDL)系统,该系统允许地面站向飞船发送数字命令。对该设备进行逆向工程涉及使用X射线CT扫描分析未记载的拇指大小的封装模块,并构建了一个自动布线追踪器(Beep-o-matic)。该测试设备使用纸带阅读器加载消息,通过子比特冗余和相移键控(PSK)进行编码,并通过面板灯验证UDL的响应。丢失的组件(如主时钟和谐振滤波器)被重新制作以恢复功能,使得团队能够为阿波罗通信系统的重演生成逼真的信号。该项目凸显了阿波罗计划的巨大复杂性,即使是一个专门的测试设备也需要大量努力才能理解和操作。
How to reverse engineer an analog chip: the TDA7000 FM radio receiver13 hours agohttp://www.righto.com/2025/08/reverse-engineering-analog-TDA7000.html
Reverse engineering circuitry in a Spacelab computer from 198013 hours agohttp://www.righto.com/2026/05/reverse-engineering-spacelab-computer.html
Show HN: Discrete6502 – one thing led to another2 days agohttps://epatel.github.io/discrete6502/该项目使用4051个独立分立晶体管(SOT-323封装)在大型A4尺寸的电路板上重建了MOS 6502 CPU,逐晶体管复制了原始硅芯片的布局。它采用原始动态NMOS逻辑设计,而非静态逻辑,依赖存储在导线电容上的电荷,需要时钟刷新,并用1023个上拉电阻替代了耗尽型负载。该电路板运行在10–20 kHz(相对于原始的1 MHz),以便通过视觉观察操作过程;它包含55个寄存器LED以显示CPU状态。验证完全通过仿真和网表等价性在制造前完成,尚未构建物理板;首次上电才是真正的测试。树莓派Pico 2 W提供时钟和内存仿真,使电路板自包含,便于测试。
Why 'com_maxfps 250x' uncaps Quake Live's frame rate17 days agohttps://marco-nett.de/blog/why-com_maxfps-250x-uncaps-quake-lives-frame-rate/一次 Discord 社区活动涉及玩《Quake Live》,促使作者检查游戏设置和刷新率。作者发现了一个漏洞:将 com_maxfps 设置为 '250x' 绕过了 250 FPS 的上限,允许高达 1000 FPS,这是因为 Cvar_ParseInteger() 中的解析错误。分析显示,这个漏洞的发生是因为 strstr() 错误地将 '250x' 识别为十六进制字符串,导致 sscanf() 失败并返回 0,而限幅操作使用的是浮点数值(250.0),而不是整数值。该漏洞是《Quake Live》特有的,因为《Quake 3》使用 atoi() 进行解析,并且没有发现其他 cvars 利用此问题。
Protocol Prying: Vulnerability Research in AirDrop and Quick Share24 days agohttps://arxiv.org/abs/2606.26967首个针对苹果AirDrop和谷歌/三星Quick Share近场文件传输协议的系统化安全研究,该协议被超过50亿台设备使用。反向工程了AirDrop的七层状态机和DVZip压缩算法,并构建了AIRFUZZ用于协议感知模糊测试。发现了六个漏洞:其中三个在AirDrop(如Swift拒绝服务攻击、XML递归漏洞),两个在三星Quick Share(如加密绕过漏洞),以及一个在谷歌Windows版Quick Share(堆区释放后使用漏洞)。通过负责任的信息披露,获得了苹果、三星和谷歌的公开致谢,其中一个漏洞还获得了漏洞赏金。
Reverse-engineering Codemasters' BIGF archive format in Rubya month agohttps://davidslv.uk/2026/06/30/reading-binary-in-ruby.htmlRuby的字符串可以用作字节缓冲区,这使其适合用于逆向工程二进制文件格式,特别是结合`File.binread`和切片操作。`String#unpack`方法是Ruby中解码二进制数据的关键工具,支持指定整数、浮点数及其字节序的指令,并且由于是C语言实现而运行速度快。Ruby允许无需外部依赖地读取二进制文件,利用标准库功能处理诸如解析头部、目录和数据段等任务,并提供REPL支持以便交互式探索。文章详细解析了Codemasters的BIGF归档格式,包括处理不同的目录布局、通过位模式分类记录,并解决了NaN值和字节序等问题。Ruby的人性化特性,如字符串切片、NUL终止字符串处理和清晰映射规范的代码,使其在逆向工程任务中非常有效。
FSF Librephone update: Ensuring freedom, one blob at a timea month agohttps://www.fsf.org/bulletin/2026/summer/ensuring-freedom-one-blob-at-a-time自由软件基金会(FSF)支持GNU项目,该项目创建重要的自由软件,并激励人们倡导软件自由。FSF启动了LibrePhone项目,旨在逆向工程移动系统芯片中的非自由固件模块,重点关注WiFi、蓝牙、NFC和蜂窝通信的无线电固件,以推动手机自由。首席开发者Rob Savoye从200多个Lineage软件包中提取固件,处理了85GB的文件,并发现设备间共享的软件,加速了项目进展。尽管面临专有基带固件和数字权利威胁等挑战,FSF仍持续开发自由软件,每一个被解放的固件模块都代表着进步。自由软件驱动了互联网服务器的三分之二、全部500强超级计算机以及98%的代码库,并在个人设备上广泛应用,这彰显了四项自由的深远影响。LibrePhone是一个需要时间、资金支持和志愿者的长期项目,类似于GNU项目,旨在实现自由的移动电话计算。
Apple Neural Engine: Architecture, Programming, and Performancea month agohttps://arxiv.org/abs/2606.22283苹果神经引擎(ANE)是一种固定功能矩阵加速器,用于Apple A11至A18以及M1至M5芯片中。它可通过Core ML访问,但本文通过直接测量和静态分析,对其架构、编程和性能进行了逆向工程研究。文档涵盖数据路径、屋顶线模型、调度路径、编译器、磁盘程序格式、权重压缩以及内核驱动程序/固件。在M1和M5芯片上进行了直接测量,相关声明被归类为实测、反编译推导或预测结果。文中描述了一个未公开的用户空间可调用路径,仅供研究和测量使用,而非用于发布软件,Core ML仍是官方支持的途径。