嵌入式系统实验报告 哈工程

嵌入式系统设计实验报告

班级:

学号:

姓名:

成绩:

指导教师:

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命令也能破解一些低级软件,可以利用冰刃辅助软件。对比以上几种方法,盗版可以破解较高级的,而且应用较为广泛,其余两个破解低级一些的,破解的关键在于巧妙设计断点,寻找关键代码段。通过本次实验我们熟悉了常用的保密泄密分析软件,了解了其环境配置,为接下来的实验打下了良好的基础。

相关推荐