HackTheBox Behind The Scenes 逆向题目分析_操作码


题目地址:

https://app.hackthebox.com/challenges/301

题目简介的意思是这个程序使用了加密来保护密码

开始

下载完程序后,我尝试使用ida来静态分析,可是ida无法打开程序

HackTheBox Behind The Scenes 逆向题目分析_网络安全_02

把程序拖入die分析,也没看到什么加密方式

HackTheBox Behind The Scenes 逆向题目分析_安全_03

然后我用strings查看一下程序内部的字符串

HackTheBox Behind The Scenes 逆向题目分析_操作码_04

没能找到什么有用的字符串

然后我使用r2来动态分析程序,发现了一个可疑的地方

HackTheBox Behind The Scenes 逆向题目分析_字符串_05

在main函数的末尾是用ud2指令结束的,正常程序的结尾一般都是pop和ret,弹出和返回,可这里不一样,我查阅了x86手册后发现

HackTheBox Behind The Scenes 逆向题目分析_操作码_06

此指令用于软件测试以显式生成无效操作码。该指令的操作码是为此目的而保留的。

除了引发无效操作码异常外,该指令与 NOP 指令相同。

知道了问题所在,现在就该解决问题了,我们可以使用NOP指令来替换 UD2 指令
NOP的指令为:0x90
UD2的指令为:0x0f 0x0b
我们可以使用bbe工具来替换指令

bbe -e 's/\x0f\x0b/\x90\x90/g' behindthescenes > new

HackTheBox Behind The Scenes 逆向题目分析_网络_07

然后用r2来动态调试这个新生成的程序

HackTheBox Behind The Scenes 逆向题目分析_操作码_08


HackTheBox Behind The Scenes 逆向题目分析_字符串_09


HackTheBox Behind The Scenes 逆向题目分析_安全_10

可以看到,这里main函数多了很多的指令,也在字符串列表看到了程序的密码

HackTheBox Behind The Scenes 逆向题目分析_网络_11


HackTheBox Behind The Scenes 逆向题目分析_操作码_12


HackTheBox Behind The Scenes 逆向题目分析_字符串_13

密码为:Itz_0nLy_UD2

HackTheBox Behind The Scenes 逆向题目分析_字符串_14