二进制实验报告
实验目的:
通过二进制实验,熟悉汇编语言及其机器码表示,熟悉GDB调试工具。
实验简介:
这个实验是一个过关游戏,共有6关。在一台Linux服务器上有一个可执行的文件,运行它游戏就开始了。每一关相当于是一扇门,要求你输入密码,只有密码正确才能通过,进入下一关,否则它会“爆炸”,每输入错误一次就会“爆炸”一次,服务器会记录你“爆炸”的次数,“爆炸”次数越多扣分越多。你是一位“黑客”,你所拥有的所有资源就是这个可执行的文件,你需要破译这个文件,从中出每一关的过关密码,如果破译错误,你需要付出相应的代价。
实验流程:
一、使用PuTTy登录并修改密码
●PuTTY 是一套免费的SSH/Telnet 程序,相当于一个跨平台的远程登录工具,通过它登录远程Linux主机进行实验操作。
●登录后通过passwd username指令修改密码。
二、硕士毕业论文答辩开场白反汇编并利用winscp工具下载反汇编代码
个人所得税税率表2022冰箱冷藏室不制冷●通过ls指令显示当前目录下的文件,到压缩包bomb56.tar,即目标。通过tar xvf bomb56.tar解压此压缩包,然后再通过ls显示解压出的文件:bomb、bomb.c和README。
●通过objdump –d bomb >&将程序反汇编并重定向到,通过ls显示反汇编出的代码文件。
天涯共此时什么意思●打开winscp工具,登录到远程主机,将远程主机上的文件下载到本机上,便于查看。
三、查看目标文件并做好调试准备布加迪威龙跑车
●文件介绍:
北京加成通业信息咨询有限公司:反汇编得到的代码文件,也是主要研究的目标文件。
bomb.c:主函数,通过调用每一关的函数实现,未显示每关的具体代码。
bomb:程序,当调试得出每一关的密码后打开程序运行来拆。
●通过gdb bomb指令进入gdb调试环境。
●大致浏览反汇编代码,可以观察到整个程序一共有六关,分别为phase_1到phase_6,并有一关隐藏关secret_phase,每次输入错误时会调用引爆函数explode_bomb,因此为避免调试时引爆,需要首先在引爆函数前设置断点,即break explode_bomb。
四、第一关拆除
08048c10 <phase_1>: 8048c10: 83 ec 1c sub $0x1c,%esp //取0x8049a04处的内容存入%esp+4 8048c13: c7 44 24 04 04 9a 04 movl $0x8049a04,0x4(%esp) 8048c1a: 08 //取用户输入的内容存入%esp 8048c1b: 8b 44 24 20 mov 0x20(%esp),%eax 8048c1f: 89 04 24 mov %eax,(%esp) //调用字符串比较函数 8048c22: e8 1d 04 00 00 call 8049044 <strings_not_equal> //判断%eax是否为0,为0跳转,不为0引爆 8048c27: 85 c0 test %eax,%eax 8048c29: 74 05 je 8048c30 <phase_1+0x20> 8048c2b: e8 a3 09 00 00 call 80495d3 <explode_bomb> //撤销栈桢,返回 8048c30: 83 c4 1c add $0x1c,%esp 8048c33: c3 ret |
程序流程:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论