前言

  虽然我是法律本科毕业,但对计算机所能实现的功能十分的感兴趣,每当遇到自己感兴趣的功能时,我都忍不住想要去了解这个功能到底是怎么实现的,因此有了契机了解了CSDN这个平台,并在此“摸鱼”了3年。后来,我进入了律师行业,因此有机会参与进一些计算机犯罪案件的辩护,我发现许多司法人员都是在不懂技术实现的情况下,仅根据技术所体现的外在功能或表现,来认定犯罪,为此我产生了一个想法,让大家了解司法机关的定罪逻辑,以及可能存在辩护空间的要点,这样大家在碰到相应的刑事风险的时候,至少能做到心中有数。
  需要额外说明的是,本人所了解的技术原理都来自书本或网络,如有误,请大家指正。
  由于我本身比较喜爱游戏,因此第一个专题我就选择了游戏外挂。

正文

  在外挂领域运用最广的应当属于内存外挂,因为为了保障网络游戏的运行流畅度,游戏开发者会允许客户端保存绝大部分的数据,保存在本地的数据必然是不安全的。在棋牌游戏中,读取内存数据,就可实现偷看对方底牌的功能。在FPS游戏中,对内存数据进行修改,就能实现散弹枪变连射的功能。可以看出,内存外挂破坏了游戏平衡,具有严重的社会危害性。对于其他玩家而言,开挂者破坏了公平竞争的游戏环境,使得他们不愿与开挂者同台竞争,导致用户大量流失。对于游戏公司来说,大量游戏玩家的流失,缩短游戏寿命,从而严重影响营收,最终导致收入无法覆盖游戏维护成本而破产。

一、司法实践中内存外挂开发者的刑事责任认定

  司法实践中一般以提供侵入、非法控制计算机信息系统的程序、工具罪对外挂制作者进行处罚。例如,连永涛提供侵入、非法控制计算机信息系统程序一案,**鉴定意见认为“天龙助手”和“天龙小蜜”程序未经《(新)天龙八部》游戏进程的授权,通过修改《(新)天龙八部》游戏运行进程内存数据、向客户端注入动态链接库文件的方式实现修改游戏运行程序的目的⋯⋯对游戏的正常操作流程和正常运行方式造成了干扰,属于破坏性程序。**依据该鉴定意见,法院认为被告人连永涛在网络上提供《天龙八部ONLINE网络游戏软件》的外挂程序“天龙助手”和“天龙小蜜”,并出售上述程序的激活卡密,其提供专门用于侵入计算机信息系统的程序,情节特别严重,已触犯刑法,构成了提供侵入计算机信息系统程序罪。
  其认定逻辑为,根据鉴定机构出具的司法鉴定认定内存外挂具有绕过游戏程序保护措施,未经游戏程序的授权,通过向客户端注入动态链接库的方式对进程内存数据进行增加、删除、修改,对游戏的正常操作和正常运行造成干扰的功能,从而认为内存外挂属于专门用于侵入计算机信息系统的程序,从而认为行为人构成提供侵入、非法控制计算机信息系统的程序、工具罪。需要额外说明的是,司法鉴定认定该外挂属于破坏性程序,是技术层面的判断,是指该外挂在客观上对游戏程序造成了干扰,而并非法律性质判断。由于该外挂不具有复制、传播性,也不会造成计算机信息系统无法运行,因此法院被没有以刑法第二百八十六条第三款进行定罪处罚。

二、内存挂的技术实现

  内存外挂的技术实现大致上分为两步,第一步,把核心代码注入游戏进程空间,即随着游戏程序一起被读取至内存。第二,执行核心代码实现例如游戏加速、自动打怪、自动回复血量等自动化外挂功能。
  注入是指行为人利用目标程序的外开放的API接口(应用程序编程接口),将核心代码加载进游戏进程空间。一般而言,游戏程序不会对外开放API接口,因此直接注入几乎不可能成功。因此外挂开发者往往会通过操作系统的开放API,来完成注入。我们都知道游戏程序是在操作系统(例如,mac系统、Windows系统)中运行的。因此一方面软件开发者开发的程序要遵守操作系统所设定的规则,另一方面操作系统会提供许多开放的API接口来供软件开发者使用。**这就意味着,内存外挂开发者可以利用操作系统开放的API作为跳板,在遵从系统逻辑的情况下将核心代码注入游戏进程。**以远线程注入为例,其核心思想是利用Windows提供的远程机制,在目标进程中开启一个加载模块线程,使外挂模块被该远线程加载到游戏的地址空间。
  核心代码所能做到的功能大致分为三种,第一,直接修改内存数据,上述讲到如果修改游戏的核心数据很容易被反作弊程序发现,但是可以修改一些不怎么重要的数据,例如,修改玩家的坐标轴来达到瞬移的目的。第二,调用游戏程序本体代码实现游戏自动化,例如调用喝血药的代码实现自动喝药,该功能一般使用Call函数来实现。第三,在游戏程序中增加额外功能的代码,例如生成游戏中不存在的武器,一般采用Hook函数来实现,但这种行为也极容易被反作弊程序发现,因此使用的较少。

三、辩护路径探析

  第一,注入行为实际上是通过开放的应用程序编程接口(以下简称“API”)实现的,那么就不存在避开或突破计算机信息系统安全保护措施的行为。API是一个抽象概念,不具有实体接口。它的作用是让应用开发者在无需了解软件提供商软件源代码的情况下,利用该软件提供者所提供的函数调用该软件的相应功能。对于软件提供商来讲,开放API能够吸引应用开发者使用,从而增加流量和知名度,因此软件提供者往往愿意提供开放的API供应用开发者使用。例如,上述提到的远线程注入,都是利用微软公司主动向社会公开的接口实现的,也就说调用该接口是被系统所允许的,那么使用该接口就不能被评价为避开或者突破计算机信息系统安全保护措施。
  第二,内存外挂的作用对象为客户端,不具有侵入计算机信息系统的功能。网络游戏由客户端与服务端构成,二者独立存在,双方通过网络进行数据交换以实现数据的实时同步。因此,可以认为游戏的计算机信息系统是由客户端计算机信息系统和服务端信息系统两部分组成。客户端即本地计算机,其所有权属于玩家,玩家自愿使用外挂,自然就谈不上侵入,是一种自陷风险行为。玩家使用外挂后,将已经增加、删除、修改后的数据通过网络上传至服务端,该过程与上传正常数据没有任何区别,只是数据并非是原来的数据。可以看出内存挂影响的只是客户端而非服务端,客观上并没有侵入服务端计算机信息系统。
  第三,内存外挂实现的自动化功能,并非是对计算机信息系统的非法控制。首先,内存挂的作用对象为客户端,而玩家对本地电脑本身就具有控制权,因此不能认为是非法控制客户端计算机信息系统。其次,内存挂影响的只是客户端而非服务端,自然无法控制客户端计算机信息系统。
  最后需要说明的是,本文由我和我的小伙伴合写。

附:
《刑法》
第二百八十五条 【非法侵入计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。
【非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
【提供侵入、非法控制计算机信息系统程序、工具罪】提供专门用于侵入、非法控制计算机信息系统的程序、工具,或者明知他人实施侵入、非法控制计算机信息系统的违法犯罪行为而为其提供程序、工具,情节严重的,依照前款的规定处罚。
单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照各该款的规定处罚。
第二百八十六条 【破坏计算机信息系统罪】违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。
故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。
单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照第一款的规定处罚。
《最高人民法院、最高人民检察院关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释》
 第二条 具有下列情形之一的程序、工具,应当认定为刑法第二百八十五条第三款规定的“专门用于侵入、非法控制计算机信息系统的程序、工具”:
(一)具有避开或者突破计算机信息系统安全保护措施,未经授权或者超越授权获取计算机信息系统数据的功能的;
(二)具有避开或者突破计算机信息系统安全保护措施,未经授权或者超越授权对计算机信息系统实施控制的功能的;
(三)其他专门设计用于侵入、非法控制计算机信息系统、非法获取计算机信息系统数据的程序、工具。
第三条 提供侵入、非法控制计算机信息系统的程序、工具,具有下列情形之一的,应当认定为刑法第二百八十五条第三款规定的“情节严重”:
(一)提供能够用于非法获取支付结算、证券交易、期货交易等网络金融服务身份认证信息的专门性程序、工具五人次以上的;
(二)提供第(一)项以外的专门用于侵入、非法控制计算机信息系统的程序、工具二十人次以上的;
(三)明知他人实施非法获取支付结算、证券交易、期货交易等网络金融服务身份认证信息的违法犯罪行为而为其提供程序、工具五人次以上的;
(四)明知他人实施第(三)项以外的侵入、非法控制计算机信息系统的违法犯罪行为而为其提供程序、工具二十人次以上的;
(五)违法所得五千元以上或者造成经济损失一万元以上的;
(六)其他情节严重的情形。
实施前款规定行为,具有下列情形之一的,应当认定为提供侵入、非法控制计算机信息系统的程序、工具“情节特别严重”:
(一)数量或者数额达到前款第(一)项至第(五)项规定标准五倍以上的;
(二)其他情节特别严重的情形。
。。。
第六条 故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,具有下列情形之一的,应当认定为刑法第二百八十六条第三款规定的“后果严重”:
(一)制作、提供、传输第五条第(一)项规定的程序,导致该程序通过网络、存储介质、文件等媒介传播的;
(二)造成二十台以上计算机系统被植入第五条第(二)、(三)项规定的程序的;
(三)提供计算机病毒等破坏性程序十人次以上的;
(四)违法所得五千元以上或者造成经济损失一万元以上的;
(五)造成其他严重后果的。
实施前款规定行为,具有下列情形之一的,应当认定为破坏计算机信息系统“后果特别严重”:
(一)制作、提供、传输第五条第(一)项规定的程序,导致该程序通过网络、存储介质、文件等媒介传播,致使生产、生活受到严重影响或者造成恶劣社会影响的;
(二)数量或者数额达到前款第(二)项至第(四)项规定标准五倍以上的;
(三)造成其他特别严重后果的。

“内存型”网游外挂的刑事责任辨析相关推荐

  1. 炸房”网游外挂的刑事责任辨析

    前言   上一期文章我们介绍了"内存型"外挂的技术原理及相关刑事责任,本期我们介绍一种在网游圈中性质作用极为恶劣的"炸房挂","炸房挂"用到 ...

  2. 网游外挂业越发成熟:上班族玩家习惯用外挂

    研发商应对手段成熟 运营商实施严密监测 政府部门加大打击力度 网游行业刚刚起步之初,游戏外挂就已经随之产生.当时,面对"外挂"网游公司甚至不知所措,受到的影响也非同小可.而现在&q ...

  3. 面向监狱编程 - 石胖子写网游外挂 (1) 请求是乱码

    " 本故事纯属虚构,如有雷同纯属巧合." ​ 0  穷中年男人的苦 - 学区房 某年,某家互联网金融公司(俗称p2p)的开发工程师石胖子.最近由于老婆闹着要给孩子买学区房,心情烦闷 ...

  4. 面向监狱编程 - 石胖子写网游外挂 (2) 加密和解密

    " 本故事纯属虚构,如有雷同纯属巧合." 0  游戏的加密 对着网游<天x八x>的网络请求数据,研究了一阵子,石胖子,才搞明白.原来游戏的请求数据使用了对称加密的算法. ...

  5. 网游外挂编写完全攻略

    一.先说一下写一个外挂需要什么条件 1.熟练的C语言知识 目前的外挂大部分都是用BC或者是vc写的,拥有熟练的C语言知识是写外挂的基本条件 2.具有很强的汇编基础 一般游戏都不可能有原代码的,必须靠反 ...

  6. 公布C#写的网游外挂源代码

    只是转贴哈,不是原创,不要问我问题,我也不太懂,只是想着好,给大家共享一下. 最近经朋友介绍开始玩   密传   网络游戏 升级升级,突然觉得太费键盘,于是自己用C#写了一个程序,想代替我的操作,自己 ...

  7. 是编写回合制网游外挂的高手请进

    小弟不才  学了点C++和一些 游戏基础==!    想做外挂       回合制的     多开游戏   自动自学打怪    做任务      思路都不懂  想请高手发表 回合制外挂的源代码     ...

  8. 《星辰变》之次世代网游启示录:变亦非变

    继<WOWO世界>后全球第二款Silverlight MMORPG页游<梦隋唐>将于5月30日面向全世界华丽开测.耗资千万打造的旗舰级ARPG武侠.写实版2.5D无端网游巨作, ...

  9. 网游已成文化产业支柱:年入600亿为电影4.5倍

    对于中国电影产业来说,2012是令人振奋的.<泰囧>成为首个票房超10亿的国产电影,全国电影总票房收入超过170亿.但比较文化创意产业另一重要组成部分--网游来说,这些数字就显得不足为道了 ...

  10. 网游如何防外挂篡改数据——客户端内存加密

    题记: 以前玩过pc单机游戏的同学,相信对金山游侠这款作弊修改器一定不陌生,玩家通过修改器可以轻松地定位.修改游戏里的关键变量,如boss血量,金钱,主角战力等数据,轻松制霸游戏.作弊修改器的原理非常 ...

最新文章

  1. JVM - 列出JVM默认参数及运行时生效参数
  2. sharepoint 2013 个人站点母版
  3. java php 等,路径 上级路径,上上级路径表示方法
  4. 红衣大炮的飞秋实现原理
  5. neo4j3.0 java使用_neo4j-java连接
  6. C语言内建函数:__builtin_XXX
  7. 使用datepickerdialog提示is undefined错误_23.5 使用视图
  8. iphone换机数据迁移_怎么一键换机?换新机迁移数据必看教程!
  9. Kaggle 数据清洗挑战 Day 4 - 字符编码(Character Encoding)处理
  10. 公因式的概念_公因式概念论文,关于也淡化概念相关参考文献资料-免费论文范文...
  11. 项目回顾-RecyclerView和CheckBox错乱问题
  12. 从零开始搭二维激光SLAM --- 基于g2o的后端优化的代码实现
  13. 在Linux下基于路由策略的IP地址控制
  14. BZOJ5222[Lydsy2017省队十连测] 怪题
  15. 阿里 OSS AccessDenied You are denied by bucket referer policy.
  16. 国内云建设普遍缺失的一环:云管理平台
  17. 虚拟机包 OVF和OVA的区别
  18. 实例004:这天第几天 输入某年某月某日,判断这一天是这一年的第几天?
  19. 世界上的第一台计算机什么样,世界上第一台计算机是什么样的
  20. 网聊记录-看看他的口才

热门文章

  1. 照片的尺寸和内存大小调整
  2. 【python】 实现排列组合公式
  3. RF射频传输,原理介绍,三分钟看懂!发射功率、接收灵敏度详解!
  4. win10重装,检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
  5. 偏差方差分解Python示例
  6. 永恒python配合什么主武器_「和平精英武器组合」游戏的主副武器应该怎么搭配?这三种配合让你战斗力提升...
  7. 伪随机数的爆破--2
  8. bzoj1597: 土地购买
  9. 超好用的搜索引擎推荐
  10. 风变python基础语法第11关_风变编程-Python基础语法