ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:74.50KB ,
资源ID:4578446      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4578446.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华中科技大学汇编实验报告7.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

华中科技大学汇编实验报告7.docx

1、华中科技大学汇编实验报告7课 程 实 验 报 告课程名称: 汇编语言程序设计实验 实验名称: 实验七 跟踪与反跟踪程序设计 实验时间: 2016-5-3,14:00-17:30 实验地点: 南一楼804室73号实验台 指导教师: 张勇 专业班级:电脑科学与技术201409班学 号: U201414813 姓 名: 唐礼威 同组学生: 无 报告日期: 2016年 5 月 7日 原创性声明 本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用已经在文中指出。除文中已经注明引用的内容外,本报告不包含任何其他个人或集体已经公开发表的作品或成果,不存在剽窃、抄袭行为。特此声明!学

2、生签名: 日期: 成绩评定实验完成质量得分70分实验步骤清晰详细深入,实验记录真实完整等报告撰写质量得分30分报告标准、完整、通顺、详实等总成绩100分指导教师签字: 日期:1实验目的与要求(1) 熟悉跟踪与反跟踪的技术;(1) 提升对电脑系统的理解与分析能力。2实验内容任务1:数据加密与反跟踪在实验二的基础上,增加查询前输入密码的功能,密码不对则程序退出,只有密码正确之后才能完成后续的功能。密码采用密文的方式存放在数据段中。各科成绩也以密文方式存放在数据段中。加密方法自选。可以采用计时、中断矢量表检查、堆栈检查、间接寻址等方式中的一种或多种方式反跟踪。成绩表中要有自己的名字和各科成绩密文存放

3、。提示:为了使源程序的数据段中定义的密码、学生、各科成绩能在汇编之后变成密文,可以使用数值运算符参见教材P48对变量的初始值进行变换。例如,如果想使语文成绩90分变成密文,加密算法是与密钥字符“W”做异或运算,则可写成: YUWEN DB 90 XOR W任务2:跟踪与数据解密 解密同组同学的加密程序,获取该同学的成绩。 注意:两人一组,每人实现一类加密与反跟踪方法,把执行程序交给对方解密。如何设计反跟踪程序以及如何跟踪破解的,是本次实验报告中重点需要突出的内容。3实验过程3.1任务13.1.1设计思想及存储单元分配即实验2所做的内容2.加密模块:要求提供验证密码功能加密算法设计:使用的是简单

4、的算数逻辑运算,具体是将与s异或,成绩与Bat异或,密码为Bat,采用函数(X-29H)*3对保存的密码进行编码;反跟踪功能设计:在各个模块中穿插反跟踪代码,防止破解人员利用td破解。3.1.2流程图3.1.3源程序.386STACK SEGMENT USE16 STACK DB 200 DUP(0)STACK ENDS;DATA SEGMENT USE16NUM DD 3RADX DD 10BASE DB 10D1 DB 0DH,0AH,STUDENT NAME:$D2 DB 0DH,0AH,GRADE:$PROMPT db 0dh, 0ah, please enter password:

5、$MSG db 0dh, 0ah, please input target name : $BUF DB z XOR s,hXOR s,aXOR s, 7 DUP(0) DB 100 XOR B ,85 XOR a, 80 XOR t, ? DB l XOR s,iXOR s,sXOR s,i XOR s,6 DUP(0) DB 80 XOR B, 98 XOR a, 70 XOR t,?PWD DB 3 XOR C ;密码串的长度为3,采用与常数43H异或的方式编码成密文 DB (B -29H)*3 ;真实密码为Bat。采用函数(X-29H)*3对保存的密码进行编码。 DB (a -29H)

6、*3 DB (t -29H)*3 DB 0A1H,5FH,0D3H ;用随机数填充密码区到6个字符,防止破解者猜到密码长度;IN_PWD DB 7 ;输入密码,最大长度6个字符 DB ? DB 7 DUP(0);INPUT DB 11 DB ? DB 11 DUP(0)P1 DW PASS1 ;地址表E1 DW OVERP2 DW PASS2P3 DW PASS3DATA ENDS;CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX LEA DX,PROMPT MOV AH,9 INT 2

7、1H LEA DX,IN_PWD ;输入密码字符串 MOV AH,10 INT 21H cli ;计时反跟踪开始 mov ah,2ch int 21h push dx ;保存获取的秒和百分秒 MOV CL,IN_PWD+1 ;比较输入的串长与密码长度是否一样 XOR CL,C SUB CL,PWD MOVSX BX,CL ADD BX,OFFSET P1 mov ah,2ch ;获取第二次秒与百分秒 int 21h sti cmp dx,esp ;计时是否相同 pop dx jz OK1 ;如果计时相同,通过本次计时反跟踪 mov bx,offset E1 ;如果计时不同,则把转移地址偏离P1

8、OK1: mov bx,bx cmp word ptr cs:bx,0B60FH ;是否是PASS1处的指令,其实是用于判断前面比较的;串长是否相同 jz OK2 jmp E1OK2: jmp bx db How to go ;定义的冗余信息PASS1: MOVZX CX,IN_PWD+1 cli ;堆栈检查反跟踪 push P2 ;PASS2的地址压栈 MOV SI,0 MOV DL,3 pop ax mov bx,esp-2 ;把栈顶上面的字PASS2的地址取到 sti jmp bx ;如果被跟踪,将不会转移到PASS2 db i donot know!PASS2: MOVZX AX,IN

9、_PWD+2SI ;比较密码是否相同。把输入的串变成密文,与保存的密文比较 SUB AX,29H MUL DL CMP AL,PWD+1SI JNZ ERR2 INC SI DEC CX CMP CX,0 JNE PASS2 JMP PASS3ERR2: MOV EBX,OFFSET P1 MOV EDX,1 JMP WORD PTR EBX+EDX*2 ;指向OVER db YES,get it;PASS3: ;正常功能区 lea dx, msg ; 输出提示信息 - 请输入 mov ah, 9h int 21h lea dx, input ; 读入学生, 以 $ 符号结尾 mov ah,

10、0ah int 21h lea esi, input+2 lea edi, buf xor ebx, ebx xor ecx, ecxsearch_loop: cmp ecx, num jge search_finish xor eax, eaxsearch_inner: cmp eax, radx jge search_finish mov dl, esi + eax xor dl, s cmp edi + ebx, dl jnz search_next cmp byte ptr edi + ebx + 1, 0 jz search_finish inc eax inc ebx jmp se

11、arch_inner db the future will be better tomorrowsearch_next: inc ecx imul ebx, ecx, 14 jmp search_loop db welcome to hustsearch_finish: xor ebx, ebxoutput: sub ebx,ecx imul bx,14 ; 根据目标学生下标值, 找到分数缓冲区首地址 mov si,0 mov ax, 0 mov dx, 0 mov al,buf+10bx+si xor al,in_pwd+2si add ax, ax inc si mov dl, buf+1

12、0bx+si xor dl,in_pwd+2si add ax, dx ; al = zh * 2 + ma inc si mov dl, buf+10bx+si xor dl,in_pwd+2si sar dl, 1 add ax, dx ; al = zh * 2 + ma + en / 2 sal ax, 1 ; al = 2 * al mov dx, 7 idiv dl ; al = al / 7 inc si mov buf+10bx+si, al ; avg = al ( al / 3.5) push ax mov dl, 0ah mov ah, 2h int 21h mov dl

13、, 0dh mov ah, 2h int 21h pop ax cmp al, 90 ; switch 语句 jge gradea cmp al, 80 jge gradeb cmp al, 70 jge gradec cmp al, 60 jge graded jmp gradee db my sunshinegradea: mov dl, 41h mov ah, 2h int 21h jmp pass3gradeb: mov dl, 42h mov ah, 2h int 21h jmp pass3gradec: mov dl, 43h mov ah, 2h int 21h jmp pass

14、3graded: mov dl, 44h mov ah, 2h int 21h jmp pass3gradee: mov dl, 45h mov ah, 2h int 21h jmp pass3 OVER: MOV AH,4CH INT 21HCODE ENDS END START3.1.4实验步骤1. 绘制程序流程图;2. 根据程序流程图,编写shiyan7.asm;3. 编译、链接源程序,生成可执行目标文件shiyan7.exe;4. 运行shiyan7.exe,检查程序具有正常功能;5. 输入正确密码后,键入学生,可以正常查询出成绩;6. 输入错误密码后,程序直接终止运行;。3.1.5实

15、验记录包括实验条件、输入/输出、错误和修改等信息的记录1、实验环境条件:P3 1GHz,256M内存;WINDOWS XP命令行窗口;。2、输入密码Bat后程序运行如下当输入错误的密码时程序直接停止运行,当破解人员在td里调试时,由于执行两条指令的时间远大于执行程序的时长,通过检测这一时差,假设两次计时调用间时长过长,直接结束程序,阻止了破解人员进一步破解;当破解人员利用反汇编工具运行程序时,栈顶数据的值被修改,可通过此检测程序是否是在反汇编环境下执行;假设程序在异常环境下运行,则立即终止程序。3.2任务23.2.1设计思想及存储单元分配在td里单步执行待破解的程序,可以很直观地获得程序的执行

16、流程和完成的操作。假设碰到反跟踪程序段,配合设置断点的方法,绕过反跟踪程序段设置的陷阱。3.2.2流程图 无3.2.3源程序无3.2.4实验步骤1. 运行TD,开始破解密码;2. 当遇到疑似反跟踪代码时,假设其中含有功能代码,则在其尾部设置断点,直接运行过去;3. 当遇到疑似反跟踪代码时,假设其中不含功能代码,纯粹为反跟踪代码,则直接修改IP寄存器的值,跳过此段代码的执行;4. 在验证密码与计算成绩处,找出加密手段;在相关数据段,找出暗文数据;5. 利用暴力破解法,编写破解脚本,结合加密手段与暗文,得到明文数据;6. 记录明文数据,并利用源代码进行验证,查看是否成功破密;4体会这次实验初步熟悉了一些跟踪与反跟踪手段:中断向量检测、计时检测、堆栈检测。提升了自己对电脑系统的理解与分析能力,懂得如何进行简单的数据加密。这次实验收获很大,相信对今后的编程有很大的帮助。参考文献1 王元珍等.80x86汇编语言程序设计.版本(第1版) 2 王晓虹等.汇编语言程序设计教程.版本(第1版)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1