概述
本文是TryHackMe的靶场,靶场地址https://tryhackme.com/room/reverselfiles,本靶场主要练习的是ELF文件的逆向。
ELF即Executable and Linkable Format,靶场会提供8个ELF文件供下载,分别是crackme1到crackme8,难度逐次递增
crackme1
热身题目,要求得到flag,直接运行即可得到flag
./crackme1
flag{not_that_kind_of_elf}
crackme2
要求找到super-secret password,并通过它得到flag
查看安全防护机制
直接运行
使用gdb分析,看到strcmp()函数
pwndbg> pdisass &main 20
直接打印0x8048674的值得到密码
以此密码作为参数运行程序得到flag
./crackme2 super_secret_password
Access granted.
flag{if_i_submit_this_flag_then_i_will_get_points}
crackme3
题目要求使用基本的逆向技术得到flag
查看安全防护措施
运行程序
通过IDA分析
发现strmp()函数,在其上是参数调用,双击这个字符串得到双击这个字符串得到ZjByX3kwdXJfNWVjMG5kX2xlNTVvbl91bmJhc2U2NF80bGxfN2gzXzdoMW5nNQ==
base64解码得到flag,f0r_y0ur_5ec0nd_le55on_unbase64_4ll_7h3_7h1ng5
crackme4
题目要求分析并找到密码
查看安全防护措施
直接运行程序
使用gdb分析,
pwndbg> pdisass &main 20
看到main调用了compare_pwd
继续查看compare_pwd
pwndbg> pdisass &compare_pwd 20
发现程序运行时提示的strcmp函数
断点设置在设置strcmp的函数前
pwndbg> b *0x4006c7
运行并步进,以welcome作为参数输入
r welcome
查看call strcmp以前的栈得到密码
crackme5
题目描述是如果输入才能得到Good game
的结果
分析安全防护措施
直接运行程序
使用IDA动态调试
在strcmp前下断点,单步步进运行到执行strcmp,看rsi和rdi的值
得到OfdlDSA|3tXb32~X3tX@sX
4tXtz`