从许霖案和soff案中发现的有趣问题
写本文的目的不是跟潮流或者引人眼球,而是突然发现了几个有趣的问题。
首先我们看许霖案。案情想必大家也清楚,工行的柜员机出问题了,取1000元只扣1元,于是一个叫做许霖的小伙子就取了17.5万,然后被抓住判了无期。有人就黑色幽默地说用171次才取了这么一点钱,就这种没出息的样子也该判无期。我们不是法律人士,当然也不会去找什么条款,但是作为一样是靠“逻辑”吃饭的程序员,我们可以从逻辑的角度来做一点分析。首先我们来看许霖“作案”的顺序流程:
- 去银行取款
- 柜员机处在故障状态
- 取款171次,获得17.5万
- 潜逃
- 被抓获
关注过此案的朋友应该注意到,所有的分析文章都是从第3点开始分析的,有说什么柜员机是共犯啊、潜逃中间曾经要联系还款啊、还有什么自首、什么质疑金融机构的定义什么的,不过我看杀伤力都不算大。从技术的角度来看,其实第2点最为致命:如何证明柜员机处于故障状态?
首先我们要找一种可能性,就是柜员机取款1000扣1元算作是“正常工作”的场景。我想大家都知道商场会经常搞促销活动,比如“买一送一”什么的,那么银行有没有可能“促销”呢?如果是一种“正常”的“取1送999”的话,许霖就是无罪的。那么控方如何来证明这个柜员机确实是故障状态呢?最有力的证据应该是柜员机生产商提供的"该批次"柜员机的“产品说明书”,或者提供“当时”由工行和厂商联合认定的作为合同附件的“需求说明书”。
其实归根到底,就是“软件BUG的认定问题”。如何来认定一个软件的行为属于“BUG"还是正常的功能,唯一的标准就是合同随附的“需求说明书”。不过从中国IT现状来看,我想控方99%是提供不出这个东西的。由此引出了附加的问题:
- “厂商已经如数赔偿”能不能说明导致许霖取款的漏洞就是BUG?
- 没有该批次的说明书,用其他批次的说明书代替是否可行?或者现在开“证明”来承认是BUG,是否有效(有没有串供嫌疑)?
- 柜员机有没有“调试模式”以便来每次放款之后测试取款功能正常?如果有,是不是可以说明这就是管理者想要提供的“优惠”?
总结一下就是:需求说明书其实真的很重要。
附加说明:前两天出了一个英国的柜员机“买一送一”事件,但是俺确实是在之前去WC的时候先想到这个问题的
其次我们来看soff案,现在一审宣判出来了,我们不说什么“tx过河拆桥”、什么“司法独立”等等意义不大的话,只从技术方面来谈这个问题。这个案子技术上涉及到了如下的几个方面:
- 使用程序外挂调用非开放功能的问题
- 未经同意发布对方程序的问题
- 擅自清除人家的广告图片问题
- 在人家的界面上插广告获利的问题
- 绑定插件的问题
soff案的起诉书里边基本都涉及到了以上的4点,而且判决书里边也差不多都对此进行了认定,那么我们就来逐条分析一下:
关于外挂问题,其实无非就是常用的3种方法,一种是微软的detour技术,直接修改函数入口处的字节码;一种就是api注入,通过修改程序入口偏移实现;另外一种就是通过公开的回调接口。其实tx自己也使用钩子截获了鼠标事件,而且去年tx的不兼容vista的事情充分说明tx自己使用了windows不支持的非公开的技术。如果说用外挂技术也可能获罪的话,tx这些算是在干什么?法院的判决把正常的技术行为看作是“非法”的,这对产业、对社会、对技术进步都是一种伤害。不过我们也庆幸,幸好M$没有出来告,否则还是这家法院来判的话,中国的软件业至少搞反病毒的都要坐牢去。至于提出什么“插件的bug被误认为是tx的bug”导致“tx被误解”之说,tx不兼容vista的那件事情,明明是tx的bug却被一些愤青上纲上线说成M$故意打压,造成了M$的名誉被损害,这又怎么说呢?
关于未经同意发布对方程序的问题,其实这个就是一个不折不扣的侵权了。现在网上出现了许多的“打包党”,把人家的安装程序解开,重新加入自己的插件再打包,无论如何都是说不过去的。你看intel为了一个.h的头文件,跟深圳东进公司打了一年的官司呢。
关于清除广告的问题,按理说应该是属于侵权,可是这个关系到一个“修改运行时代码是否合法”的问题。如果说是合法的,那么清除广告也就没问题,但是要说修改运行时代码是非法的,那么windows加载程序的时候要修改程序的入口代码地址是不是也非法?金山词霸截获我程序的api入口来获取字符串内容、看门狗拦截api调用更改我程序的运行方式算不算非法?soff如果用M$的detour库,是不是就算M$而不是soff侵权呢?如果说擅自去掉广告是修改了对方应用程序的外观界面,那么windows桌面主题算干的什么活?如果说再限定说不许修改窗口“里面”的内容,那么如果用跟随一个空白窗口的方式覆盖掉广告是否就是合法的?
关于在人家界面上插广告获利的问题,其实很难判断。如果插广告算是侵权,那么搜狗拼音、google拼音跟我的窗口一起出现一起消失,而且还打自己的logo,算不算给自己做广告呢?如果说像拼音那样的独立窗口就不算,其实soff也用的是自己的独立窗口啊。
至于绑定插件,只要不是用别人的东西来打包,插件不是强制安装而且无法卸载的话,我看也没有什么问题嘛!
总结一下就是:让外行来判定技术的对错问题,伤害太大!
全文的总结:两个案子都是涉及到广大老百姓每个人的切身利益密切相关,同时又都是争议极大、可判可不判的案子。对照杨善除恶、扶助弱小的法律目标:
- 如果许霖案要判了,无非就是大家以后不碰柜员机多吐出的钱而已;但是soff案判了,程序员难道以后就不去深入到系统去编程?还是永远只用公开的api?如果不让广大的程序员深入专研技术,国家的网络信息安全靠谁去保卫?靠城管吗?
- 如果许霖案不判,以后银行就要改进工作制度,软硬件的订购行为就会标准化。如果soff案不判,tx就会想办法用“不作恶”来吸引用户,加强软件测试并且提供更好的操作体验。
我想,相对于以上的两种分析,都不判对社会的促进最大,而判了,则是继续养了一群懒人,并且促使他们躺在判决书上继续懒下去。
![老翅寒暑](https://images.cnblogs.com/cnblogs_com/BigTall/46728/o_qrcode-bigtall.png)
公众号:老翅寒暑