“你做技术的,就是一根筋。”有几位前同事曾这么评价过陈士留,而他听及这些,只是腼腆地笑一笑,而后就技术细节和构想,进入新一轮的沟通中。

危险游戏角色介绍(人物游戏安全痴汉)(1)

FairGuard(法嘉德)创始人&CEO陈士留在游交会上做主题分享

陈士留之前是网易某部门反外挂服务负责人,现在则是FairGuard(法嘉德)创始人&CEO。他大多数的时候很温和,一旦涉及到技术时,却会执拗地像一头犟牛。

刚和陈士留接触的人,会非常不适应,用一个词来形容就是"至于"吗?而和他打过多次交道,或者熟悉他的人,都会明白陈士留的"执拗"——他对技术有追求,有着自己的一套高标准要求。

正是这种执拗,才让陈士留从0到1主导了国内多个技术指标领先的网易游戏保护项目,并成功对外商业化,年营收过千万。也正是这种执拗,又让他义无反顾地选择在疫情期间创立FairGuard公司,推出全新的智能反外挂服务,用自己的能力为更多的游戏玩家、游戏公司带来“FairGuard”——守护游戏的公平。

下面,就由“TMT主题曲”来带领大家认识下这位在游戏反外挂领域有着不一样追求的技术人——陈士留。

1."痴汉"陈士留

在日本,"痴汉"是一个贬义词。而在中国,"痴汉"则成了一个中性词,指对某人或某事产生痴迷的状态。梁启超在《明季第一重要人物袁崇焕》里提及:"程氏又评袁督师之为人曰,举世皆巧人,而袁公一大痴汉也。"梁启超这里所说的"痴汉",则是谓指真挚的人。

在“TMT主题曲”(Lookdute)看来,陈士留“执拗”的背后是对计算机技术发自内心的“痴”。这么说的原因,则是源自他执著追求计算机技术和安全行业的经历。

2018年的云创大会上,网易于国内首家推出了手游智能反外挂,服务覆盖99%的各类游戏外挂,主动防御能力达95%。犀利数字的背后,则是陈士留多个技术创新,比如在国内率先推出第三代U3D函数级加密、可热更U3D资源加密、防协议脱机功能等。而让知情人震惊的是,这款手游智能反外挂服务其“主刀医生”,或者说是主导者的初始专业居然是材料学,一个材料学专业的人是怎么在游戏安全领域取得这么大成就的?

“TMT主题曲”沟通得知,陈士留对计算机技术有天然的喜爱,因此他在本科阶段,就看了大量的计算机方面的书籍。到了研究生阶段,他又把网络工程师的证书考到了手,同时他也把计算机相关的底层系统理论融汇贯通,可谓是打通了“任督二脉”。在从事第一份工作的两年里,他在高质量完成本职工作后,把剩余的所有时间都拿来钻研技术、实践之前所学。与之形成鲜明对比的是,他周围其他人的空闲时间大多是用来打游戏、追剧、潇洒,而他在安全研究上往往一不小心,就搞到了凌晨两三点……

为了能够早日来到安全行业,他在确定可以拿到华为Offer的前提下,却毅然决然地选择去了杭州某个做反病毒网关的小公司,而做这个选择的原因只是想尽快做自己的安全研究……

正是对技术和安全行业的“痴”,为陈士留日后取得成就奠定了基础。

2.“跟成千上万的破解者去做技术竞赛”

2018年陈士留主导研发的手游智能反外挂服务对外商业化后,帮助某客户减少了96.6%的外挂作弊数,降低了90%以上的游戏玩家投诉量,该业务营收也随即突破了千万级别。

如此出色的项目,在立项之初就有一个非常严峻的挑战——手游的反外挂很难做,而原因则是权限不对等。“端游的游戏有管理员权限,外挂能做的操作,游戏防护也可以做,属于对等的对抗。而手机上的权限不对等,外挂可以有ROOT权限,游戏防护却没有这样的权限。”陈士留在2018年的采访中指出,外挂做的跨进程、注入模块等操作,手游保护是做不了的,在他看来:“手游保护的实现难度特别大,实现思路上必须跟端游有很大不同。”

难在哪里?陈士留曾就手游反外挂服务难度剖析到:“手游保护看上去是个开发项目,实际上是跟成千上万的破解者做技术竞赛。”他说,需要在做开发的同时,主动了解和刺探最新的破解技术、手法。在速度和技术上跟破解者竞争之外,也得有预判和创新意识,让服务具有领先性。

对于当时的陈士留而言,立项做手游反外挂服务充满着太多不确定性,但他毅然还是选择离开舒适区,一头扎进去。

而从另外个角度来看,这种十分具有挑战性的项目对于“痴汉”陈士留来说是“天作之合”,正中他的“下怀”。痴迷于安全技术的他,对Web安全、二进制安全、漏洞构造等各种技术均有所涉猎。甚至在一次钻研中,他发现某个亿级新闻App可以重放实现登录,敏感地意识到这里面可能存在登录漏洞,于是挖掘出亿级App客户端的任意登录密码的漏洞,并帮助对方修复了这个Bug。也同样是某次钻研过程,让他无意中破解了某个亿级App商用核心算法……

这种痴迷,让陈士留得以解决开发过程中遇到的各种挑战,让他做到当时国内多个领先和多个创新,比如说在二进制混淆保护方面应用了多个独创性方法。“2018年那个阶段比较流行的二进制混淆方法,要么指令虚拟化稳定性不够,要么OLLVM性能开销太大,而手游保护需要稳定性和性能两者都要兼顾。”为了满足需求,陈士留研究了多个源码层面的混淆方法,各种方法互相配合,在保证稳定性和开销的同时,做到比OLLVM更好的混淆效果。

最终陈士留克服艰难险阻,于2018年年中做出了稳定、性能消耗小、兼容性强、接入简单的手游反外挂服务。

3.“善始者实繁,可终者盖寡”

——再次选择离开舒适区,选择疫情期间创业

危险游戏角色介绍(人物游戏安全痴汉)(2)

2020年4月份,官网上线

2020年4月12日,陈士留在其个人微信公众号“逆行者说”发表题为《离职一年,闭关一年,带着潜心打造的安全产品,我又回来了》的文章,正式宣告自己的回归。

在此之前,也就是2019年,陈士留选择离开已经待了8年的网易。对于下一步,陈士留花了较长一段时间的思考,探寻自己的内心:下一阶段要致力于什么,才能有成就感?才能更有社会使命?一边思考的同时,他也在闭关,修炼和打磨自己的技术内功。

2019年和2020年交接的那段时间,陈士留经历了一些事,也顿悟了一些东西,他突然清晰地知道下一阶段自己要成为什么样的人,想要达成什么。陈士留如涅槃重生般,一下子就有了方向、信心和为之不断坚持的动力。

“做出更强的手游保护产品。”他复之补充,无论是功能、安全强度、性能的指标上都至少要做到国内领先。为什么是这个目标,陈士留在夏日炎热下的某个咖啡馆和TMT主题曲讲述到,他认为自己应该始终坚持做反外挂,专注于自己的赛道,而不是东一把,西一把。“古语说,‘善始者实繁,可终者盖寡’ 。反外挂这个行业有不少高手,开头做得好的人确实很多,但能够坚持到底的人却微乎其微。因此,绝大多数产品一开始很牛逼,声势浩大,最后就没什么声音了……我不想成为那样的人,做那样的产品。”他用程序员那种严肃、对待技术十分认真的态度,尽量逐字逐句,反复斟酌地与TMT主题曲表达他的意思,当然在某个他认为措辞不准确的地方,陈士留也间歇思考了好一阵子。

另外,这位技术领域的“痴汉”觉得,反外挂领域不论是技术,还是产品,目前做的还是不够好,还有很大的提高空间。而更重要的是,游戏公司和游戏玩家的痛点一直存在,一直没被很好地解决,陈士留认为反外挂的发展空间和自己能有一番作为的机会还是蛮大的。他坚信,只要自己持续做,做到精了,在某个点或某个领域成为行业Top 1,就能修炼出自己的“独门秘籍”。

想清楚了后,陈士留说干就干,于2020年2月左右正式启动创业。那个时候,新冠疫情突然爆发,形势非常严峻,很多人对未来前景迷茫;另外个令人忧虑的点是,从2019年开始,创投圈投资非常谨慎,初创企业很难融到资,有不少创业者因为现金流问题,重回了职场。

危险游戏角色介绍(人物游戏安全痴汉)(3)

如此坐在电脑前,一天十五六个小时是很常有的事

面对这些外部形势,陈士留却像没事人一样,开启“痴汉”模式,一天十五六个小时都待在自己的“小黑屋”里。在TMT主题曲看来,按照陈士留资历,实际上他有着更轻松的路可走,只要再去个互联网巨头,年薪百万只是个起步……

4.坚持住,破除自己的“技术茧房”

有人说,人生核心的两件事无非是两点:想清楚 坚持住,TMT主题曲深以为然。没有人天生就是当500强CEO的料,对于绝大多数人来说,都是需要思考 规划的,你越早想清楚,就越早可能让理想变成现实。然而光有思考和规划是没有用的,你不坚持住,是不可能达成结果的。

在想清楚后,陈士留遇到的就是各种“坚持住”的事。他在采访时向TMT主题曲坦言:“如果是技术上的问题还好,自己热爱的领域,认真琢磨下,总是能‘手到擒来’。现在创业了,不能只关心技术,技术之外有很多是自己不擅长的,需要自己去坚持和克服。”

陈士留需要破除自己的茧房,技术之外再向外走。最典型的“坚持住”就是如何寻找合作伙伴、说服合作伙伴。“要说服别人不拿工资,分得的股份最终会得到比工资更高的回报,对我来说是比所有技术难题难上一万倍的事。”陈士留说,就算合作伙伴认同项目前景,而且他们也愿意只拿股份、不拿工资,但他们能否坚持得住,也是一个问题。

“就如同恋爱一样,交往的时候彼此都认为对方是唯一,是陪伴一生的人。然而开始同居,深入到生活的细节后,不少深信不疑的爱情就败给了激情之后的平淡。这不是不爱了,而是来自不同家庭背景和人生经历的两个人,光有爱是远远不够的。没什么背景的创业和恋爱是一样的,创业伙伴光认同项目前景只是第一步,能否在接下来的‘平淡期’,克服收入上的‘裸奔’,创业过程心理上的落寞、社会中的浮躁、家庭里的质疑等各种因素,是个颇具挑战的事。”

另外个则是在外包上,由于启动资金并不充足,再加上工作量太大,因此有一部分非核心的工作是交给外包进行的,陈士留以为付钱就能把事做成的,想不到的是这里的坑特别的多。体现在两点,一个是交付时间一拖再拖,约定一个月交付的,一个月之后连初版都没有,最后陈士留只能在疫情期间提出:“要不,我拿着合同去你们公司吧?”;再一个是交付质量跟沟通的差距非常大,而对方再交付的内容,又是另外一种敷衍……

陈士留说,虽然中间有很多失落和挫折,但自始至终都没有动摇他坚持要把产品做下去的决心——“即使是一个人也一定要把产品做出来”。抱着这样的态度和决心,反外挂项目起步工作也做得七七八八了。

或许,正是这种坚持不懈的精神打动了他人,也或许是被他在技术上的“痴”而感染,相信他一定可以做成国内领先的手游反外挂产品。后面他接到了一个前同事主动打来的电话,愿意加入一起干,见面细聊后,发现各个方面相当契合。再后来,又找到一个朋友加入,一共三个人。虽然人依旧不够,但都是核心,手游反外挂项目也能走上正轨,勉强运转起来。

虽然核心人员具备了,但并不意味着接下来就是坦途。“为了在手游反外挂上达到国内领先的指标,我们使用了很多新的技术,甚至是全网独家的技术,因此也踩了很多坑,花费了非常多的时间在填坑上。当疫情爆发,很多人在家无聊打发时间的时候,我们一直在紧张地每天十多个小时连轴转……”

5.“底层基础技术水平,决定着上层安全产品强度”

——深厚的内功 “4”点巧妙切入,成就懂外挂的智能反外挂服务

危险游戏角色介绍(人物游戏安全痴汉)(4)

FairGuard手游安全服务的三大模块

今天,陈士留创建的FairGuard手游反外挂服务包括引擎加固(Unity、Cocos和UE)、安全防护(防破解、反外挂和防网络攻击)、安全运营(智能威胁感应)三大模块。产品服务经过数百款外挂实战对抗检验,不到半年时间产品就已迭代数十个版本,安全防御能力也已达到国内外反外挂的顶尖水平。

短时间内成为反外挂领域的弄潮儿,除了陈士留深厚的功力外,也得益于他在反外挂四个点的切入:深入操作系统底层、深入研究游戏引擎、让防破解更全面,以及让反外挂具备真正的智能。

“越底层的接口代码,越不容易被Hook篡改;而混淆、加密强度越高的代码,也越难被逆向分析……”陈士留认为,底层的基础技术水平,决定着上层的安全产品强度。因此他带领团队深入研究操作系统底层,从系统底层API出发,甚至手写汇编,实现最基础的功能,再配合私有的代码混淆技术/虚拟化技术,全方位保证基础功能的可靠性。在这个过程中,陈士留甚至还研发了国内独有的So无导入函数加密(背后的认知和思考,可查看FairGuard官方公众号文章《FairGuard业界首创无导入函数SO加壳》),来保护代码安全。

在游戏引擎方面,陈士留的团队深入研究了常见的游戏引擎,最终实现了与引擎底层紧密耦合的加固功能(比如说独有的第三代Unity DLL架构虚拟化,背后的认知和思考,可查看FairGuard官方公众号文章《Unity Mono DLL的破解及FairGuard第三代保护方案》),从而实现了两个领先优势:更强大的防护功能,以及不易被破解者摘除保护功能。前者举一个典型的例子是,他们实现了国内独有的支持Android/iOS双平台的Unity 3D Assetbundle资源加密功能(进一步解读:Unity/iOS Assetbundle资源内存动态分块加密方案);而”不易被破解者摘除保护功能“的作用则是,如果破解者尝试摘除FairGuard手游反外挂服务保护功能,引擎代码就会被破坏,直接导致破解的游戏根本无法运行。

防破解上,基于对市面上不同类型游戏遇到破解的研究,陈士留团队提炼出破解方向进行防御,因此在可靠的基础功能上实现了一系列防破解功能,比如防盗版、防内购破解、反调试、防内存篡改、防地理位置篡改、反ROOT反越狱、加密游戏资源、加密游戏美术资源和数值配置文件(防止被盗用、抄袭)……

“数据之间是有逻辑在的,这个数据究竟是有什么意义,结合其他数据能定位一个结果来的。”陈士留表示,他们把人对数据的洞察,体现到服务端上的逻辑上了,研发出了懂外挂的反外挂服务,实现真正的智能。因此FairGuard除了拥有传统反外挂的功能外,是可以通过后台大数据自动发现异常,有效打击新型外挂和变种。

6.之前的辛苦,反而是后面酣畅淋漓的绝佳铺垫和衬托

这“4”点的巧妙切入,对于经历其间的人,可谓是尝尽了“百味”。

陈士留和TMT主题曲讲述了他在技术上苦思冥想时的一个片段:“开发过程中,尤其是开发独有功能的过程中,经常碰到问题,有的时候真的没头绪。任何地方都会去怀疑,去尝试,会想着各种方法。”有次陈士留的妻子带着孩子去父母家,为了能够专注解决问题,他就一个人留在杭州,从一早不间断尝试到了凌晨一两点,而中间只有一杯菊花茶(去火)、十几部手机(为了调试)、一台配有机械键盘的台式电脑,以及边上随手可取的方便食品。

“那你不觉得累吗?”TMT主题这么问到。“不,我反而感受不到苦。”陈士留是这么描述自己当时的感受:写代码的时候会进入一种纯粹状态,外在的一些东西反而关注不到,当然家人也会劝我休息两天,或者说别那么拼了。“实际上对我而言,如果问题能够及时解决,便是休息。因为会觉得十分畅快,之前所谓的辛苦,反而是后面酣畅淋漓的绝佳铺垫和衬托。

问题的解决之道,除了努力之外,也十分依赖技术人的功力——是否具有“感觉”。陈士留也谈及了自己的第六感:“解决这些难题时,有时个人感觉各个点都比较吻合了,自我感觉可以,在大多数情况下的确可以。有的时候写出来的东西很顺利,但感觉总有哪里不对,哪怕测试的时候能跑起来,但我还是不断去怀疑。事实上,大多数也都是表面的顺利,后面隐藏着许多坑,不填个一两个星期的坑,是不太可能完美跑起来的。”

陈士留曾在采访中谈及很炫酷的完全不依赖API的某功能,解决过程在TMT主题曲看来,也是一种“痴”所带来的第六感的体现。他首先谈及研发这个功能时的构思,他说大家都觉得API是必须的,但大多数人被常规囿住了,没有人想过不要API。因此,他依赖之前的积累和经验,成功解决了没有API第一个函数是怎么获取的问题。这个背后是痴人陈士留痴迷的结果,他反复看安卓源码,让SDK加壳烂熟入心。由于安卓各版本都不一样,尤其是Android 4.4和Android7、8都不一样,因此要找到具体的原因,就要求每个系统的源码都要看,并且理清楚,然后再把握结构和时机——即在什么时机把地址给填回去,你要找到一个恰当的点和时机。这个时机如何把握,如何平衡各个方面的因素,就十分依赖理解深度和长期琢磨形成的个人感觉。

这种能力,又恰当好处的可以用在处理iOS加壳上的Bug(所以他们的iOS加固服务特别好),陈士留解释说,iOS加壳崩溃是可以看出来的,但由于不可调试,造成崩溃的真正原因,往往和看到的不一样。所以,这里要有预判和总结,才能慢慢找到原因。值得一提的是,在这个过程中,陈士留还顺手写了一个自动化工具,能够自动化分析和比对,加速问题定位过程。

7.结束语:如果努力了依旧失败,将无怨无悔,因为这足够了

陈士留说,FairGuard建立之初即定位为技术驱动型公司,深耕技术,致力于打造业界顶尖的游戏加固和反外挂产品。因此,下一步以及将来一贯的重点,还是进一步研发技术,来打造更有创新、性能更强、效果更好的产品。他说,基础的、性能、功能差不多的,客户很难感知产品好不好,也就不会去用或者更换已有的服务,只有具有特色的产品,才能吸引到更多的客户。

技术之外,陈士留透露到,自己另外一个重要工作是融资,希望借此补充资金和实现更好、更快的发展。“反外挂上的智能逻辑很多、很复杂,与围棋、语音处理的思路是不一样的,因此想要进一步打造懂外挂的智能反外挂服务,需要进一步招靠谱的能人,理清数据与数据之间的逻辑和规律,这需要比较大的投入,也很关键。”而与之表述完全相反的是,他在实际融资过程中,却拒绝掉了一些投资人。在微信上某次和TMT主题曲聊天时,陈士留解释了其中的缘由:“虽然希望能尽快完成融资,但不希望是纯财务投资,而是资源互补型的战略投资。”

那次采访的最后,这位技术痴人也与TMT主题曲就创业坦诚了心扉,他说:“对于这次创业能不能养家糊口,能不能让跟我的合伙人有个好结果,老实说,我心里完全没底。”

“我唯一有底的是,提供有价值的产品,去解决行业真正痛点的产品,并得到客户的认可——这不会错。”因此他将会尽全力打造一款极致的安全产品。

“如果这样还不能获得成功,我依旧无怨无悔,因为创业让我在技术上酣畅淋漓地‘痴迷’了一次,这足够了。”

,