x86のNOP命令には色々な表現方法があると聞きました。
初心者向けヒント: 問題へのアプローチ
chal.pyのコメントにあるIntel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes 2A, 2B, 2C, and 2D: Instruction Set Reference, A- Zは素晴らしい資料です。- 資料中の
Figure 2-1. Intel 64 and IA-32 Architectures Instruction Formatを読んで、x86における機械語の構成を理解してみましょう。 - 資料中の
NOP—No Operation命令の説明やTable 4-12. Recommended Multi-Byte Sequence of NOP Instructionを読んで、chal.py中のknown_nopの機械語がどのような構成か理解してみましょう。 - それらの内容を踏まえつつ、資料中の
Table 2-2. 32-Bit Addressing Forms with the ModR/M ByteやTable 2-3. 32-Bit Addressing Forms with the SIB Byteを読んで、chal.pyで要求される内容を満たす方法を考えてみましょう。