libdasm.c
来自「基于fuzzing的文件格式漏洞测试软件」· C语言 代码 · 共 799 行 · 第 1/5 页
C
799 行
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EAX|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ECX|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EDX|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EBX|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ESP|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EBP|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_ESI|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "pop", AM_REG|REG_EDI|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_PUSH , "pusha", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "popa", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "bound", AM_G|OT_v, AM_M|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "arpl", AM_E|OT_w, AM_G|OT_w, FLAGS_NONE, 1 },
// seg FS override
{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
// seg GS override
{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
// operand size override
{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
// address size override
{ INSTRUCTION_TYPE_OTHER, NULL, FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_PUSH, "push", AM_I|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MUL, "imul", AM_G|OT_v, AM_E|OT_v, AM_I|OT_v , 1 },
{ INSTRUCTION_TYPE_PUSH, "push", AM_I|OT_b|F_s, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MUL, "imul", AM_G|OT_v, AM_E|OT_v, AM_I|OT_b|F_s, 1 },
{ INSTRUCTION_TYPE_OTHER, "insb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "insv", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "outsb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "outsv", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jo", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jno", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jb", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jnb", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jz", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jnz", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jbe", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jnbe", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "js", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jns", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jp", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jnp", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jl", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jnl", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jle", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jnle", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_v, AM_I|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g1", AM_E|OT_v, AM_I|OT_b|F_s, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_TEST, "test", AM_E|OT_b, AM_G|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_TEST, "test", AM_E|OT_v, AM_G|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_E|OT_b, AM_G|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_E|OT_v, AM_G|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_b, AM_G|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_v, AM_G|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_G|OT_b, AM_E|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_G|OT_v, AM_E|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_w, AM_S|OT_w, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_LEA, "lea", AM_G|OT_v, AM_M|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_S|OT_w, AM_E|OT_w, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_POP, "pop", AM_E|OT_v, FLAGS_NONE, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "nop", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_ECX|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_EDX|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_EBX|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_ESP|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_EBP|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_ESI|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_XCHG, "xchg", AM_REG|REG_EAX|OT_v, AM_REG|REG_EDI|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "cbw", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "cwd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_CALL, "callf", AM_A|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "wait", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_PUSH, "pushf", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_POP, "popf", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "sahf", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "lahf", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EAX|OT_b, AM_O|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EAX|OT_v, AM_O|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_O|OT_v, AM_REG|REG_EAX|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_O|OT_v, AM_REG|REG_EAX|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOVS, "movsb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOVS, "movsd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_CMPS, "cmpsb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_CMPS, "cmpsd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_TEST, "test", AM_REG|REG_EAX|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_TEST, "test", AM_REG|REG_EAX|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_STOS, "stosb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_STOS, "stosd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_LODS, "lodsb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_LODS, "lodsd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_SCAS, "scasb", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_SCAS, "scasd", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_AL|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_CL|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_DL|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_BL|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_AH|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_CH|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_DH|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_BH|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EAX|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_ECX|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EDX|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EBX|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_ESP|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EBP|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_ESI|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_REG|REG_EDI|OT_v, AM_I|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_v, AM_I|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_RET, "retn", AM_I|OT_w, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_RET, "ret", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "les", AM_G|OT_v, AM_M|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "lds", AM_G|OT_v, AM_M|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_b, AM_I|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_MOV, "mov", AM_E|OT_v, AM_I|OT_v, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_PUSH, "enter", AM_I|OT_w, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_RET, "leave", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_RET, "retf", AM_I|OT_w, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "retf", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_INT, "int3", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_INT, "int", AM_I|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "into", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "iret", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_b, AM_I1|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_v, AM_I1|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_b, AM_REG|REG_CL|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "g2", AM_E|OT_v, AM_REG|REG_CL|OT_b, FLAGS_NONE, 1 },
{ INSTRUCTION_TYPE_OTHER, "aam", AM_I|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "aad", AM_I|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
// XXX: undocumened?
{ INSTRUCTION_TYPE_OTHER, "salc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "xlat", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "esc", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_LOOP, "loopn", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_LOOP, "loope", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_LOOP, "loop", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMPC, "jcxz", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "in", AM_REG|REG_AL|OT_b, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "in", AM_REG|REG_EAX|OT_v, AM_I|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "out", AM_I|OT_b, AM_REG|REG_AL|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "out", AM_I|OT_b, AM_REG|REG_EAX|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_CALL, "call", AM_J|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMP, "jmp", AM_J|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMP, "jmpf", AM_A|OT_v, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_JMP, "jmp", AM_J|OT_b, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "in", AM_REG|REG_EAX|OT_b, AM_REG|REG_EDX|OT_w, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "in", AM_REG|REG_EAX|OT_v, AM_REG|REG_EDX|OT_w, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "out", AM_REG|REG_EDX|OT_w, AM_REG|REG_EAX|OT_b, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "out", AM_REG|REG_EDX|OT_w, AM_REG|REG_EAX|OT_v, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "ext", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_INT, "int1", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
{ INSTRUCTION_TYPE_OTHER, "ext", FLAGS_NONE, FLAGS_NONE, FLAGS_NONE, 0 },
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?