RootMe之Cracking/ELF x86-0 protection

思路

首先这是破解题,并且题目标题是0protection,那可能意思是没有加壳。

My Writeup

使用winhex打开二进制文件:


bin.png

反复查看也只有这个123456789比较像了


password.png

别人的writeup

首先确认是否是zip文件而不是混杂了其他数据的文件:

$file ch1.zip
ch1.zip: Zip archive data, at least v2.0 to extract

通过file命令判断文件为zip文件,现在开始解压

关于linux中的file命令

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

-b 列出辨识结果时,不显示文件名称
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-L 直接显示符号连接所指向的文件的类型
-m<魔法数字文件> 指定魔法数字文件
-v 显示版本信息
-z 尝试去解读压缩文件的内容(只支持gzip压缩文件)

根据file命令对文件类型的辨识,确认为压缩文件,现在对压缩文件进行解压,得到ch1.bin文件:

$unzip ch1.zip
Archive:ch1.zip
inflating:ch1.bin

再对该二进制文件进行判断确实文件类型:

$file ch1.bin
ch1.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.9, not stripped

文件为二进制类型,没有被污染。
接下来使用r2工具获取该文件的一些信息:

$ rabin2 -I ch1.bin
arch     x86
binsz    7339
bintype  elf
bits     32
canary   false
class    ELF32
crypto   false
endian   little
havecode true
intrp    /lib/ld-linux.so.2
lang     c
linenum  true
lsyms    true
machine  Intel 80386
maxopsz  16
minopsz  1
nx       true
os       linux
pcalign  0
pic      false
relocs   true
relro    partial
rpath    NONE
static   false
stripped false
subsys   linux
va       true

rabin2是Radare2平台下的工具,kali中默认安装。
rabin2 可以获取包括ELF, PE, Mach-O, Java CLASS文件的区段、头信息、导入导出表、字符串相关、入口点等等,并且支持几种格式的输出文件。使用man rabin2 可以查看rabin2的使用帮助文档。
工具具体用法参见:https://www.jianshu.com/p/4c3e503442c4

在没有获得比较有价值信息的情况下,尝试运行二进制文件:
(这里我在本地操作时,需要多文件进行提权)

$chomd a+x ch1.bin

提示我们需要密码,在输入密码后程序会进行校验。可以通过逆向查看到正确的密码:

$ rabin2 -z ch1.bin
000 0x00000810 0x08048810  10  11 (.rodata) ascii %s : "%s"\n
001 0x0000081b 0x0804881b  17  18 (.rodata) ascii Allocating memory
002 0x0000082d 0x0804882d  19  20 (.rodata) ascii Reallocating memory
003 0x00000841 0x08048841   9  10 (.rodata) ascii 123456789
004 0x0000084c 0x0804884c  60  61 (.rodata) ascii ############################################################
005 0x0000088c 0x0804888c  60  61 (.rodata) ascii ##        Bienvennue dans ce challenge de cracking        ##
006 0x000008cc 0x080488cc  61  62 (.rodata) ascii ############################################################\n
007 0x0000090c 0x0804890c  34  35 (.rodata) ascii Veuillez entrer le mot de passe :
008 0x00000930 0x08048930  60  61 (.rodata) ascii Bien joue, vous pouvez valider l'epreuve avec le pass : %s!\n
009 0x00000970 0x08048970  32  33 (.rodata) ascii Dommage, essaye encore une fois.

发现特殊的字符串123456789,bingo!


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。