アセンブラ100 さきゅりてぃ発表用
- 11. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
以下のコードをアドレス 01361040 から実行した。
表示される数値を答えよ。
x86アセンブラを読もう
- 12. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
以下のコードをアドレス 01361040 から実行した。
表示される数値を答えよ。
x86アセンブラを読もう
ここにprint文がある
ここがスタート地点
- 13. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
以下のコードをアドレス 01361040 から実行した。
表示される数値を答えよ。
x86アセンブラを読もう
サブルーチン
ここがスタート地点
サブルーチンを
呼び出す
- 15. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020
0024
0028 EBPの値(スタート時)
EBPはデータ領域の基点。
これから使うスタック領域の
一番下のアドレスが入っている
- 16. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020
0024
0028 EBPの値(スタート時)
EBP ESPの値(0028)
ESPはスタックの
一番上のアドレスが入っている
- 17. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020
0024 ECXの値(スタート時)
0028 EBPの値(スタート時)
EBP ESPの値(0028)
ECXはループ回数を
カウントするために使用される領域
- 18. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0028)
- 19. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0028)
- 20. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0028)
CALL命令は戻り先をスタックに積む
- 21. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0028)
- 22. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
- 23. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
- 24. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
- 25. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
- 26. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
- 27. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
- 28. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
Jump if Great
左が右より大きければジャンプ
レジスタ
スタック
0000
0004 1
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
- 29. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 0
- 30. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 0
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 1
- 31. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 1
- 32. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 1
- 33. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 1
EAX 1
EAXは計算に使用される
- 34. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 1
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 1
EAX 2
- 35. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 1
EDX 1
EAX 2
- 36. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 1
EAX 2
- 37. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 1
EAX 2
- 38. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 1
EAX 2
- 39. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 1
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 3
EAX 2
- 40. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 3
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 3
EAX 2
- 41. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 3
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 3
EAX 2
- 43. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 3
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 3
EAX 2
0004のスタックの値
→初期値は1
→1ずつ足される
→0xFFと比較している
0008のスタックの値
→初期値は0
→今の値にスタック0004の値
が足される
- 45. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 2
0008 3
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 2
EDX 3
EAX 2
つまりこの部分は、
sum = 0;
for (i = 1; i <= 0xFF; i++) {
sum += i;
}
という処理を行っている
- 47. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 0xFF
0008 32640
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 0xFF
EDX 32640
EAX 32640
- 48. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 0xFF
0008 32640
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0004
ECX 0xFF
EDX 32640
EAX 32638
- 49. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004 0xFF
0008 32640
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP ESPの値(0012)
ESP 0012
ECX 0xFF
EDX 32640
EAX 32638
ESPの値をサブルーチンに入った
直後の値に戻すことで、サブルー
チン内で使用したスタック領域を解
放している。
- 50. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012 EBPの値(0028)
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP 0028
ESP 0012
ECX 0xFF
EDX 32640
EAX 32638
サブルーチンに入った直後のEBP
の値がスタックに保存してあるの
で、popして戻す。
- 51. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016 戻り先(01361052)
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP 0028
ESP 0012
ECX 0xFF
EDX 32640
EAX 32638
- 53. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020 0xFF
0024 0
0028 EBPの値(スタート時)
EBP 0028
ESP 0024
ECX 0xFF
EDX 32640
EAX 32638
- 54. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020
0024 32638
0028 EBPの値(スタート時)
EBP 0028
ESP 0024
ECX 0xFF
EDX 32640
EAX 32638
- 55. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020
0024 32638
0028 EBPの値(スタート時)
EBP 0028
ESP 0024
ECX 0xFF
EDX 32640
EAX 32638
- 56. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020 32638
0024 32638
0028 EBPの値(スタート時)
EBP 0028
ESP 0024
ECX 0xFF
EDX 32640
EAX 32638
- 57. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020 32638
0024 32638
0028 EBPの値(スタート時)
EBP 0028
ESP 0024
ECX 0xFF
EDX 32640
EAX 32638
- 58. 問題を解説する
01361000 55 PUSH EBP
01361001 8BEC MOV EBP,ESP
01361003 83EC 08 SUB ESP,8
01361006 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136100D C745 F8 01000000 MOV DWORD PTR SS:[EBP-8],1
01361014 EB 09 JMP SHORT test.0136101F
01361016 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
01361019 83C0 01 ADD EAX,1
0136101C 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
0136101F 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
01361022 3B4D 08 CMP ECX,DWORD PTR SS:[EBP+8]
01361025 7F 0B JG SHORT test.01361032
01361027 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0136102A 0355 F8 ADD EDX,DWORD PTR SS:[EBP-8]
0136102D 8955 FC MOV DWORD PTR SS:[EBP-4],EDX
01361030 ^EB E4 JMP SHORT test.01361016
01361032 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
01361035 . 83E8 02 SUB EAX,2
01361038 . 8BE5 MOV ESP,EBP
0136103A . 5D POP EBP
0136103B . C3 RETN
...
01361040 > . 55 PUSH EBP
01361041 8BEC MOV EBP,ESP
01361043 51 PUSH ECX
01361044 C745 FC 00000000 MOV DWORD PTR SS:[EBP-4],0
0136104B 6A FF PUSH FF
0136104D E8 AEFFFFFF CALL test.01361000
01361052 . 83C4 04 ADD ESP,4
01361055 . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
01361058 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0136105B . 50 PUSH EAX
0136105C . 68 F4203601 PUSH OFFSET "FLAG{%d}n"
01361061 . FF15 A4203601 CALL DWORD PTR DS:[<&MSVCR100.printf>]
01361067 . 83C4 08 ADD ESP,8
レジスタ
スタック
0000
0004
0008
0012
0016
0020 32638
0024 32638
0028 EBPの値(スタート時)
EBP 0028
ESP 0024
ECX 0xFF
EDX 32640
EAX 32638
引数に”FLAG{%d}n”と32638を渡
してprintfをコールする