致敬天才工程师与黑客:Hadrien Milano的技术遗产

本文纪念28岁早逝的杰出工程师Hadrien Milano,详述他在计算机图形学、网络安全漏洞挖掘、逆向工程及创新编程项目方面的技术贡献,包括OpenGL渲染、XSS蠕虫、密码管理器开发等实质性技术内容。

致敬Hadrien Milano

今天的帖子与我以往写的任何内容都不同:这是对一位亲爱的朋友的致敬,他在几个月前因心脏病突发不幸去世,年仅28岁。

Hadrien不仅是我相识10年的密友,更是一位杰出的工程师、软件工匠、制造者和黑客,多年来我对他高度尊敬并从他那里学到了很多。任何认识他的人都能够证明,他对所做的每一件事都充满热情。这篇文章是对他的致敬。

故事

让我从我们如何相遇的故事开始,以及我们共同经历的一些有影响力的人生事件。

相遇之前(2011年)

2011年,年仅16岁的Hadrien用Arduino连接了一堆电子部件,创建了一个“电池分拣器”。将电池放入顶部隔间,机器会测试每个电池,并将用过的电池与充电电池分开。

尽管看起来确实像爆炸引擎。截图来自(幽默的)演示视频(仅法语)。

他甚至赢得了一个相当知名的法国比赛,奖励18岁以下的发明者(《科学与生活少年》的“Innovez”)。

最初几年(2012-2013年)

我第一次见到Hadrien是在我们开始就读瑞士联邦理工学院(EPFL)时。我当时只有17岁,刚刚离开父母的家,对我来说这是一个新的国家和新的生活。Hadrien就坐在我后面,一次随意的谈话最终变成了一段罕见而长久的友谊。

经过一个学期的考试冲刺后,我们组队参加了Facebook在EPFL组织的黑客马拉松。Facebook当时对我们来说是热门科技公司,所以尽管我是个糟糕的程序员,但我们有动力做出一些出色的东西,以在那里获得实习机会。

我们最终构建了一个交互式网络应用程序,用于在派对上流媒体音乐,与会者可以从手机投票选择他们最想听的歌曲。

18岁的Hadrien(右)和我(左)在白板上画图 在最终演示前修复最后的错误 “SquareTunes”的主页 任何人都可以提议一首歌;与会者投票,得票最多的歌曲接下来播放

令我们大为惊讶的是,我们最终获得了第一名,并赢得了……一次全包费用的伦敦之旅,参加Facebook总部的黑客马拉松!我们没有赢得那场比赛——但我们带着第二名的成绩非常高兴地离开了伦敦。

Hadrien、我和团队的其他成员一起黑客“Deskamp”,一个类似Miro的交互式白板 Hadrien在Facebook伦敦办公室推销Deskamp

CourseAdvisor(2014年)

2014年底,我们必须从一长串列表中选择大学课程。我们对学生缺乏可用信息感到不满,因此我们一起构建了“CourseAdvisor”。它基本上会爬取学校的课程 curriculum,并为所有学生提供一个平台,以评论和发布关于他们课程的评论。在此过程中,Hadrien帮助我学习了Laravel PHP框架和健康的测试实践。

在巅峰时期,CourseAdvisor有700多名注册学生和800多条课程评论。不幸的是,2016年,学校不满意,要求我们关闭网站,并威胁要请律师。(Daniel C.,如果你读到这些文字——6年后,我仍然对你利用职位威胁两名只想让每个人的学习体验更好的学生感到愤怒。)虽然回想起来我们绝对不应该妥协,但当时我们还有其他事情要忙。

计算机图形学学士项目

当我们坐在“计算机图形学导论”课堂上时,我有点目瞪口呆地看着Hadrien用Open GL、光线追踪器、程序化建模以及其他至今仍让我害怕的术语做惊人的事情。

最终,Hadrien完成了最终课程项目的大部分工作,老师认为它非常惊人,以至于他现在每年都在课程开始时展示它。看下面的视频——这是一个随机生成的世界,每次运行都是独一无二的。它是无限渲染的。有湖泊、雪山、陆地、岩石、水反射,甚至云彩。

现代时期

完成硕士学位后,Hadrien在AppDynamics(现为Cisco)和Datadog担任软件工程师。在这个板上,许多与他共事过的人留下了消息、故事或照片——我觉得这些非常感人。

副项目

Hadrien是一位才华横溢的工程师,充满热情且有空闲时间。他提出了一系列令人印象深刻的副项目,这并不令人惊讶,我下面重点介绍其中一些。

“鱼喂食器”是一个你可以远程控制来喂Hadrien的鱼Gaston的设备。它暴露在互联网上, behind authentication。有时,他考虑运行每日拍卖,出价最高者将有权按下宝贵的按钮。

鱼喂食器的主页。

“Whistle Invaders”是《太空入侵者》的重新演绎版本,你通过……吹口哨来控制玩家!吹口哨音调更高,你的玩家向上移动。降低音调,它向下移动。

“Clapruptor”是Hadrien从头到尾制作的小工具。放在电源插座上,它会根据你拍手来打开和关闭电源。他甚至为这个项目制作了高质量的视频演练(提供英文字幕)。

“Clapruptor 1.0”

“Turing Wars”是一个游戏,每个玩家编写一个小型汇编程序,然后在一个实际上是虚拟机的竞技场中相互竞争!

“Turing Wars”,一个令人惊讶的复杂游戏,你的程序可以在竞技场中竞争!

“Cagificator”是一个基于网络的工具,可以输入任何人的照片,并将他们的脸替换为尼古拉斯·凯奇的脸。正如你在文章中看到的,它涉及相当多的计算机视觉工作。

“Leonardo Di Caggio”,“Cagificator”的输出

“Fun With Types”可能是我看过的最有趣的演讲之一。在JS Romandie上,Hadrien花了30分钟证明Typescript类型检查系统是图灵完备的,并展示了各种Typescript wizardry。

公平地说,除非你有计算机科学博士学位,否则你可能会讨厌这个演讲。如果你知道“停机问题”是什么,就去试试吧。

安全冠军

Hadrien并不专攻安全,但他非常擅长它。

他在我们大学的一个网络应用程序中创建了一个XSS蠕虫, after finding an XSS in the “my profile” feature。有效负载会自动通过受害者的浏览器自我传播,用“恶意”有效负载更新他们自己的个人资料。这只是为了好玩,有效负载除了传播之外不会做任何事情。

他逆向工程了一款Android游戏“Fun Run”,并设法绕过反作弊系统,重新打包带有作弊功能的版本。博客文章

他从头开始编写了一个自托管的密码管理器,带有客户端加密。Vaultage

他揭示了一种有趣的网络缓存漏洞(他最初认为是Chrome中的漏洞),攻击者可以利用它跨源泄漏Authorization头的值。博客文章

他比我更早地利用了一个CTF中的缓冲区溢出漏洞。他合著的文章实际上让我对二进制利用感到兴奋,并帮助我在这方面变得更好。

他利用了一个野外XSS和CSRF漏洞,然后发送给我一个恶意链接,将我的个人资料图片替换为尼古拉斯·凯奇的照片。

外部网站上的XSS漏洞,用于触发CSRF漏洞,导致我的个人资料图片被尼古拉斯·凯奇替换。

结论

下面的照片是我与Hadrien的最后一张照片;2022年4月30日星期六,庆祝我们的生日,就在我女儿Juliette出生两天后。Hadrien将在3天后去世。

我不后悔任何事情。我们一起度过了无数高质量的时光。他在我第一次遇见我现在的妻子时就在那里;我们一起去了多个国家旅行;一起参加了我们的第一次行业会议;一起在乐队演奏;一起毕业;一起跑步;无数次一起去滑雪。

然而,我们还有那么多计划。有那么多问题我从未有机会问他,那么多深夜对话我们永远无法进行。我很感激有Hadrien作为密友近10年。然而,我感到如此愤怒。Hadrien definitely shaped me over the years and made me who I am now。Hadrien,你将永远在我心中!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计