dracit7 / 2018Autumn_LabStayup

The assembly language part. Have fun!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Assembly Language

Background

有了各位在笔试中的帮助,zlc同学顺利地通过了**立琛印刷有限公司的重重考核,并拿到了400¥ per day的架构师实习岗位。然而好景不长,由于产品经理Alisa小姐提出的需求过多,zlc必须全身心投入工作当中,这让他无法抽出时间完成某报告大学的实验报告,甚至想rm -rf /

为了帮助zlc减轻工作压力,出题人决定从助教Dracit的系统中窃取一份实验报告成品,让zlc从大量垃圾代码的重负中解脱。然而,Dracit对他的系统和文件进行了加密,这让窃取工作不是那么的顺利。于是,由于出题人要打万智牌和东方且不想看汇编代码, 他把破解加密的任务交给了你。

虽然出题人很懒,但是他为你们准备了很多 对破解工作很有帮助 的Tips。在看到它们之前请不要跑掉,这道题没人做的话出题人体验会很差

Introduction

你所需的所有文件都会出现在Assembly.zip压缩包内,它们分别是:

  • HackIn:用来模拟骇入过程的二进制文件,破解所需的所有信息都可以在这个文件中找到
  • main.c:为了方便各位的工作(降低测试难度,毕竟出题人也不是什么魔鬼),出题人将HackIn的部分源代码放在了这个文件中。这个文件提供了HackIn调用的所有函数名和HackIn运行的流程,但不包括任何函数实现。

你需要对HackIn文件进行反汇编操作,将其转换为汇编语言代码,然后通过 阅读和调试 汇编代码找出所有需要的密码。

在寻找密码的过程中,你可以通过./HackIn命令运行HackIn文件,并对你找到的密码进行测试。但是请注意,不要输入错误的密码。 你的每一次输入错误都会触发系统警报,程序会记录警报触发的次数并据此扣除相应的分数。(因此如果你试图使用Brute Force算法去破解,可能会在成功破解之前被扣光分数)

在HackIn文件运行的过程中,以“* ”开头的输出信息是出题人给你的友情提示,而其他输出信息是系统的输出信息。请注意阅读这些信息,它们可能会帮助你破解密码

Goal

你总共需要破解三组密码:

  • 系统的用户名和密码(10%)
  • 加密文件夹1的密码(20%)
  • 加密文件夹2的密码(30%)

在依次正确输入三组密码之后,你会得到HackIn文件的成功提示与 完成隐藏任务的提示 。如果你还有余力的话,可以考虑完成隐藏任务:

  • 找到隐藏任务的入口(10%)
  • 完成隐藏任务(30%)

每次触发系统警报,你会被扣除1%的分数。

Submittion

  • 请将你的解答写在命名为Solution的文本文件中,格式如下:
< username >
< passwd >
< passwd for folder 1 >
< passwd for folder 2 >
< passwd for secret mission >
  • 如果时间允许,从你开始做这个任务开始,请将你遇到的问题和你解决它们的过程记录在命名为Note的文本文件中,并为它们标注时间。出题人很希望看到你们在做这个题过程中的成长和进步,因此 翔实的Note可能会提高你们的分数

  • 请将Solution文件,Note文件和运行HackIn所生成的Data文件打包,并与其他题目的解答一同提交。

Hints

  • 你可以使用的工具:
    • objdump命令
      • objdump HackIn > WhateverNameYouLike.s 可以将HackIn的汇编代码保存在asm格式文件中,便于查看和修改。
    • GDB调试器
      • 使用gdb HackIn在gdb中运行HackIn文件
      • 如果你还不会使用gdb,请自行学习
      • 你可以使用layout asm命令在gdb中查看HackIn的汇编代码
    • Google
  • 你不应该做的事情:
    • 修改Data文件
    • 与其他测试者交流
    • 寻求任何形式的外援
  • 一些你用得上的提示:
    • 请仔细阅读main.c以及HackIn的输出信息,它们可能会很有用。
    • 一些内存位置中储存的值可能只能在程序运行中查看。为此,请自行学习如何使用gdb在程序运行中查看特定内存位置中储存的值。
    • 如果你担心警报函数的触发影响你的成绩,请学会用断点避免这种事情发生。
    • 如果在做题过程中出现不该出现的问题(比如 程序崩溃 汇编代码生成难以理解),请联系现场工作人员。(你可能联系不到出题人,因为出题人现在在上海开会)
    • 出题人热爱东方文化,并希望能够有交流对象。所以如果你感兴趣,可以在提交的压缩包中加入一个额外的文件来联系出题人

About

The assembly language part. Have fun!


Languages

Language:C 97.9%Language:CMake 2.1%