巴西餐厅运营经理 Luis Henrique Vasconcelos 分享了他逆向 TronSoft 餐厅 ERP 的经历。这套系统基于 Firebird 数据库,没有 API 参考、没有 schema 图、没有社区讨论,只有一份薄薄的操作手册。他靠观察生产数据库,最终梳理出约 40 个功能模块中的 390 张表和 514 个外键。
逆向过程中踩到的 Firebird 特性坑不少:SQL 方言用 FIRST 1 而非 LIMIT;主键由 GEN_ID 生成器驱动,不同步会产生静默冲突;复合主键在并发下才暴露问题;事务可见性也需摸清 autocommit 的具体行为。最难的并非 SQL 本身,而是复刻人工关闭 comanda 时的精确写入序列,让税务开票服务(NFC-e)认可自动化操作。他通过实时监控 MON$ 内部表、对比操作前后快照,逐步摸清黑盒规则。
第一版自动化用屏幕驱动鼠标键盘操作 UI,脆弱易断。转折点是放弃模拟界面、直接安全写入 COMANDA、ITEM_COMANDA 及税务相关表,复刻厂商软件预期的 NULL 模式和字段约定,自动化才从 hack 变成真正的集成,并已稳定运行在生产环境。
他的建议:无文档不是墙而是数据集,快照对比和查询日志比手册教得更多;在冷门系统里深耕是稀缺资产;生产环境才是真正的考验。他正把同样的方法用于评估 AI 编程代理。
#开发者 #工具 #逆向工程 #Firebird #TronSoft #数据库 #SQL #ERP #巴西
@DevToolboxHub
