アイジア

CTF, 情報セキュリティの学んだことメモ

crkme05

前→

crkme04 + 04a - アイジア

 

f:id:favoritte15:20180718163645p:plain

f:id:favoritte15:20180718163706p:plain

00401221 |. E8 28000000 CALL crkme05.0040124E

ここまでは前回と全く同じで10進数の入力を16進数にしてEAXに格納している。

 

それ以降の命令を見てみると、

①0x4d2(=1234)を足し算(ADD命令)

②0x0D(=13)で割り算(DIV命令)

③0x3DB(=987)を引き算(SUB命令)

 ④0x64(=100)を掛け算(MUL命令)

この結果EAXが0なら正解という処理になっている。

オペランドが1つしか指定されていない場合、演算結果はEAXに格納される模様。

 

(x + 1234)/13 - 987 = 0

x = 11597