虽然每位程式设计师都拥有自己独特的风格,但光透过观察程式码来推敲谁是作者,往往不太可行。而现在,我们有了更先进的方法。研究人员日前利用机器学习技术,开发出一套可以透过解析原始代码和经过编译的二进制代码,来找出原作者的系统。该系统的开发者向

虽然每位程式设计师都拥有自己独特的风格但光透过观察程式码来推敲谁是作者往往不太可行。而现在我们有了更先进的方法。研究人员日前利用机器学习技术开发出一套可以透过解析原始代码和经过编译的二进制代码来找出原作者的系统。该系统的开发者向 Wired 解释只要先提供作者撰写的程式码给该系统作为学习范例即便只是部分片段它就能解析该程式码所拥有的特征并用来辨识其它的程式码是否出自同一人之手。

为了进一步验证该系统对于二进制程式码辨识的正确性研究人员利用 Google Code Jam 的参赛作品进行测试。试验中在给予系统来自 100 名程式设计师每位 8 个程式范例作学习后系统正确辨识出作者的机率高达 96%。即便将样本数提升至 600 名程式设计师该系统依然能维持 83 的准确率。

这项技术尤其适用于辨识恶意软体的开发者并能防止犯人企图栽赃他人对于调查人员无疑是一项福音。此外该技术也能辨别出程式码中「纯粹巧合」或「复制」的部分所以也能有效应用于抄袭的相关案件之中。

往后程式设计师若不希望透露身份或许只得选择屏蔽其原始码。但对于以匿名的形式贡献原始码的社群来说这项技术的出现无疑是一个挑战。毕竟理论上现在只要将程式码公开便会暴露在被揭露身份的风险之中。也让人省思未来「追求安全」和「隐私」两者之间的平衡该如何拿捏。 Def Con

相关文章