bddisasm
bddisasm is a fast, lightweight, x86/x64 instruction decoder. The project also features a fast, basic, x86/x64 instruction emulator, designed specifically to detect shellcode-like behavior.
File Explorer
Download Latest Version (.zip)- ci.yml
- rust.yml
- bddisasm_crt.h
- bdx86_instructions.h
- bdx86_mnemonics.h
- bdx86_modrm.h
- bdx86_operand.h
- bdx86_prefixes.h
- bdx86_rex2.h
- bdx86_table_evex.h
- bdx86_table_root.h
- bdx86_table_vex.h
- bdx86_table_xop.h
- bdx86_tabledefs.h
- bddisasm.vcproj
- bddisasm.vcxproj
- bddisasm.vcxproj.filters
- bddisasm_crt.c
- bdx86_decoder.c
- bdx86_formatter.c
- bdx86_helpers.c
- bdx86_idbe.c
- bdx86_operand.c
- Makefile
- amx1_64.asm
- amx1_64.result
- amx1_64.test
- amx_evex_64.result
- amx_evex_64.test
- apx1_64.result
- apx1_64.test
- apx2_64.result
- apx2_64.test
- apx3_64.result
- apx3_64.test
- apx_amx_64.result
- apx_amx_64.test
- apx_movrs_64.result
- apx_movrs_64.test
- evex_bad_64_skip.asm
- evex_bad_64_skip.result
- evex_bad_64_skip.test
- rex2_bad_64_skip.asm
- rex2_bad_64_skip.result
- rex2_bad_64_skip.test
- rex2_ignore_64.asm
- rex2_ignore_64.result
- rex2_ignore_64.test
- rex2_valid_64.asm
- rex2_valid_64.result
- rex2_valid_64.test
- avx2_64.asm
- avx2_64.result
- avx2_64.test
- avx2gather_64.asm
- avx2gather_64.result
- avx2gather_64.test
- avx_64.asm
- avx_64.result
- avx_64.test
- avxifma_64.asm
- avxifma_64.result
- avxifma_64.test
- avxneconvert_64.asm
- avxneconvert_64.result
- avxneconvert_64.test
- avxvnni_64.asm
- avxvnni_64.result
- avxvnni_64.test
- avxvnniint16_64.asm
- avxvnniint16_64.result
- avxvnniint16_64.test
- avxvnniint8_64.asm
- avxvnniint8_64.result
- avxvnniint8_64.test
- f16c_64.asm
- f16c_64.result
- f16c_64.test
- fma4_64.asm
- fma4_64.result
- fma4_64.test
- fma_64.asm
- fma_64.result
- fma_64.test
- avx101_64.asm
- avx101_64.result
- avx101_64.test
- avx102_64.result
- avx102_64.test
- avx512bitalg_64.asm
- avx512bitalg_64.result
- avx512bitalg_64.test
- avx512bw_64.asm
- avx512bw_64.result
- avx512bw_64.test
- avx512cd_64.asm
- avx512cd_64.result
- avx512cd_64.test
- avx512dq_64.asm
- avx512dq_64.result
- avx512dq_64.test
- avx512er_64.asm
- avx512er_64.result
- avx512er_64.test
- avx512f_64.asm
- avx512f_64.result
- avx512f_64.test
- avx512fma_64.asm
- avx512fma_64.result
- avx512fma_64.test
- avx512fp16_32.result
- avx512fp16_32.test
- avx512fp16_64.result
- avx512fp16_64.test
- avx512pf_64.asm
- avx512pf_64.result
- avx512pf_64.test
- avx512vbmi_64.asm
- avx512vbmi_64.result
- avx512vbmi_64.test
- avx512vnni_64.asm
- avx512vnni_64.result
- avx512vnni_64.test
- address_16.asm
- address_16.result
- address_16.test
- address_32.asm
- address_32.result
- address_32.test
- address_64.asm
- address_64.result
- address_64.test
- aes_64.asm
- aes_64.result
- aes_64.test
- basic1_64.asm
- basic1_64.result
- basic1_64.test
- basic2_64.asm
- basic2_64.result
- basic2_64.test
- bmi_64.asm
- bmi_64.result
- bmi_64.test
- branch_16.asm
- branch_16.result
- branch_16.test
- branch_32.asm
- branch_32.result
- branch_32.test
- branch_64.asm
- branch_64.result
- branch_64.test
- cet_64.asm
- cet_64.result
- cet_64.test
- enqcmd_64.asm
- enqcmd_64.result
- enqcmd_64.test
- fpu_64.asm
- fpu_64.result
- fpu_64.test
- gfni_64.asm
- gfni_64.result
- gfni_64.test
- invlpgb_64.asm
- invlpgb_64.result
- invlpgb_64.test
- misc_16.asm
- misc_16.result
- misc_16.test
- misc_32.asm
- misc_32.result
- misc_32.test
- misc_64.asm
- misc_64.result
- misc_64.test
- mpx_64.asm
- mpx_64.result
- mpx_64.test
- prefixes_64.asm
- prefixes_64.result
- prefixes_64.test
- sha_64.asm
- sha_64.result
- sha_64.test
- snp_64.asm
- snp_64.result
- snp_64.test
- stack_16.asm
- stack_16.result
- stack_16.test
- stack_32.asm
- stack_32.result
- stack_32.test
- stack_64.asm
- stack_64.result
- stack_64.test
- svm_64.asm
- svm_64.result
- svm_64.test
- system_16.asm
- system_16.result
- system_16.test
- system_32.asm
- system_32.result
- system_32.test
- system_64.asm
- system_64.result
- system_64.test
- tsx_64.asm
- tsx_64.result
- tsx_64.test
- vmx_64.asm
- vmx_64.result
- vmx_64.test
- bhi_32.asm
- bhi_32.result
- bhi_32.test
- bhi_64.asm
- bhi_64.result
- bhi_64.test
- cet_32.asm
- cet_32.result
- cet_32.test
- cet_64.asm
- cet_64.result
- cet_64.test
- dnt_32.asm
- dnt_32.result
- dnt_32.test
- dnt_64.asm
- dnt_64.result
- dnt_64.test
- cmpccxadd_64.asm
- cmpccxadd_64.result
- cmpccxadd_64.test
- fred_64.asm
- fred_64.result
- fred_64.test
- kl_64.asm
- kl_64.result
- kl_64.test
- movrs_64.asm
- movrs_64.result
- movrs_64.test
- vmovrs_64.result
- vmovrs_64.test
- msr_64.asm
- msr_64.result
- msr_64.test
- prefetchit_32.asm
- prefetchit_32.result
- prefetchit_32.test
- prefetchit_64.asm
- prefetchit_64.result
- prefetchit_64.test
- raoint_64.asm
- raoint_64.result
- raoint_64.test
- sha512_64.asm
- sha512_64.result
- sha512_64.test
- 3dnow_64.asm
- 3dnow_64.result
- 3dnow_64.test
- mmx_64.asm
- mmx_64.result
- mmx_64.test
- sse2_64.asm
- sse2_64.result
- sse2_64.test
- sse3_64.asm
- sse3_64.result
- sse3_64.test
- sse4_64.asm
- sse4_64.result
- sse4_64.test
- sm4_evex_64.result
- sm4_evex_64.test
- sm_64.asm
- sm_64.result
- sm_64.test
- amx_64_skip.asm
- amx_64_skip.result
- amx_64_skip.test
- avx2gather_1_64_skip.asm
- avx2gather_1_64_skip.result
- avx2gather_1_64_skip.test
- avx2gather_2_64_skip.asm
- avx2gather_2_64_skip.result
- avx2gather_2_64_skip.test
- avx2gather_3_64_skip.asm
- avx2gather_3_64_skip.result
- avx2gather_3_64_skip.test
- cr8_32.asm
- cr8_32.result
- cr8_32.test
- ignorew_evex_32.result
- ignorew_evex_32.test
- ignorew_evex_64.result
- ignorew_evex_64.test
- invalid_32_skip.asm
- invalid_32_skip.result
- invalid_32_skip.test
- invalid_64_skip.asm
- invalid_64_skip.result
- invalid_64_skip.test
- invalid_evex_64_skip.asm
- invalid_evex_64_skip.result
- invalid_evex_64_skip.test
- long_64.asm
- long_64.result
- long_64.test
- movcrdr_64.asm
- movcrdr_64.result
- movcrdr_64.test
- only_32.asm
- only_32.result
- only_32.test
- only_64.asm
- only_64.result
- only_64.test
- regressions_32.asm
- regressions_32.result
- regressions_32.test
- regressions_64.asm
- regressions_64.result
- regressions_64.test
- tdx_64.asm
- tdx_64.result
- tdx_64.test
- tse_64.asm
- tse_64.result
- tse_64.test
- uintr_64.asm
- uintr_64.result
- uintr_64.test
- rex2_valid_64.asm
- rex2_valid_64.result
- rex2_valid_64.test
- conf-x86.json
- bdshemu_common.h
- bdshemu.c
- bdshemu.vcxproj
- bdshemu.vcxproj.filters
- bdshemu_x86.c
- Makefile
- test_32_str01
- test_32_str02
- test_32_str03
- test_32_str04
- test_32_sys01
- test_64_basic01
- test_64_basic04
- test_64_basic05
- test_64_basic06
- test_64_basic07
- test_64_basic08
- test_64_basic09
- test_64_branch1
- test_64_branch2
- test_64_branch3
- test_64_branch4
- test_64_div
- test_64_flags
- test_64_loadrip01
- test_64_loadrip02
- test_64_loadrip03
- test_64_mov
- test_64_nopsled01
- test_64_nopsled02
- test_64_selfwrite02
- test_64_selfwrite03
- test_64_string
- test_64_sys01
- test_64_sys02
- test_64_sys03
- test_32_str01
- test_32_str02
- test_32_str04
- test_32_sys01
- test_64_basic01
- test_64_basic02
- test_64_basic03
- test_64_basic04
- test_64_basic05
- test_64_basic06
- test_64_basic07
- test_64_basic08
- test_64_branch1
- test_64_branch2
- test_64_branch3
- test_64_branch4
- test_64_div
- test_64_flags
- test_64_loadrip01
- test_64_loadrip02
- test_64_loadrip03
- test_64_mov
- test_64_nopsled01
- test_64_nopsled02
- test_64_selfwrite02
- test_64_selfwrite03
- test_64_string
- test_64_sys01
- test_64_sys02
- test_64_sys03
- bdshemu_fuzzer.c
- CMakeLists.txt
- fuzzing_image_entrypoint.sh
- test_32_callf1.asm
- test_32_callf1.result
- test_32_callf1.test
- test_32_callf2.asm
- test_32_callf2.result
- test_32_callf2.test
- test_32_iret.asm
- test_32_iret.result
- test_32_iret.test
- test_32_jmpf1.asm
- test_32_jmpf1.result
- test_32_jmpf1.test
- test_32_jmpf2.asm
- test_32_jmpf2.result
- test_32_jmpf2.test
- test_32_loadrip01.asm
- test_32_loadrip01.result
- test_32_loadrip01.test
- test_32_loadrip02.asm
- test_32_loadrip02.result
- test_32_loadrip02.test
- test_32_loadseg01.asm
- test_32_loadseg01.result
- test_32_loadseg01.test
- test_32_loadseg02.asm
- test_32_loadseg02.result
- test_32_loadseg02.test
- test_32_loadseg03.asm
- test_32_loadseg03.result
- test_32_loadseg03.test
- test_32_neg.asm
- test_32_neg.result
- test_32_neg.test
- test_32_retf.asm
- test_32_retf.result
- test_32_retf.test
- test_32_stack_pivot1.asm
- test_32_stack_pivot1.result
- test_32_stack_pivot1.test
- test_32_stack_pivot2.asm
- test_32_stack_pivot2.result
- test_32_stack_pivot2.test
- test_32_stack_pivot3.asm
- test_32_stack_pivot3.result
- test_32_stack_pivot3.test
- test_32_stack_pivot4.asm
- test_32_stack_pivot4.result
- test_32_stack_pivot4.test
- test_32_str01.asm
- test_32_str01.result
- test_32_str01.test
- test_32_str02.asm
- test_32_str02.result
- test_32_str02.test
- test_32_str03.asm
- test_32_str03.result
- test_32_str03.test
- test_32_str04.asm
- test_32_str04.result
- test_32_str04.test
- test_32_str05.asm
- test_32_str05.result
- test_32_str05.test
- test_32_sud01.asm
- test_32_sud01.result
- test_32_sud01.test
- test_32_sud02.asm
- test_32_sud02.result
- test_32_sud02.test
- test_32_sys01.asm
- test_32_sys01.result
- test_32_sys01.test
- test_64_adc01.asm
- test_64_adc01.result
- test_64_adc01.test
- test_64_basic01.asm
- test_64_basic01.result
- test_64_basic01.test
- test_64_basic02.asm
- test_64_basic02.result
- test_64_basic02.test
- test_64_basic03.asm
- test_64_basic03.result
- test_64_basic03.test
- test_64_basic04.asm
- test_64_basic04.result
- test_64_basic04.test
- test_64_basic05.asm
- test_64_basic05.result
- test_64_basic05.test
- test_64_basic06.asm
- test_64_basic06.result
- test_64_basic06.test
- test_64_basic07.asm
- test_64_basic07.result
- test_64_basic07.test
- test_64_basic08.asm
- test_64_basic08.result
- test_64_basic08.test
- test_64_basic09.asm
- test_64_basic09.result
- test_64_basic09.test
- test_64_bitscan01.asm
- test_64_bitscan01.result
- test_64_bitscan01.test
- test_64_branch1.asm
- test_64_branch1.result
- test_64_branch1.test
- test_64_branch2.asm
- test_64_branch2.result
- test_64_branch2.test
- test_64_branch3.asm
- test_64_branch3.result
- test_64_branch3.test
- test_64_branch4.asm
- test_64_branch4.result
- test_64_branch4.test
- test_64_branch_boundary01.asm
- test_64_branch_boundary01.result
- test_64_branch_boundary01.test
- test_64_branch_boundary02.asm
- test_64_branch_boundary02.result
- test_64_branch_boundary02.test
- test_64_bswap01.asm
- test_64_bswap01.result
- test_64_bswap01.test
- test_64_cmov.asm
- test_64_cmov.result
- test_64_cmov.test
- test_64_cmpxchg01.asm
- test_64_cmpxchg01.result
- test_64_cmpxchg01.test
- test_64_div.asm
- test_64_div.result
- test_64_div.test
- test_64_div2.asm
- test_64_div2.result
- test_64_div2.test
- test_64_eicar.asm
- test_64_eicar.result
- test_64_eicar.test
- test_64_flags.asm
- test_64_flags.result
- test_64_flags.test
- test_64_flags2.asm
- test_64_flags2.result
- test_64_flags2.test
- test_64_flags3.asm
- test_64_flags3.result
- test_64_flags3.test
- test_64_imul01.asm
- test_64_imul01.result
- test_64_imul01.test
- test_64_imul02.asm
- test_64_imul02.result
- test_64_imul02.test
- test_64_incdec.asm
- test_64_incdec.result
- test_64_incdec.test
- test_64_loadrip01.asm
- test_64_loadrip01.result
- test_64_loadrip01.test
- test_64_loadrip02.asm
- test_64_loadrip02.result
- test_64_loadrip02.test
- test_64_loadrip03.asm
- test_64_loadrip03.result
- test_64_loadrip03.test
- test_64_loadrip04.asm
- test_64_loadrip04.result
- test_64_loadrip04.test
- test_64_loadrip05.asm
- test_64_loadrip05.result
- test_64_loadrip05.test
- test_64_loadrip06.asm
- test_64_loadrip06.result
- test_64_loadrip06.test
- test_64_loadrip07.asm
- test_64_loadrip07.result
- test_64_loadrip07.test
- test_64_loadrip08.asm
- test_64_loadrip08.result
- test_64_loadrip08.test
- test_64_loadrip09.asm
- test_64_loadrip09.result
- test_64_loadrip09.test
- test_64_loadseg01.asm
- test_64_loadseg01.result
- test_64_loadseg01.test
- test_64_moffset.asm
- test_64_moffset.result
- test_64_moffset.test
- test_64_mov.asm
- test_64_mov.result
- test_64_mov.test
- test_64_movszx.asm
- test_64_movszx.result
- test_64_movszx.test
- test_64_nopsled01.asm
- test_64_nopsled01.result
- test_64_nopsled01.test
- test_64_nopsled02.asm
- test_64_nopsled02.result
- test_64_nopsled02.test
- test_64_nopsled03.asm
- test_64_nopsled03.result
- test_64_nopsled03.test
- test_64_popcnt01.asm
- test_64_popcnt01.result
- test_64_popcnt01.test
- test_64_r0_sidt.asm
- test_64_r0_sidt.result
- test_64_r0_sidt.test
- test_64_rcl01.asm
- test_64_rcl01.result
- test_64_rcl01.test
- test_64_rcr01.asm
- test_64_rcr01.result
- test_64_rcr01.test
- test_64_rdtsc.asm
- test_64_rdtsc.result
- test_64_rdtsc.test
- test_64_rol01.asm
- test_64_rol01.result
- test_64_rol01.test
- test_64_ror01.asm
- test_64_ror01.result
- test_64_ror01.test
- test_64_sar01.asm
- test_64_sar01.result
- test_64_sar01.test
- test_64_sbb01.asm
- test_64_sbb01.result
- test_64_sbb01.test
- test_64_selfwrite01.asm
- test_64_selfwrite01.result
- test_64_selfwrite01.test
- test_64_selfwrite02.asm
- test_64_selfwrite02.result
- test_64_selfwrite02.test
- test_64_selfwrite03.asm
- test_64_selfwrite03.result
- test_64_selfwrite03.test
- test_64_shl01.asm
- test_64_shl01.result
- test_64_shl01.test
- test_64_shld01.asm
- test_64_shld01.result
- test_64_shld01.test
- test_64_shld02.asm
- test_64_shld02.result
- test_64_shld02.test
- test_64_shr01.asm
- test_64_shr01.result
- test_64_shr01.test
- test_64_shrd01.asm
- test_64_shrd01.result
- test_64_shrd01.test
- test_64_shrd02.asm
- test_64_shrd02.result
- test_64_shrd02.test
- test_64_sidt.asm
- test_64_sidt.result
- test_64_sidt.test
- test_64_stack_pivot1.asm
- test_64_stack_pivot1.result
- test_64_stack_pivot1.test
- test_64_stack_pivot2.asm
- test_64_stack_pivot2.result
- test_64_stack_pivot2.test
- test_64_stack_pivot3.asm
- test_64_stack_pivot3.result
- test_64_stack_pivot3.test
- test_64_stack_pivot4.asm
- test_64_stack_pivot4.result
- test_64_stack_pivot4.test
- test_64_string.asm
- test_64_string.result
- test_64_string.test
- test_64_sys01.asm
- test_64_sys01.result
- test_64_sys01.test
- test_64_sys02.asm
- test_64_sys02.result
- test_64_sys02.test
- test_64_sys03.asm
- test_64_sys03.result
- test_64_sys03.test
- test_64_zcnt01.asm
- test_64_zcnt01.result
- test_64_zcnt01.test
- test_64_apx01.asm
- test_64_apx01.result
- test_64_apx01.test
- test_64_apx02.asm
- test_64_apx02.result
- test_64_apx02.test
- test_64_apx03.asm
- test_64_apx03.result
- test_64_apx03.test
- test_64_apx04.asm
- test_64_apx04.result
- test_64_apx04.test
- conf-x86.json
- __init__.py
- pybddisasm.c
- pybddisasm.h
- pybddisasm.i
- nd_decode.py
- nd_get_version.py
- LICENSE
- MANIFEST.in
- README.md
- setup.cfg
- setup.py
- emulator.rs
- cpu_modes.rs
- cpuid.rs
- decode_error.rs
- decoded_instruction.rs
- decoder.rs
- fpu_flags.rs
- instruction_category.rs
- isa_set.rs
- lib.rs
- mnemonic.rs
- operand.rs
- rflags.rs
- simd_exceptions.rs
- tuple.rs
- Cargo.toml
- CHANGELOG.md
- README.md
- bddisasm
- bddisasm_wrapper.h
- inc
- lib.rs
- build.rs
- Cargo.toml
- CHANGELOG.md
- LICENSE
- README.md
- Cargo.toml
- fix_symlinks.sh
- README.md
- update_ins.py
- CMakeLists.txt
- disasmtool.c
- disasmtool.h
- disasmtool.vcxproj
- disasmtool.vcxproj.filters
- handle_disasm.c
- handle_shemu.c
- conf.py
- index.rst
- make.bat
- Makefile
- bddisasm.h
- bddisasm_status.h
- bddisasm_types.h
- bddisasm_version.h
- bdshemu.h
- bdshemu_x86.h
- bdx86_api_legacy.h
- bdx86_api_mini.h
- bdx86_constants.h
- bdx86_core.h
- bdx86_cpuidflags.h
- bdx86_registers.h
- cpuid.dat
- flags.dat
- modes.dat
- table_3dnow.dat
- table_evex_1.dat
- table_evex_2.dat
- table_evex_3.dat
- table_evex_4.dat
- table_evex_5.dat
- table_evex_6.dat
- table_evex_7.dat
- table_legacy_0.dat
- table_legacy_1.dat
- table_legacy_2.dat
- table_legacy_3.dat
- table_legacy_fpu.dat
- table_vex_1.dat
- table_vex_2.dat
- table_vex_3.dat
- table_vex_5.dat
- table_vex_7.dat
- table_xop.dat
- __init__.py
- attributes.py
- common.py
- cpu_modes.py
- cpuid.py
- decorators.py
- disasmlib.py
- evex_mode.py
- evex_tuple.py
- exception_type.py
- flags_access.py
- fpu_access.py
- instrux.py
- instrux_grouper.py
- operand.py
- operand_access.py
- prefix_map.py
- simd_exceptions.py
- CMakeLists.txt
- disasmlib.py
- generate_tables.py
- isagenerator.vcxproj
- isagenerator.vcxproj.filters
- Makefile
- README.md
- __init__.py
- core.py
- diff.py
- generate.py
- objects.py
- output.py
- report.py
- summary.py
- util.py
- main.py
- README.md
- .gitignore
- .readthedocs.yaml
- .vsconfig
- bddisasm.pc.in
- bddisasm.sln
- bddisasmConfig.cmake
- benchmark.sh
- CHANGELOG.md
- CMakeLists.txt
- CMakePresets.json
- Dockerfile.fuzzing
- LICENSE
- Makefile
- prepare_fuzzing_image.sh
- README.md
- SECURITY.md
// repository documentation
Was this content helpful?
(0 ratings)
