二进制实验报告
二进制实验报告
实验目的:
    通过二进制实验,熟悉汇编语言及其机器码表示,熟悉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小时内删除。