アイジア

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

crackme

crkme09

http://doomo.xyz/crack/crkme09.exe 前↓ aithea.hatenablog.com 前回と同じく名前とパスワードを入力する問題だったので同じ要領で解析しようと思ったけどなにかおかしい。 DB文がたくさん羅列していて、ラベル名にも関数が少ない。 前にやった問題で似たよ…

crkme08

http://doomo.xyz/crack/crkme08.exe ※前 aithea.hatenablog.com 実行 名前とパスワードを聞かれる。もちろんどちらもわからないので今回は2つの情報をリバースエンジニアリングで見つける必要がある。 解析 「GetDlgItemTextA」にBPを仕掛けて、適当に名前…

crkme07

http://doomo.xyz/crack/crkme07.exe ※前→crkme06 - アイジア 実行 crkme07.exeを実行すると4つのテキストボックスが出てきて、シリアル番号的なものをを要求される。 解析 OllyDbgでcrkme07.exeを開く。アセンブリが表示されているウィンドウで右クリック->…

crkme06

前→ crkme05 - アイジア 前と比べて正解処理にたどり着くまでの道のりがけっこう長くなっている。 ・正解文字列は10文字(004011FD . 83F8 0A CMP EAX,0A) 0040120C . 0FBF06 MOVSX EAX,WORD PTR DS:[ESI] EAXにESIの先頭2文字(16バイト分)を格納する。ESIに…

crkme05

前→ crkme04 + 04a - アイジア 00401221 |. E8 28000000 CALL crkme05.0040124E ここまでは前回と全く同じで10進数の入力を16進数にしてEAXに格納している。 それ以降の命令を見てみると、 ①0x4d2(=1234)を足し算(ADD命令) ②0x0D(=13)で割り算(DIV命令) ③0x3…

crkme04 + 04a

http://doomo.xyz/crack/crkme04.exe いつも通りGetWindowText関数が呼び出された直後の処理を見ていく。 004011FA . 68 2C304000 PUSH crkme04.0040302C 004011FF . E8 20000000 CALL crkme04.00401224 入力した文字列を引数としてアドレス401224に飛んでい…

crkme03

http://doomo.xyz/crack/crkme03.exe 01~02aまでにあったGetWindowTextAの代わりにGetDlgItemTextAで入力文字列を取得している。 その直後の処理を見ていく。今回はプログラミング言語風に書いてみる。 ESI = (入力文字列); ECX = 0; EDI = "vP12NGgoQa"; w…

crkme02 + 02a

http://doomo.xyz/crack/ ↑答え書いてあるけど自分なりにメモ。 実行 いつも通りOllyで起動。 ①GetWindowTextAを呼び出しているところでブレークポイントを設置する。 ②GetWindowTextAの引数(EAX)と8を比べて、一致しなければ不正解処理に飛ぶ。 GetWindowTe…