游戏引擎客户端代码保护技术的需求分析和概念原型分析

在听完老师从多方面并结合案例对软件工程的一些基本概念进行透彻的讲解后,在这次的作业中,我们要以自己的工程实践项目为例来分析需求和概念模型。

为了便于读者理解,这里我们先回顾一下知识点

1. 基本概念的回顾

角色: 角色代表的是直接或间接使用这个系统的用户或系统、设备。在面向用户的产品中,角色可能是人,比如学生,在面向技术的产品中(比如 broker,mq),则角色可能是客户端,业务系统。

用例: 用例(Use Case)的核心概念中首先它是一个业务过程(business process),经过逻辑整理抽象出来的一个业务过程,这是用例的实质。

业务过程就是在待开发软件所处的业务领域内完成特定业务任务(business task)的一系列活动。用例的几个基本要素如下:

  • A use case is initiated by (or begins with) an actor. 一个用例应该由业务领域内的某个参与者(Actor)所触发。
  • A use case must accomplish a business task (for the actor).用例必须能为特定的参与者完成一个特定的业务任务。
  • A use case must end with an actor. 一个用例必须终止于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。

可以理解为角色能够在系统上能够执行的动作,它描述了系统的所有功能以及角色要怎么使用这个系统

建模: 用一些形式化的语言去描述现实世界中的问题,让问题的定义更清晰易懂无歧义,有利于用多种方法去解决

需求: 需求就是作者,用户,其他利益相关者对这个项目的期望,简而言之就是确定这个项目要做什么,要达到什么样的效果。

需求分析:  需求分析师对用户期望的软件行为进行表述,并进一步用对象或实体的状态、属性和行为来定义需求。其实就是用一些系统的方法去采集大家的需求,全面客观地定义和描述需求。常用的进行需求分析的方法包括原型化方法和建模的方法。原型化方法可以很好地整理出用户接口方式(UI,User Interface),比如界面布局和交互操作过程。建模的方法可以快速给出有关事件发生顺序或活动同步约束的问题,能够在逻辑上形成模型来整顿繁杂的需求细节。对于建模的方法,具体包括用例建模、业务领域建模和业务数据建模,利用这些模型即可较为直观的反映出软件系统设计的业务流程和模块功能,能让我们对整个系统一目了然。

 

2. 工程实践项目介绍

我所做的的项目是游戏引擎客户端代码保护技术的研究, 其具体包括OLLVM代码混淆技术研究,脚本保护和运行环境监测等三部分内容, 主要部分是了解代码混淆的一些技术与原理,同时做定制化修改,混淆还原相关内容,。从具体内容可以看出,这个项目并不是很适合用来做这方面的分析。但任何项目都是有它的出发点的,也就是由背后的需求所驱动的。从这个角度来看,任何项目都可以去做这方面的分析,所以接下来我将从需求,用例,业务类图,数据模型,概念原型等角度去分析。

 

3. 需求

21世纪是信息技术不断发展的时代,软件的发展日新月异,几乎每一个行业都离不开软件。软件应用的范围越来越广,无论在生活、学习还是工作中,软件的使用一直陪伴着人们。可见,除了衣、食。住、行外,软件作为“用”的重要组成成分,也是人们生活中不可或缺的,它为人们的生活和其它行业的发展起到了根大的促进作用。在软件行业发展的同时,但有些人为了追逐利益,对软件的内部代码进行篡改、拷贝和逆向分析。盗版软件给社会造成的危害有以下几个方面:

(1) 软件盗版是对软件专利所有人的一种侵权行为。

(2) 任意一个行业都应该有其固有的健康的运作和税收流程,在软件领域也是如此,但是软件盗版行为却破坏了这一-切,软件盗版商逃避纳税,将正规软件逼入绝境,给个人、公司甚至国家带来了难以估量的损失。

(3) 盗版软件的用户得不到售后服务,使用过程中遭遇的风险只能自己承担。

(4) 盗版软件可能夹带病毒,会威胁到数据安全,给用户造成损失。

(5) 盗版软件不能及时更新,会使软件修复滞后,在一定程度上影响用户对新事物的认知。

软件盗版现象日趋严重,根据最近的数据显示:亚洲地区成为盗版的重灾区,2016年亚洲地区有近70%的用户在使用盗版软件,其中PC端盗版软件的使用率为65%,移动端盗版软件的使用率为30%,造成近150亿元的损失。其中,中国是亚洲地区使用盗版软件最严重的国家之一,使用比例近80%11。除此之外--些人还可以通过逆向工程对软件进行逆向分析,从而得知软件中的重要信息,近几年来,由于软件信息被盗而造成的损失就达2000亿元间。软件保护对维护正规软件公司和广大消费者的利益意义重大。想要做到有效地保护软件,除了需要政府完善相关法律法规外,各个学校和企业也要加强软件保护方面技术的研究,使软件公司和软件用户的损失降到最低。因此在这一背景下,软件安全问题也越来越值得重视。代码混淆技术作为一种成本低且效果好的软件保护方法应运而生。

用户对于代码混淆技术的需求就是在结果正确且不过多影响运行效率的前提下让代码结构变得复杂,增加逆向的难度。

4. 用例

用户一般就是程序员, 以OLLVM为例,他共有三种混淆功能,分别为指令替换, 控制流展平和控制流伪造。用户可通过这三种功能来对

 

代码进行混淆。

 

5. 业务类图与数据模型

业务类图大概如下

        

 

 数据模型大概如下

             

6. 概念原型

概念原型就是用例+数据模型。具体在本工程实践项目中就是编译器接受用户的代码,中间调用代码混淆的函数去混淆代码,最后输出混淆后的代码。

posted @ 2020-12-15 18:15  三丁目的夕阳  阅读(218)  评论(0)    收藏  举报