没有源代码?没问题!探讨了仅有二进制文件时创建软件功能副本的挑战。典型的软件开发依赖于源代码修改或新创建,但这个过程处理的是当原始代码不可用时所需的反向工程。文章将其视为弥补语义差距的问题,需要将原始程序的含义精确映射到现代主机系统上。这主要涉及为目标处理器的指令集创建解释器或模拟器,同时管理输入/输出设备。可行性取决于用于模拟单个目标指令所需的主机指令比率(G),通常至少为10。所讨论的技术超越了视频游戏 preservation,为老化硬件的更换提供了兼容的现代程序的解决方案。通过将原始 ROM 数据视为程序参数而非编译代码,模拟器可以更好地保持原始行为的忠实性,特别是当规范文档无法描述完整的软件操作时。
来源: Hacker News · 由HeadlinesBriefing整理摘要