逆向工程技术课程教学改革探讨

2018-03-09 07:43刘云本
卷宗 2017年36期
关键词:课程设置考核

刘云本

摘要:针对逆向工程技术课程较新、实践性极强、教学方法单一以及传统考核方式不适应该课程特点等问题,本文给出了一个教学与实验内容的设置方案,并提出了开卷考试并答辩演示的考核方式,并结合实际的教学案例,阐述运用实际的软件破解来教学演示和考核的优点。

关键词:逆向工程技术;课程设置;考核;答辩

1引言

近些年,随着网络技术的快速发展,网络安全成为计算机相关领域中的热点,网络空间已成为继陆、海、空、天之外的第五疆域,网络空间安全也成为保护网络疆域、治理网络秩序、维护国家和人民利益的重要领域。为了适应国家网络安全领域重大战略需求,我国国务院学位委员会、教育部于2015年6月批准设立了新的一级学科网络空间安全。该一级学科隶属工学学科门类,旨在培养具有技术创新能力和自主学习能力、目标结构机理的剖析能力、系统对抗思维和动态实战对抗能力的高层次人才。

逆向工程技术是一些高等院校计算机安全技术类专业的一门专业课程,是一门涉及计算机科学、网络技术、信息安全技术等多种学科的实践性极强的学科。该课程主要介绍Windows平台上各种调试工具的使用方法以及常见的软件保护技术。通过本课程的学习,可以了解并掌握Windows平台上的可执行程序的逆向技术,具备分析、调试Windows可执行程序的基本能力,也为进一步学习和研究网络信息安全技术的研究打下坚实的基础。逆向工程技术的相关知识更新快,是矛与盾协同发展的结果,需要教师不断学习,更新和完善相关技术,对教师自身要求也很高;学生在掌握该课程的基本知识以后,还需要不断跟踪网络上出现的新的反调试与反跟踪相关的编程技术,或者自己探索相关的技术,才能理解一些逆向的新思路。这些特点决定了在该课程教学过程中传统的理论灌输式教学方法和传统的试卷考核方式难以达到良好的教学和考核效果。

2高校逆向工程技术课程现状

笔记所在高校近年来陆续在一些专业开设了逆向工程技术课程。由于该课程与传统的以理论讲授为主的课程有较大的差异,所以以传统思路来进行教学、考核等会存在如下几个问题。

(1)由于计算机软件保护的思路的迅速发展,目前的教学内容相对陈旧、没能完全跟上学科迅速发展的步伐,难以将新知识及时的传授给学生,影响学生适应社会需求的能力。

(2)本门课程教材内容涉及面广,授课学时相对较少。逆向工程技术是一门专业性较强的课程,与前期的基础课(如汇编语言程序设计、WINDOWS程序设计、操作系统等)密不可分。鉴于这门课程自身的特点,如果没有深厚的工程经验,授课势必以描述性的内容居多,容易使学生产生厌倦情绪。且由于课程只有20学时授课时间,很多内容只能如蜻蜓点水般一带而过,这样会导致部分内容讲解不透彻,学生却反映听不太懂,一知半解,始终只有一些朦胧模糊的概念,导致上机实验时不知所措。

(3)缺乏创新能力的培养环节。无论是理论教学还是实践教学,教师只是将各知识点和操作方法教授给学生,但是学生没有独立解决问题,尤其是创新能力的培养不足,不利于学生适应社会的要求。

(4)考试形式单一,在目前的教学模式下,学生的学习效果通常是由考试来衡量,考核的角度主要是知识,而忽略了能力和品质。尽管教师主观上并不希望出现这样的局面,但闭卷形式本身的局限性成了决定性的因素;同时,以往考核只注重标准化,而忽略了学生对问题有不同的理解、看法。这种传统平面式的教学考核制度,使被衡量对象的真实成绩得不到确认,从而使学生产生了对考核的失望与迷惘。这种考核方式简单、易于操作,也能在一定程度上检验学生掌握书本知识的情况,但同时也比较片面、死板,导致学生轻视实践、不能理论联系实际和解决实际问题。

3逆向工程技术课程教学内容设置与实践改革

针对逆向工程技术课程教学与考核中存在的问题,本文从教学、实验内容设置和课程考核等方面展开讨论,给出了一个可供参考的方案。

3.1课程教学与实验内容的设置

逆向工程技术的教学内容主要是软件相关的加密、解密。加密是为了实现对软件的保护,而解密是通过逆向分析的技术对软件进行破解。为了提高学生的实践与创新能力,将教学内容分为四部分:一是Windows操作系统上编写可视化应用程序的基础知识,这是该课程理论知识的基础:二是软件调试相关的知识。软件的逆向工程离不开软件工具的支持。以理论知识为基础,侧重于实践与实际动手能力,在实验设计上应采用循序渐进的方法,学习工具的使用时以一些简单的软件为例进行逆向分析,理解计算机软件的执行过程,对于简单的保护技术进行破解。三是学习一些常见的软件保护技术,如序列号保护、时间限制、菜单功能限制和密钥文件等。四是在学~Windows PE可执行程序格式的基础上学习软件的加壳与脱壳技术。采用商业软件进行加壳可以达到低成本且保护强度大的效果。

实验内容依据教学内容来设计。第一次实验设计为熟悉主要的逆向工具的使用。逆向工具的灵活使用可以极大简化软件逆向的复杂度。第二次实验则是针对第三部分教学内容的,是对常见的软件的保护技术的破解实验。实验的一部分内容可以让学生重现教学演示时的内容,另一部分则设计为学生自己探索实验软件所使用的保护技术,并自己设计破解的方法。该部分能反映学生的对教学内容的掌握情况,也能反映学生的创新能力。第三个实验是对脱壳技术的实践。逆向工程技术实践性极强,每次四个课时的实验对于一些学生来说太少,学生还需要在课后花费时间来练习。因此,实验报告可以允许学生在一周以内上交。

3.2课程考核的方法

课程考核是确定学生能否能获得该课程学分的主要途径,更是对学生学习情况的衡量。合理的考核方式和考题可以引导学生掌握专业体系中必须掌握的基础知识。该课程实践性极强,通常形式的适于理论课程的闭卷考试不能很好的考查实践能力。实践过程中会遇到事先很难设想的问题,并且在实践过程中,计算机会给出信息显示,实践者需要收集这些信息并分析这些信息,然后进行下一步的操作。这些在闭卷考试过程中极难进行考查。因此笔者在该课程中采用了开卷并逐一答辩的形式进行考核。该考核方式可以观察学生是如何在计算机上实际操作的。在操作过程中也可以询问学生是基于什么原因做出这样的操作的。此种考核能很好地反映学生的实践能力和理论水平。

开卷并答辩的形式对试题有较高的要求。由于学生有较长的自由准备时间,一部分学生可能试图通过单纯的强记计算机的操作过程而蒙混过关。笔者设计如下几种题型:1)考查软件的逆向过程中使用的工具软件的基本知識的问答题或填空题;2)考查作为计算机相关专业主要技能的编程能力的编程题;3)考查计算机实际操作能力的脱壳破解类题目;4)考查学生后续学习能力以及资料查找能力的破解类试题。编程题要求通过编程解析PE文件格式的部分内容,达到既考查编程能力又考查学生对文件格式的理解。软件的破解和保护技术的进化是矛与盾协同发展的过程,需要不断学习优秀的思路。第四种题型就是引导学生培养此种学习能力的。

4结语

网络空间安全相关类课程很大一部分是需要考核学生的实践能力的,只是偏重程度不同。逆向工程技术课程就是一门几乎只偏重考查实践能力的课程。本文总结了笔者在近三届学生的教学过程中的经验。实际的考试成绩以及学生的评教反馈证明了该方案取得了比较理想的结果。endprint

猜你喜欢
课程设置考核
内部考核
创新完善机制 做实做优考核
展演期间基本功考核
如何考核院长是难点
公立医院 如何考核?
高职物流专业课程设置与物流岗位职业证书的有效对接
独立学院商务英语专业人才培养模式探索
家庭年终考核