Helloworld
実行可能ファイル helloworld.exe
が与えられた。
Ghidra で逆コンパイルして観察すると、
entry
関数から以下のFUN_004010a0
関数がmain
関数のような感じで呼び出されていることがわかった。
An executable file helloworld.exe
was given.
Decompiling via Ghidra and reading,
I found that this function FUN_004010a0
is called from the function entry
as if it is calling the main
function.
FUN_00401040.c
この関数の最後の部分には、以下の怪しいデータがあった。
The last part of the function had this interesting data:
local_c = 0x2b2d2f3e;
uStack40 = 0x2b3c2835;
uStack36 = 0x2f28112b;
uStack32 = 0x2f113c27;
local_8 = 0x33;
uVar3 = 0;
local_1c = 0x3d112a20;
uStack24 = 0x3c3b2d2b;
uStack20 = 0x372d112b;
uStack16 = 0x3d3c2b2c;
このデータをCyberChefで文字列に変換し、
さらにこの部分の下で何かに0x4eをXORしていたので、同様に0x4eをXORした。
I converted this data to strings via CyberChef.
Also, seeing the function is applying exclusive-or with 0x4e to something,
I applied exclusive-or with 0x4e to the strings.
Fork, 6 more - CyberChef
すると、以下の結果が得られた。
This process resulted in this:
pace
{fre
e_fa
ir_a
}
N
nd_s
ecur
e_cy
bers
これらをそれっぽく並べて flag
を補うことで、flagが得られた。
I obtained the flag by putting these in proper order and adding flag
.
flag{free_fair_and_secure_cyberspace}
setodaNote CTF