嵌入式系统设计实验报告
班级:
学号:
姓名:
成绩:
指导教师:
20120616 武俊鹏刘书勇
实 验 报 告
哈尔滨工程大学教务处制
实验一:软硬件实验环境配置实验
一、 实验目的
本次实验主要是要求信息安全专业学生熟悉常用的保密泄密分析软件,及其环境配置等工作。本次课通过破解二进制文件使学生掌握常用的代码分析工具,从而为以后进行造成泄密的系统漏洞进行分析研究奠定工具基础。
二、 实验环境(实验所使用的器件、仪器设备名称及规格)
装有Windows XP sp2 的操作系统,有Visual C++6.0 编译环境,另外需要安装IDA,
OllyDbg, LordPE、UltraEdit 等软件。
三、 实验任务及其要求
本实验就是破解二进制文件,使学生掌握常用的代码分析工具,从而为以后进行造成泄
密的系统漏洞进行分析研究奠定工具基础。
四、 实验过程及分析
1) 在 VC6.0下运行附录中所给的C源程序。我们可以发现只有输入正确的密码1234567才能得到密码验证的确认,不管密码输入正确与否,能否跳出循环直接取决于main函数中的If 判断
2)打开 IDA,把由VC6.0 得到的.exe 文件直接拖进IDA,稍等片刻,IDA 就会把二进制文件翻译成质量上乘的反汇编代码,默认情况下,IDA会自动识别出main函数,并用类似流程图的形式标注出函数内部的跳转指令,如果按F12,IDA会自动绘制出更加专业和详细的函数流程图。
3)在 IDA 的图形显示界面中,用鼠标选中程序分支点,也就是我们要找的对应于C 代码
中的if 分支点,按空格键切换到汇编指令界面,光标仍然显示高亮的这条汇编指令就是刚才在流程图中看到的引起程序分支的指令。可以看到这条指令位于PE文件的.text 节,并且IDA 已经自动将该指令的地址换算成了运行时的内存地址VA:0x004010C9。
4)选在关闭 IDA,换用OllyDbg进行动态调试来看看程序到底是怎样分支的。用OllyDbg把PE文件打开。
5)找到 main 函数调用后,按F7 单步跟入就可以看到真正的代码了,我们也可以按快捷
键Ctrl+G直接跳到有IDA得到的VA:0x004010C9处查看那条引起程序分支的关键指令。
6)选中该指令,按F2下断点,成功后,指令的地址会被标记成不同颜色,按F9 让程序运
行起来,这时候控制权会回到程序,OllyDbg 暂时挂起。到程序提示输入密码的Console界面随便输入一个错误的密码,回车确认后,OllyDbg 会重新中断程序,取回控制权。
7) 密码验证函数的返回值将在 EAX 寄存器中,if()语句通过
TEST EAX,EAX
JE XXXXX
两条指令实现。如果我们把JE 这条指令的机器代码修改成JNE(非0 则跳转),那么整个程序的逻辑就会反过来:输入错误的密码会被确认,输入正确的密码反而要求重新输入!也可以用另外一种方法:把TEST EAX,EAX 指令修改成XOR EAX,EAX 也能改变程序流程,此时不论正确与否,密码都将接受。
8) 双击 JE 这条指令,将其修改成JNE,单击"Assemble"按钮将其写入内存。
9) OllyDbg 将会变指令翻译成机器代码后写入内存,原来内存中的机器代码74(JE)现在变成了75(JNE)。而以上只是在内存中修改程序,我们还需要在二进制文件中也修改相应的字节,这需要用到内存地址VA 与文件地址之间的对应关系。用LordPE 打开.exe文件,查看PE文件的节信息。
11)跳转指令在内存中的地址是VA=0x0040106E 按照VA与文件地址的换算公式:
文件偏移地址=虚拟内存地址(VA)-装载基址(Image Base)-节偏移
=0x0040106E-0x00400000-(0x00001000-0x00001000)
=0x106E
也就是说这条指令在PE 文件中位于距离文件开始处106E 字节的地方。
12)用UltraEdit 按照二进制方式打开crack_me.exe 文件,按快捷键Ctrl+C,输入0x106E 直
接跳到JE 指令的机器代码处,将这一个字节的74(JE)修改成75(JNE),保存后重新运行可执行文件,原本正确的密码"1234567"现在反而提示错误了。
五、 实验结果总结
思考题:现在主要的软件破解技术是盗版技术,它主要分为动态跟踪分析和静态分析两种,分别用ICE和DEDE工具来实现。同时还可以使用跟踪软件,此=另外用dos命令也能破解一些低级软件,可以利用冰刃辅助软件。对比以上几种方法,盗版可以破解较高级的,而且应用较为广泛,其余两个破解低级一些的,破解的关键在于巧妙设计断点,寻找关键代码段。通过本次实验我们熟悉了常用的保密泄密分析软件,了解了其环境配置,为接下来的实验打下了良好的基础。
实验报告一软件简介Vensim由VentanaInc开发该软件提供了强大的Windows界面下的编辑环境为用户提供友好的图形界面是…
课内实验报告课程名系统工程任课教师专业学号姓名二一二至二一三年度第1学期南京邮电大学经济与管理学院1234567891011121…
系统工程仿真实验报告姓名蒋智颖学号110061047成绩实验一基于VENSIM的系统动力学仿真一实验目的VENSIM是一个建模工具…
《嵌入式系统》实验报告姓名:学号:班级:湖南工业大学电气与信息工程学院20xx年x月实验一ARM汇编指令实验1一、实验目的1.初步…
重庆航天职业技术学院课程作业课程名称嵌入式系统专选班级学号姓名成绩前言嵌入式系统是基于单片机的一种升级版它是以应用为中心以计算机技…
桂林理工大学嵌入式综合设计实习报告学院信息科学与工程班级计算机20xx1姓名周杰学号3100717102指导金红日期20xx年1月…
嵌入式系统设计实验报告班级学号姓名成绩指导教师1实验一11实验名称博创UP3000实验台基本结构及使用方法12实验目的1学习嵌入式…
嵌入式系统实验报告姓名:##学号:##班级:计算机科学与技术非师范121班实验一LCD控制一、实验目的1、初步掌握液晶显示屏的使用…
本文由法之然贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。哈尔滨工程大学16组成员:宋斌…