Giter Site home page Giter Site logo

angorafuzzer / libdft64 Goto Github PK

View Code? Open in Web Editor NEW
231.0 16.0 47.0 290 KB

libdft for Intel Pin 3.x and 64 bit platform. (Dynamic taint tracking, taint analysis)

License: Other

Makefile 0.77% C 12.75% C++ 85.89% Shell 0.18% Dockerfile 0.23% PowerShell 0.18%
security taint-analysis fuzzing dynamic-analysis taint libdft taint-tracking angora

libdft64's Introduction

libdft: Practical Dynamic Data Flow Tracking

These code is modified from VUzzer64, and it is originally from libdft.

News

  • Update Pin version: pin-3.20-98437-gf02b61307-gcc-linux
  • Test in ubuntu 20.04

Features

  • Support Intel Pin 3.x
  • Support Intel 64 bit platform
  • Support basic SSE, AVX instructions.
  • Use BDD data structure described in Angora's paper.

Limitation of our taint propagation rules

  • Byte level
  • Ignore implicit flows
  • Ignore eflags registers

TODO

  • ternary instructions
  • performance optimization
  • support more instructions
  • test for each instruction
  • rules for eflags registers
  • FPU instructions

Contributing guidance

As TaintInduce mentioned, libdft exists the soundness and completeness probelm.

  • The taint propagation rules may be wrong.
  • It only supports the basic instructions, and there are many other instructions it need to support.

If you want to contribute to this, modify the instructions in src/libdft_core.cpp, and pull requests on github for us.

Build

  • Download Intel Pin 3.x and set PIN_ROOT to Pin's directory.
PREFIX=/path-to-install ./install_pin.sh
  • build libdft64
make

Docker

docker build -t libdft ./
docker run --privileged -v /path-to-dir:/data -it --rm libdft /bin/bash

Test

See tools/mini_test.cpp & tools/track.cpp for more defails

cd tools;
make test_mini

Introduction

Dynamic data flow tracking (DFT) deals with the tagging and tracking of "interesting" data as they propagate during program execution. DFT has been repeatedly implemented by a variety of tools for numerous purposes, including protection from buffer overflow and cross-site scripting attacks, analysis of legitimate and malicious software, detection and prevention of information leaks, etc. libdft is a dynamic DFT framework that is at once fast, reusable, and works with commodity software and hardware. It provides an API, which can be used to deliver DFT-enabled tools that can be applied on unmodified binaries running on common operating systems and hardware, thus facilitating research and rapid prototyping.

Installation & Usage

libdft relies on Intel Pin, which is a dynamic binary instrumentation (DBI) framework from Intel. In order to install libdft you first need a working copy on the latest Pin build, as well as the essential build tools for GNU/Linux (i.e., GCC, GNU Make, etc). After downloading and installing Intel Pin please follow the libdft installation instructions.

Tools

libdft is designed to facilitate the creation of "Pin tools" that employ dynamic DFT. As the name implies, libdft is also a shared library, which can be used to transparently perform DFT on binaries. Additionally, it provides an API that enables tool authors to adjust the applied DFT by specifying data sources and sinks, and customize the tag propagation policy. We have included three simple Pin tools inside the tools subdirectory to aid the development of DFT-powered Pintools:

  • nullpin is essentially a null tool that runs a process using Pin without any form of instrumentation or analysis. This tool can be used to measure the overhead imposed by Pin's runtime environment.
  • libdft uses libdft to apply DFT on the application being executed, but does not use any of the API functions to define data sources and sinks (i.e., it does not customize the applied DFT). This tool can be used to evaluate the overhead imposed by libdft.
  • track is an example tool that uses the API of libdft, and serves as template for future meta-tools. In particular, it implements a dynamic taint analysis (DTA) platform by transparently utilizing DFT in unmodified x86 Linux binaries. The sources are arguemnts in __libdft_set_taint, and sinks are arguments in __libdft_get_taint and __libdft_getval_taint. libdft64 is also used in Angora for taint tracking. You can reading code at https://github.com/AngoraFuzzer/Angora/tree/master/pin_mode as example.

DTA operates by tagging all data coming from the network as "tainted", tracking their propagation, and alerting the user when they are used in a way that could compromise his system. In this case, the network is the source of "interesting" data, while instructions that are used to control a program's flow are the sinks. For the x86 architecture, these are jumps and function calls with non-immediate operands, as well as function returns. Oftentimes, attackers are able to manipulate the operands of such instructions by abusing various types of software memory errors such as buffer overflows, format string vulnerabilities, dangling pointers, etc. They can then seize control of a program by redirecting execution to existing code (e.g., return-to-libc, ROP), or their own injected instructions. libdft-dta checks if tainted data are used in indirect control transfers, and if so, it halts execution with an informative message containing the offending instruction and the contents of the instruction pointer EIP.

Usage

After building both libdft and the accompanying tools (i.e., nullpin, libdft, and track), you can apply them directly in unmodified x86 Linux binaries as follows (assuming that you have added Pin's location to your PATH, and installed libdft in your home directory):

pin -t obj-intel64/track.so -- obj-intel64/mini_test.exe  cur_input

Arguments processed by Pin

  • -follow_execv: Instructs Pin to also instrument all processes spawned using the exec(3) class system calls by the program.
  • -t: Specifies the Pin tool to be used.

Research

Following are some publications that rely on libdft:

libdft64's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libdft64's Issues

Cannot build libdft64

I got these errors while installing libdft64 from source:
~/libdft64$ make
cd src && CPPFLAGS= DFTFLAGS= make
make[1]: Entering directory '/home/admin/libdft64/src'
Makefie:20: ../Config/makefile.config: No such file or directoryl
Makefile:22: /Config/makefile.default.rules: No such file or directory
make[1]: *** No rule to make target '/Config/makefile.default.rules'. Stop.
make[1]: Leaving directory '/home/admin/libdft64/src'
Makefile:17: recipe for target 'dftsrc' failed
make: *** [dftsrc] Error 2

64 bit support

I am still getting familiar with the API of the library, I would like to as if the example "libdft-dta.cpp", is supposed to work with 64 bits. As i understand it is not, and works for 32 and 16-bit only. Also, shouldn't the tagmap_getl(), and tagmap_setl() functions work for 64 bit ?

running libdft-dta problem.

When I tried to run the libdft-dta.so with intel pin, I got this error. Does someone come across it back on?

root@localhost:~/libdft/libdft64# /root/libdft/libdft64/pin-3.20-98437-gf02b61307-gcc-linux/pin -pause_tool 50 -t /root/libdft/libdft64/tools/obj-intel64/libdft-dta.so -- /root/libdft/libdft64/tools/test_overflow.d/testoverflow.bin
E: Unable to load /root/libdft/libdft64/tools/obj-intel64/libdft-dta.so: dlopen failed: cannot locate symbol "thread_ctx_ptr" referenced by "/root/libdft/libdft64/tools/obj-intel64/libdft-dta.so"...

Instruction list

  • XED_ICLASS_INVALID
  • XED_ICLASS_AAA
  • XED_ICLASS_AAD
  • XED_ICLASS_AAM
  • XED_ICLASS_AAS
  • XED_ICLASS_ADC
  • XED_ICLASS_ADCX
  • XED_ICLASS_ADC_LOCK
  • XED_ICLASS_ADD
  • XED_ICLASS_ADDPD
  • XED_ICLASS_ADDPS
  • XED_ICLASS_ADDSD
  • XED_ICLASS_ADDSS
  • XED_ICLASS_ADDSUBPD
  • XED_ICLASS_ADDSUBPS
  • XED_ICLASS_ADD_LOCK
  • XED_ICLASS_ADOX
  • XED_ICLASS_AESDEC
  • XED_ICLASS_AESDECLAST
  • XED_ICLASS_AESENC
  • XED_ICLASS_AESENCLAST
  • XED_ICLASS_AESIMC
  • XED_ICLASS_AESKEYGENASSIST
  • XED_ICLASS_AND
  • XED_ICLASS_ANDN
  • XED_ICLASS_ANDNPD
  • XED_ICLASS_ANDNPS
  • XED_ICLASS_ANDPD
  • XED_ICLASS_ANDPS
  • XED_ICLASS_AND_LOCK
  • XED_ICLASS_ARPL
  • XED_ICLASS_BEXTR
  • XED_ICLASS_BEXTR_XOP
  • XED_ICLASS_BLCFILL
  • XED_ICLASS_BLCI
  • XED_ICLASS_BLCIC
  • XED_ICLASS_BLCMSK
  • XED_ICLASS_BLCS
  • XED_ICLASS_BLENDPD
  • XED_ICLASS_BLENDPS
  • XED_ICLASS_BLENDVPD
  • XED_ICLASS_BLENDVPS
  • XED_ICLASS_BLSFILL
  • XED_ICLASS_BLSI
  • XED_ICLASS_BLSIC
  • XED_ICLASS_BLSMSK
  • XED_ICLASS_BLSR
  • XED_ICLASS_BNDCL
  • XED_ICLASS_BNDCN
  • XED_ICLASS_BNDCU
  • XED_ICLASS_BNDLDX
  • XED_ICLASS_BNDMK
  • XED_ICLASS_BNDMOV
  • XED_ICLASS_BNDSTX
  • XED_ICLASS_BOUND
  • XED_ICLASS_BSF
  • XED_ICLASS_BSR
  • XED_ICLASS_BSWAP
  • XED_ICLASS_BT
  • XED_ICLASS_BTC
  • XED_ICLASS_BTC_LOCK
  • XED_ICLASS_BTR
  • XED_ICLASS_BTR_LOCK
  • XED_ICLASS_BTS
  • XED_ICLASS_BTS_LOCK
  • XED_ICLASS_BZHI
  • XED_ICLASS_CALL_FAR
  • XED_ICLASS_CALL_NEAR
  • XED_ICLASS_CBW
  • XED_ICLASS_CDQ
  • XED_ICLASS_CDQE
  • XED_ICLASS_CLAC
  • XED_ICLASS_CLC
  • XED_ICLASS_CLD
  • XED_ICLASS_CLDEMOTE
  • XED_ICLASS_CLFLUSH
  • XED_ICLASS_CLFLUSHOPT
  • XED_ICLASS_CLGI
  • XED_ICLASS_CLI
  • XED_ICLASS_CLRSSBSY
  • XED_ICLASS_CLTS
  • XED_ICLASS_CLWB
  • XED_ICLASS_CLZERO
  • XED_ICLASS_CMC
  • XED_ICLASS_CMOVB
  • XED_ICLASS_CMOVBE
  • XED_ICLASS_CMOVL
  • XED_ICLASS_CMOVLE
  • XED_ICLASS_CMOVNB
  • XED_ICLASS_CMOVNBE
  • XED_ICLASS_CMOVNL
  • XED_ICLASS_CMOVNLE
  • XED_ICLASS_CMOVNO
  • XED_ICLASS_CMOVNP
  • XED_ICLASS_CMOVNS
  • XED_ICLASS_CMOVNZ
  • XED_ICLASS_CMOVO
  • XED_ICLASS_CMOVP
  • XED_ICLASS_CMOVS
  • XED_ICLASS_CMOVZ
  • XED_ICLASS_CMP
  • XED_ICLASS_CMPPD
  • XED_ICLASS_CMPPS
  • XED_ICLASS_CMPSB
  • XED_ICLASS_CMPSD
  • XED_ICLASS_CMPSD_XMM
  • XED_ICLASS_CMPSQ
  • XED_ICLASS_CMPSS
  • XED_ICLASS_CMPSW
  • XED_ICLASS_CMPXCHG
  • XED_ICLASS_CMPXCHG16B
  • XED_ICLASS_CMPXCHG16B_LOCK
  • XED_ICLASS_CMPXCHG8B
  • XED_ICLASS_CMPXCHG8B_LOCK
  • XED_ICLASS_CMPXCHG_LOCK
  • XED_ICLASS_COMISD
  • XED_ICLASS_COMISS
  • XED_ICLASS_CPUID
  • XED_ICLASS_CQO
  • XED_ICLASS_CRC32
  • XED_ICLASS_CVTDQ2PD
  • XED_ICLASS_CVTDQ2PS
  • XED_ICLASS_CVTPD2DQ
  • XED_ICLASS_CVTPD2PI
  • XED_ICLASS_CVTPD2PS
  • XED_ICLASS_CVTPI2PD
  • XED_ICLASS_CVTPI2PS
  • XED_ICLASS_CVTPS2DQ
  • XED_ICLASS_CVTPS2PD
  • XED_ICLASS_CVTPS2PI
  • XED_ICLASS_CVTSD2SI
  • XED_ICLASS_CVTSD2SS
  • XED_ICLASS_CVTSI2SD
  • XED_ICLASS_CVTSI2SS
  • XED_ICLASS_CVTSS2SD
  • XED_ICLASS_CVTSS2SI
  • XED_ICLASS_CVTTPD2DQ
  • XED_ICLASS_CVTTPD2PI
  • XED_ICLASS_CVTTPS2DQ
  • XED_ICLASS_CVTTPS2PI
  • XED_ICLASS_CVTTSD2SI
  • XED_ICLASS_CVTTSS2SI
  • XED_ICLASS_CWD
  • XED_ICLASS_CWDE
  • XED_ICLASS_DAA
  • XED_ICLASS_DAS
  • XED_ICLASS_DEC
  • XED_ICLASS_DEC_LOCK
  • XED_ICLASS_DIV
  • XED_ICLASS_DIVPD
  • XED_ICLASS_DIVPS
  • XED_ICLASS_DIVSD
  • XED_ICLASS_DIVSS
  • XED_ICLASS_DPPD
  • XED_ICLASS_DPPS
  • XED_ICLASS_EMMS
  • XED_ICLASS_ENCLS
  • XED_ICLASS_ENCLU
  • XED_ICLASS_ENCLV
  • XED_ICLASS_ENDBR32
  • XED_ICLASS_ENDBR64
  • XED_ICLASS_ENTER
  • XED_ICLASS_EXTRACTPS
  • XED_ICLASS_EXTRQ
  • XED_ICLASS_F2XM1
  • XED_ICLASS_FABS
  • XED_ICLASS_FADD
  • XED_ICLASS_FADDP
  • XED_ICLASS_FBLD
  • XED_ICLASS_FBSTP
  • XED_ICLASS_FCHS
  • XED_ICLASS_FCMOVB
  • XED_ICLASS_FCMOVBE
  • XED_ICLASS_FCMOVE
  • XED_ICLASS_FCMOVNB
  • XED_ICLASS_FCMOVNBE
  • XED_ICLASS_FCMOVNE
  • XED_ICLASS_FCMOVNU
  • XED_ICLASS_FCMOVU
  • XED_ICLASS_FCOM
  • XED_ICLASS_FCOMI
  • XED_ICLASS_FCOMIP
  • XED_ICLASS_FCOMP
  • XED_ICLASS_FCOMPP
  • XED_ICLASS_FCOS
  • XED_ICLASS_FDECSTP
  • XED_ICLASS_FDISI8087_NOP
  • XED_ICLASS_FDIV
  • XED_ICLASS_FDIVP
  • XED_ICLASS_FDIVR
  • XED_ICLASS_FDIVRP
  • XED_ICLASS_FEMMS
  • XED_ICLASS_FENI8087_NOP
  • XED_ICLASS_FFREE
  • XED_ICLASS_FFREEP
  • XED_ICLASS_FIADD
  • XED_ICLASS_FICOM
  • XED_ICLASS_FICOMP
  • XED_ICLASS_FIDIV
  • XED_ICLASS_FIDIVR
  • XED_ICLASS_FILD
  • XED_ICLASS_FIMUL
  • XED_ICLASS_FINCSTP
  • XED_ICLASS_FIST
  • XED_ICLASS_FISTP
  • XED_ICLASS_FISTTP
  • XED_ICLASS_FISUB
  • XED_ICLASS_FISUBR
  • XED_ICLASS_FLD
  • XED_ICLASS_FLD1
  • XED_ICLASS_FLDCW
  • XED_ICLASS_FLDENV
  • XED_ICLASS_FLDL2E
  • XED_ICLASS_FLDL2T
  • XED_ICLASS_FLDLG2
  • XED_ICLASS_FLDLN2
  • XED_ICLASS_FLDPI
  • XED_ICLASS_FLDZ
  • XED_ICLASS_FMUL
  • XED_ICLASS_FMULP
  • XED_ICLASS_FNCLEX
  • XED_ICLASS_FNINIT
  • XED_ICLASS_FNOP
  • XED_ICLASS_FNSAVE
  • XED_ICLASS_FNSTCW
  • XED_ICLASS_FNSTENV
  • XED_ICLASS_FNSTSW
  • XED_ICLASS_FPATAN
  • XED_ICLASS_FPREM
  • XED_ICLASS_FPREM1
  • XED_ICLASS_FPTAN
  • XED_ICLASS_FRNDINT
  • XED_ICLASS_FRSTOR
  • XED_ICLASS_FSCALE
  • XED_ICLASS_FSETPM287_NOP
  • XED_ICLASS_FSIN
  • XED_ICLASS_FSINCOS
  • XED_ICLASS_FSQRT
  • XED_ICLASS_FST
  • XED_ICLASS_FSTP
  • XED_ICLASS_FSTPNCE
  • XED_ICLASS_FSUB
  • XED_ICLASS_FSUBP
  • XED_ICLASS_FSUBR
  • XED_ICLASS_FSUBRP
  • XED_ICLASS_FTST
  • XED_ICLASS_FUCOM
  • XED_ICLASS_FUCOMI
  • XED_ICLASS_FUCOMIP
  • XED_ICLASS_FUCOMP
  • XED_ICLASS_FUCOMPP
  • XED_ICLASS_FWAIT
  • XED_ICLASS_FXAM
  • XED_ICLASS_FXCH
  • XED_ICLASS_FXRSTOR
  • XED_ICLASS_FXRSTOR64
  • XED_ICLASS_FXSAVE
  • XED_ICLASS_FXSAVE64
  • XED_ICLASS_FXTRACT
  • XED_ICLASS_FYL2X
  • XED_ICLASS_FYL2XP1
  • XED_ICLASS_GETSEC
  • XED_ICLASS_GF2P8AFFINEINVQB
  • XED_ICLASS_GF2P8AFFINEQB
  • XED_ICLASS_GF2P8MULB
  • XED_ICLASS_HADDPD
  • XED_ICLASS_HADDPS
  • XED_ICLASS_HLT
  • XED_ICLASS_HSUBPD
  • XED_ICLASS_HSUBPS
  • XED_ICLASS_IDIV
  • XED_ICLASS_IMUL
  • XED_ICLASS_IN
  • XED_ICLASS_INC
  • XED_ICLASS_INCSSPD
  • XED_ICLASS_INCSSPQ
  • XED_ICLASS_INC_LOCK
  • XED_ICLASS_INSB
  • XED_ICLASS_INSD
  • XED_ICLASS_INSERTPS
  • XED_ICLASS_INSERTQ
  • XED_ICLASS_INSW
  • XED_ICLASS_INT
  • XED_ICLASS_INT1
  • XED_ICLASS_INT3
  • XED_ICLASS_INTO
  • XED_ICLASS_INVD
  • XED_ICLASS_INVEPT
  • XED_ICLASS_INVLPG
  • XED_ICLASS_INVLPGA
  • XED_ICLASS_INVPCID
  • XED_ICLASS_INVVPID
  • XED_ICLASS_IRET
  • XED_ICLASS_IRETD
  • XED_ICLASS_IRETQ
  • XED_ICLASS_JB
  • XED_ICLASS_JBE
  • XED_ICLASS_JCXZ
  • XED_ICLASS_JECXZ
  • XED_ICLASS_JL
  • XED_ICLASS_JLE
  • XED_ICLASS_JMP
  • XED_ICLASS_JMP_FAR
  • XED_ICLASS_JNB
  • XED_ICLASS_JNBE
  • XED_ICLASS_JNL
  • XED_ICLASS_JNLE
  • XED_ICLASS_JNO
  • XED_ICLASS_JNP
  • XED_ICLASS_JNS
  • XED_ICLASS_JNZ
  • XED_ICLASS_JO
  • XED_ICLASS_JP
  • XED_ICLASS_JRCXZ
  • XED_ICLASS_JS
  • XED_ICLASS_JZ
  • XED_ICLASS_KADDB
  • XED_ICLASS_KADDD
  • XED_ICLASS_KADDQ
  • XED_ICLASS_KADDW
  • XED_ICLASS_KANDB
  • XED_ICLASS_KANDD
  • XED_ICLASS_KANDNB
  • XED_ICLASS_KANDND
  • XED_ICLASS_KANDNQ
  • XED_ICLASS_KANDNW
  • XED_ICLASS_KANDQ
  • XED_ICLASS_KANDW
  • XED_ICLASS_KMOVB
  • XED_ICLASS_KMOVD
  • XED_ICLASS_KMOVQ
  • XED_ICLASS_KMOVW
  • XED_ICLASS_KNOTB
  • XED_ICLASS_KNOTD
  • XED_ICLASS_KNOTQ
  • XED_ICLASS_KNOTW
  • XED_ICLASS_KORB
  • XED_ICLASS_KORD
  • XED_ICLASS_KORQ
  • XED_ICLASS_KORTESTB
  • XED_ICLASS_KORTESTD
  • XED_ICLASS_KORTESTQ
  • XED_ICLASS_KORTESTW
  • XED_ICLASS_KORW
  • XED_ICLASS_KSHIFTLB
  • XED_ICLASS_KSHIFTLD
  • XED_ICLASS_KSHIFTLQ
  • XED_ICLASS_KSHIFTLW
  • XED_ICLASS_KSHIFTRB
  • XED_ICLASS_KSHIFTRD
  • XED_ICLASS_KSHIFTRQ
  • XED_ICLASS_KSHIFTRW
  • XED_ICLASS_KTESTB
  • XED_ICLASS_KTESTD
  • XED_ICLASS_KTESTQ
  • XED_ICLASS_KTESTW
  • XED_ICLASS_KUNPCKBW
  • XED_ICLASS_KUNPCKDQ
  • XED_ICLASS_KUNPCKWD
  • XED_ICLASS_KXNORB
  • XED_ICLASS_KXNORD
  • XED_ICLASS_KXNORQ
  • XED_ICLASS_KXNORW
  • XED_ICLASS_KXORB
  • XED_ICLASS_KXORD
  • XED_ICLASS_KXORQ
  • XED_ICLASS_KXORW
  • XED_ICLASS_LAHF
  • XED_ICLASS_LAR
  • XED_ICLASS_LDDQU
  • XED_ICLASS_LDMXCSR
  • XED_ICLASS_LDS
  • XED_ICLASS_LEA
  • XED_ICLASS_LEAVE
  • XED_ICLASS_LES
  • XED_ICLASS_LFENCE
  • XED_ICLASS_LFS
  • XED_ICLASS_LGDT
  • XED_ICLASS_LGS
  • XED_ICLASS_LIDT
  • XED_ICLASS_LLDT
  • XED_ICLASS_LLWPCB
  • XED_ICLASS_LMSW
  • XED_ICLASS_LODSB
  • XED_ICLASS_LODSD
  • XED_ICLASS_LODSQ
  • XED_ICLASS_LODSW
  • XED_ICLASS_LOOP
  • XED_ICLASS_LOOPE
  • XED_ICLASS_LOOPNE
  • XED_ICLASS_LSL
  • XED_ICLASS_LSS
  • XED_ICLASS_LTR
  • XED_ICLASS_LWPINS
  • XED_ICLASS_LWPVAL
  • XED_ICLASS_LZCNT
  • XED_ICLASS_MASKMOVDQU
  • XED_ICLASS_MASKMOVQ
  • XED_ICLASS_MAXPD
  • XED_ICLASS_MAXPS
  • XED_ICLASS_MAXSD
  • XED_ICLASS_MAXSS
  • XED_ICLASS_MFENCE
  • XED_ICLASS_MINPD
  • XED_ICLASS_MINPS
  • XED_ICLASS_MINSD
  • XED_ICLASS_MINSS
  • XED_ICLASS_MONITOR
  • XED_ICLASS_MONITORX
  • XED_ICLASS_MOV
  • XED_ICLASS_MOVAPD
  • XED_ICLASS_MOVAPS
  • XED_ICLASS_MOVBE
  • XED_ICLASS_MOVD
  • XED_ICLASS_MOVDDUP
  • XED_ICLASS_MOVDIR64B
  • XED_ICLASS_MOVDIRI
  • XED_ICLASS_MOVDQ2Q
  • XED_ICLASS_MOVDQA
  • XED_ICLASS_MOVDQU
  • XED_ICLASS_MOVHLPS
  • XED_ICLASS_MOVHPD
  • XED_ICLASS_MOVHPS
  • XED_ICLASS_MOVLHPS
  • XED_ICLASS_MOVLPD
  • XED_ICLASS_MOVLPS
  • XED_ICLASS_MOVMSKPD
  • XED_ICLASS_MOVMSKPS
  • XED_ICLASS_MOVNTDQ
  • XED_ICLASS_MOVNTDQA
  • XED_ICLASS_MOVNTI
  • XED_ICLASS_MOVNTPD
  • XED_ICLASS_MOVNTPS
  • XED_ICLASS_MOVNTQ
  • XED_ICLASS_MOVNTSD
  • XED_ICLASS_MOVNTSS
  • XED_ICLASS_MOVQ
  • XED_ICLASS_MOVQ2DQ
  • XED_ICLASS_MOVSB
  • XED_ICLASS_MOVSD
  • XED_ICLASS_MOVSD_XMM
  • XED_ICLASS_MOVSHDUP
  • XED_ICLASS_MOVSLDUP
  • XED_ICLASS_MOVSQ
  • XED_ICLASS_MOVSS
  • XED_ICLASS_MOVSW
  • XED_ICLASS_MOVSX
  • XED_ICLASS_MOVSXD
  • XED_ICLASS_MOVUPD
  • XED_ICLASS_MOVUPS
  • XED_ICLASS_MOVZX
  • XED_ICLASS_MOV_CR
  • XED_ICLASS_MOV_DR
  • XED_ICLASS_MPSADBW
  • XED_ICLASS_MUL
  • XED_ICLASS_MULPD
  • XED_ICLASS_MULPS
  • XED_ICLASS_MULSD
  • XED_ICLASS_MULSS
  • XED_ICLASS_MULX
  • XED_ICLASS_MWAIT
  • XED_ICLASS_MWAITX
  • XED_ICLASS_NEG
  • XED_ICLASS_NEG_LOCK
  • XED_ICLASS_NOP
  • XED_ICLASS_NOP2
  • XED_ICLASS_NOP3
  • XED_ICLASS_NOP4
  • XED_ICLASS_NOP5
  • XED_ICLASS_NOP6
  • XED_ICLASS_NOP7
  • XED_ICLASS_NOP8
  • XED_ICLASS_NOP9
  • XED_ICLASS_NOT
  • XED_ICLASS_NOT_LOCK
  • XED_ICLASS_OR
  • XED_ICLASS_ORPD
  • XED_ICLASS_ORPS
  • XED_ICLASS_OR_LOCK
  • XED_ICLASS_OUT
  • XED_ICLASS_OUTSB
  • XED_ICLASS_OUTSD
  • XED_ICLASS_OUTSW
  • XED_ICLASS_PABSB
  • XED_ICLASS_PABSD
  • XED_ICLASS_PABSW
  • XED_ICLASS_PACKSSDW
  • XED_ICLASS_PACKSSWB
  • XED_ICLASS_PACKUSDW
  • XED_ICLASS_PACKUSWB
  • XED_ICLASS_PADDB
  • XED_ICLASS_PADDD
  • XED_ICLASS_PADDQ
  • XED_ICLASS_PADDSB
  • XED_ICLASS_PADDSW
  • XED_ICLASS_PADDUSB
  • XED_ICLASS_PADDUSW
  • XED_ICLASS_PADDW
  • XED_ICLASS_PALIGNR
  • XED_ICLASS_PAND
  • XED_ICLASS_PANDN
  • XED_ICLASS_PAUSE
  • XED_ICLASS_PAVGB
  • XED_ICLASS_PAVGUSB
  • XED_ICLASS_PAVGW
  • XED_ICLASS_PBLENDVB
  • XED_ICLASS_PBLENDW
  • XED_ICLASS_PCLMULQDQ
  • XED_ICLASS_PCMPEQB
  • XED_ICLASS_PCMPEQD
  • XED_ICLASS_PCMPEQQ
  • XED_ICLASS_PCMPEQW
  • XED_ICLASS_PCMPESTRI
  • XED_ICLASS_PCMPESTRM
  • XED_ICLASS_PCMPGTB
  • XED_ICLASS_PCMPGTD
  • XED_ICLASS_PCMPGTQ
  • XED_ICLASS_PCMPGTW
  • XED_ICLASS_PCMPISTRI
  • XED_ICLASS_PCMPISTRM
  • XED_ICLASS_PCONFIG
  • XED_ICLASS_PDEP
  • XED_ICLASS_PEXT
  • XED_ICLASS_PEXTRB
  • XED_ICLASS_PEXTRD
  • XED_ICLASS_PEXTRQ
  • XED_ICLASS_PEXTRW
  • XED_ICLASS_PEXTRW_SSE4
  • XED_ICLASS_PF2ID
  • XED_ICLASS_PF2IW
  • XED_ICLASS_PFACC
  • XED_ICLASS_PFADD
  • XED_ICLASS_PFCMPEQ
  • XED_ICLASS_PFCMPGE
  • XED_ICLASS_PFCMPGT
  • XED_ICLASS_PFCPIT1
  • XED_ICLASS_PFMAX
  • XED_ICLASS_PFMIN
  • XED_ICLASS_PFMUL
  • XED_ICLASS_PFNACC
  • XED_ICLASS_PFPNACC
  • XED_ICLASS_PFRCP
  • XED_ICLASS_PFRCPIT2
  • XED_ICLASS_PFRSQIT1
  • XED_ICLASS_PFSQRT
  • XED_ICLASS_PFSUB
  • XED_ICLASS_PFSUBR
  • XED_ICLASS_PHADDD
  • XED_ICLASS_PHADDSW
  • XED_ICLASS_PHADDW
  • XED_ICLASS_PHMINPOSUW
  • XED_ICLASS_PHSUBD
  • XED_ICLASS_PHSUBSW
  • XED_ICLASS_PHSUBW
  • XED_ICLASS_PI2FD
  • XED_ICLASS_PI2FW
  • XED_ICLASS_PINSRB
  • XED_ICLASS_PINSRD
  • XED_ICLASS_PINSRQ
  • XED_ICLASS_PINSRW
  • XED_ICLASS_PMADDUBSW
  • XED_ICLASS_PMADDWD
  • XED_ICLASS_PMAXSB
  • XED_ICLASS_PMAXSD
  • XED_ICLASS_PMAXSW
  • XED_ICLASS_PMAXUB
  • XED_ICLASS_PMAXUD
  • XED_ICLASS_PMAXUW
  • XED_ICLASS_PMINSB
  • XED_ICLASS_PMINSD
  • XED_ICLASS_PMINSW
  • XED_ICLASS_PMINUB
  • XED_ICLASS_PMINUD
  • XED_ICLASS_PMINUW
  • XED_ICLASS_PMOVMSKB
  • XED_ICLASS_PMOVSXBD
  • XED_ICLASS_PMOVSXBQ
  • XED_ICLASS_PMOVSXBW
  • XED_ICLASS_PMOVSXDQ
  • XED_ICLASS_PMOVSXWD
  • XED_ICLASS_PMOVSXWQ
  • XED_ICLASS_PMOVZXBD
  • XED_ICLASS_PMOVZXBQ
  • XED_ICLASS_PMOVZXBW
  • XED_ICLASS_PMOVZXDQ
  • XED_ICLASS_PMOVZXWD
  • XED_ICLASS_PMOVZXWQ
  • XED_ICLASS_PMULDQ
  • XED_ICLASS_PMULHRSW
  • XED_ICLASS_PMULHRW
  • XED_ICLASS_PMULHUW
  • XED_ICLASS_PMULHW
  • XED_ICLASS_PMULLD
  • XED_ICLASS_PMULLW
  • XED_ICLASS_PMULUDQ
  • XED_ICLASS_POP
  • XED_ICLASS_POPA
  • XED_ICLASS_POPAD
  • XED_ICLASS_POPCNT
  • XED_ICLASS_POPF
  • XED_ICLASS_POPFD
  • XED_ICLASS_POPFQ
  • XED_ICLASS_POR
  • XED_ICLASS_PREFETCHNTA
  • XED_ICLASS_PREFETCHT0
  • XED_ICLASS_PREFETCHT1
  • XED_ICLASS_PREFETCHT2
  • XED_ICLASS_PREFETCHW
  • XED_ICLASS_PREFETCHWT1
  • XED_ICLASS_PREFETCH_EXCLUSIVE
  • XED_ICLASS_PREFETCH_RESERVED
  • XED_ICLASS_PSADBW
  • XED_ICLASS_PSHUFB
  • XED_ICLASS_PSHUFD
  • XED_ICLASS_PSHUFHW
  • XED_ICLASS_PSHUFLW
  • XED_ICLASS_PSHUFW
  • XED_ICLASS_PSIGNB
  • XED_ICLASS_PSIGND
  • XED_ICLASS_PSIGNW
  • XED_ICLASS_PSLLD
  • XED_ICLASS_PSLLDQ
  • XED_ICLASS_PSLLQ
  • XED_ICLASS_PSLLW
  • XED_ICLASS_PSRAD
  • XED_ICLASS_PSRAW
  • XED_ICLASS_PSRLD
  • XED_ICLASS_PSRLDQ
  • XED_ICLASS_PSRLQ
  • XED_ICLASS_PSRLW
  • XED_ICLASS_PSUBB
  • XED_ICLASS_PSUBD
  • XED_ICLASS_PSUBQ
  • XED_ICLASS_PSUBSB
  • XED_ICLASS_PSUBSW
  • XED_ICLASS_PSUBUSB
  • XED_ICLASS_PSUBUSW
  • XED_ICLASS_PSUBW
  • XED_ICLASS_PSWAPD
  • XED_ICLASS_PTEST
  • XED_ICLASS_PTWRITE
  • XED_ICLASS_PUNPCKHBW
  • XED_ICLASS_PUNPCKHDQ
  • XED_ICLASS_PUNPCKHQDQ
  • XED_ICLASS_PUNPCKHWD
  • XED_ICLASS_PUNPCKLBW
  • XED_ICLASS_PUNPCKLDQ
  • XED_ICLASS_PUNPCKLQDQ
  • XED_ICLASS_PUNPCKLWD
  • XED_ICLASS_PUSH
  • XED_ICLASS_PUSHA
  • XED_ICLASS_PUSHAD
  • XED_ICLASS_PUSHF
  • XED_ICLASS_PUSHFD
  • XED_ICLASS_PUSHFQ
  • XED_ICLASS_PXOR
  • XED_ICLASS_RCL
  • XED_ICLASS_RCPPS
  • XED_ICLASS_RCPSS
  • XED_ICLASS_RCR
  • XED_ICLASS_RDFSBASE
  • XED_ICLASS_RDGSBASE
  • XED_ICLASS_RDMSR
  • XED_ICLASS_RDPID
  • XED_ICLASS_RDPKRU
  • XED_ICLASS_RDPMC
  • XED_ICLASS_RDRAND
  • XED_ICLASS_RDSEED
  • XED_ICLASS_RDSSPD
  • XED_ICLASS_RDSSPQ
  • XED_ICLASS_RDTSC
  • XED_ICLASS_RDTSCP
  • XED_ICLASS_REPE_CMPSB
  • XED_ICLASS_REPE_CMPSD
  • XED_ICLASS_REPE_CMPSQ
  • XED_ICLASS_REPE_CMPSW
  • XED_ICLASS_REPE_SCASB
  • XED_ICLASS_REPE_SCASD
  • XED_ICLASS_REPE_SCASQ
  • XED_ICLASS_REPE_SCASW
  • XED_ICLASS_REPNE_CMPSB
  • XED_ICLASS_REPNE_CMPSD
  • XED_ICLASS_REPNE_CMPSQ
  • XED_ICLASS_REPNE_CMPSW
  • XED_ICLASS_REPNE_SCASB
  • XED_ICLASS_REPNE_SCASD
  • XED_ICLASS_REPNE_SCASQ
  • XED_ICLASS_REPNE_SCASW
  • XED_ICLASS_REP_INSB
  • XED_ICLASS_REP_INSD
  • XED_ICLASS_REP_INSW
  • XED_ICLASS_REP_LODSB
  • XED_ICLASS_REP_LODSD
  • XED_ICLASS_REP_LODSQ
  • XED_ICLASS_REP_LODSW
  • XED_ICLASS_REP_MOVSB
  • XED_ICLASS_REP_MOVSD
  • XED_ICLASS_REP_MOVSQ
  • XED_ICLASS_REP_MOVSW
  • XED_ICLASS_REP_OUTSB
  • XED_ICLASS_REP_OUTSD
  • XED_ICLASS_REP_OUTSW
  • XED_ICLASS_REP_STOSB
  • XED_ICLASS_REP_STOSD
  • XED_ICLASS_REP_STOSQ
  • XED_ICLASS_REP_STOSW
  • XED_ICLASS_RET_FAR
  • XED_ICLASS_RET_NEAR
  • XED_ICLASS_ROL
  • XED_ICLASS_ROR
  • XED_ICLASS_RORX
  • XED_ICLASS_ROUNDPD
  • XED_ICLASS_ROUNDPS
  • XED_ICLASS_ROUNDSD
  • XED_ICLASS_ROUNDSS
  • XED_ICLASS_RSM
  • XED_ICLASS_RSQRTPS
  • XED_ICLASS_RSQRTSS
  • XED_ICLASS_RSTORSSP
  • XED_ICLASS_SAHF
  • XED_ICLASS_SALC
  • XED_ICLASS_SAR
  • XED_ICLASS_SARX
  • XED_ICLASS_SAVEPREVSSP
  • XED_ICLASS_SBB
  • XED_ICLASS_SBB_LOCK
  • XED_ICLASS_SCASB
  • XED_ICLASS_SCASD
  • XED_ICLASS_SCASQ
  • XED_ICLASS_SCASW
  • XED_ICLASS_SETB
  • XED_ICLASS_SETBE
  • XED_ICLASS_SETL
  • XED_ICLASS_SETLE
  • XED_ICLASS_SETNB
  • XED_ICLASS_SETNBE
  • XED_ICLASS_SETNL
  • XED_ICLASS_SETNLE
  • XED_ICLASS_SETNO
  • XED_ICLASS_SETNP
  • XED_ICLASS_SETNS
  • XED_ICLASS_SETNZ
  • XED_ICLASS_SETO
  • XED_ICLASS_SETP
  • XED_ICLASS_SETS
  • XED_ICLASS_SETSSBSY
  • XED_ICLASS_SETZ
  • XED_ICLASS_SFENCE
  • XED_ICLASS_SGDT
  • XED_ICLASS_SHA1MSG1
  • XED_ICLASS_SHA1MSG2
  • XED_ICLASS_SHA1NEXTE
  • XED_ICLASS_SHA1RNDS4
  • XED_ICLASS_SHA256MSG1
  • XED_ICLASS_SHA256MSG2
  • XED_ICLASS_SHA256RNDS2
  • XED_ICLASS_SHL
  • XED_ICLASS_SHLD
  • XED_ICLASS_SHLX
  • XED_ICLASS_SHR
  • XED_ICLASS_SHRD
  • XED_ICLASS_SHRX
  • XED_ICLASS_SHUFPD
  • XED_ICLASS_SHUFPS
  • XED_ICLASS_SIDT
  • XED_ICLASS_SKINIT
  • XED_ICLASS_SLDT
  • XED_ICLASS_SLWPCB
  • XED_ICLASS_SMSW
  • XED_ICLASS_SQRTPD
  • XED_ICLASS_SQRTPS
  • XED_ICLASS_SQRTSD
  • XED_ICLASS_SQRTSS
  • XED_ICLASS_STAC
  • XED_ICLASS_STC
  • XED_ICLASS_STD
  • XED_ICLASS_STGI
  • XED_ICLASS_STI
  • XED_ICLASS_STMXCSR
  • XED_ICLASS_STOSB
  • XED_ICLASS_STOSD
  • XED_ICLASS_STOSQ
  • XED_ICLASS_STOSW
  • XED_ICLASS_STR
  • XED_ICLASS_SUB
  • XED_ICLASS_SUBPD
  • XED_ICLASS_SUBPS
  • XED_ICLASS_SUBSD
  • XED_ICLASS_SUBSS
  • XED_ICLASS_SUB_LOCK
  • XED_ICLASS_SWAPGS
  • XED_ICLASS_SYSCALL
  • XED_ICLASS_SYSCALL_AMD
  • XED_ICLASS_SYSENTER
  • XED_ICLASS_SYSEXIT
  • XED_ICLASS_SYSRET
  • XED_ICLASS_SYSRET_AMD
  • XED_ICLASS_T1MSKC
  • XED_ICLASS_TEST
  • XED_ICLASS_TPAUSE
  • XED_ICLASS_TZCNT
  • XED_ICLASS_TZMSK
  • XED_ICLASS_UCOMISD
  • XED_ICLASS_UCOMISS
  • XED_ICLASS_UD0
  • XED_ICLASS_UD1
  • XED_ICLASS_UD2
  • XED_ICLASS_UMONITOR
  • XED_ICLASS_UMWAIT
  • XED_ICLASS_UNPCKHPD
  • XED_ICLASS_UNPCKHPS
  • XED_ICLASS_UNPCKLPD
  • XED_ICLASS_UNPCKLPS
  • XED_ICLASS_V4FMADDPS
  • XED_ICLASS_V4FMADDSS
  • XED_ICLASS_V4FNMADDPS
  • XED_ICLASS_V4FNMADDSS
  • XED_ICLASS_VADDPD
  • XED_ICLASS_VADDPS
  • XED_ICLASS_VADDSD
  • XED_ICLASS_VADDSS
  • XED_ICLASS_VADDSUBPD
  • XED_ICLASS_VADDSUBPS
  • XED_ICLASS_VAESDEC
  • XED_ICLASS_VAESDECLAST
  • XED_ICLASS_VAESENC
  • XED_ICLASS_VAESENCLAST
  • XED_ICLASS_VAESIMC
  • XED_ICLASS_VAESKEYGENASSIST
  • XED_ICLASS_VALIGND
  • XED_ICLASS_VALIGNQ
  • XED_ICLASS_VANDNPD
  • XED_ICLASS_VANDNPS
  • XED_ICLASS_VANDPD
  • XED_ICLASS_VANDPS
  • XED_ICLASS_VBLENDMPD
  • XED_ICLASS_VBLENDMPS
  • XED_ICLASS_VBLENDPD
  • XED_ICLASS_VBLENDPS
  • XED_ICLASS_VBLENDVPD
  • XED_ICLASS_VBLENDVPS
  • XED_ICLASS_VBROADCASTF128
  • XED_ICLASS_VBROADCASTF32X2
  • XED_ICLASS_VBROADCASTF32X4
  • XED_ICLASS_VBROADCASTF32X8
  • XED_ICLASS_VBROADCASTF64X2
  • XED_ICLASS_VBROADCASTF64X4
  • XED_ICLASS_VBROADCASTI128
  • XED_ICLASS_VBROADCASTI32X2
  • XED_ICLASS_VBROADCASTI32X4
  • XED_ICLASS_VBROADCASTI32X8
  • XED_ICLASS_VBROADCASTI64X2
  • XED_ICLASS_VBROADCASTI64X4
  • XED_ICLASS_VBROADCASTSD
  • XED_ICLASS_VBROADCASTSS
  • XED_ICLASS_VCMPPD
  • XED_ICLASS_VCMPPS
  • XED_ICLASS_VCMPSD
  • XED_ICLASS_VCMPSS
  • XED_ICLASS_VCOMISD
  • XED_ICLASS_VCOMISS
  • XED_ICLASS_VCOMPRESSPD
  • XED_ICLASS_VCOMPRESSPS
  • XED_ICLASS_VCVTDQ2PD
  • XED_ICLASS_VCVTDQ2PS
  • XED_ICLASS_VCVTPD2DQ
  • XED_ICLASS_VCVTPD2PS
  • XED_ICLASS_VCVTPD2QQ
  • XED_ICLASS_VCVTPD2UDQ
  • XED_ICLASS_VCVTPD2UQQ
  • XED_ICLASS_VCVTPH2PS
  • XED_ICLASS_VCVTPS2DQ
  • XED_ICLASS_VCVTPS2PD
  • XED_ICLASS_VCVTPS2PH
  • XED_ICLASS_VCVTPS2QQ
  • XED_ICLASS_VCVTPS2UDQ
  • XED_ICLASS_VCVTPS2UQQ
  • XED_ICLASS_VCVTQQ2PD
  • XED_ICLASS_VCVTQQ2PS
  • XED_ICLASS_VCVTSD2SI
  • XED_ICLASS_VCVTSD2SS
  • XED_ICLASS_VCVTSD2USI
  • XED_ICLASS_VCVTSI2SD
  • XED_ICLASS_VCVTSI2SS
  • XED_ICLASS_VCVTSS2SD
  • XED_ICLASS_VCVTSS2SI
  • XED_ICLASS_VCVTSS2USI
  • XED_ICLASS_VCVTTPD2DQ
  • XED_ICLASS_VCVTTPD2QQ
  • XED_ICLASS_VCVTTPD2UDQ
  • XED_ICLASS_VCVTTPD2UQQ
  • XED_ICLASS_VCVTTPS2DQ
  • XED_ICLASS_VCVTTPS2QQ
  • XED_ICLASS_VCVTTPS2UDQ
  • XED_ICLASS_VCVTTPS2UQQ
  • XED_ICLASS_VCVTTSD2SI
  • XED_ICLASS_VCVTTSD2USI
  • XED_ICLASS_VCVTTSS2SI
  • XED_ICLASS_VCVTTSS2USI
  • XED_ICLASS_VCVTUDQ2PD
  • XED_ICLASS_VCVTUDQ2PS
  • XED_ICLASS_VCVTUQQ2PD
  • XED_ICLASS_VCVTUQQ2PS
  • XED_ICLASS_VCVTUSI2SD
  • XED_ICLASS_VCVTUSI2SS
  • XED_ICLASS_VDBPSADBW
  • XED_ICLASS_VDIVPD
  • XED_ICLASS_VDIVPS
  • XED_ICLASS_VDIVSD
  • XED_ICLASS_VDIVSS
  • XED_ICLASS_VDPPD
  • XED_ICLASS_VDPPS
  • XED_ICLASS_VERR
  • XED_ICLASS_VERW
  • XED_ICLASS_VEXP2PD
  • XED_ICLASS_VEXP2PS
  • XED_ICLASS_VEXPANDPD
  • XED_ICLASS_VEXPANDPS
  • XED_ICLASS_VEXTRACTF128
  • XED_ICLASS_VEXTRACTF32X4
  • XED_ICLASS_VEXTRACTF32X8
  • XED_ICLASS_VEXTRACTF64X2
  • XED_ICLASS_VEXTRACTF64X4
  • XED_ICLASS_VEXTRACTI128
  • XED_ICLASS_VEXTRACTI32X4
  • XED_ICLASS_VEXTRACTI32X8
  • XED_ICLASS_VEXTRACTI64X2
  • XED_ICLASS_VEXTRACTI64X4
  • XED_ICLASS_VEXTRACTPS
  • XED_ICLASS_VFIXUPIMMPD
  • XED_ICLASS_VFIXUPIMMPS
  • XED_ICLASS_VFIXUPIMMSD
  • XED_ICLASS_VFIXUPIMMSS
  • XED_ICLASS_VFMADD132PD
  • XED_ICLASS_VFMADD132PS
  • XED_ICLASS_VFMADD132SD
  • XED_ICLASS_VFMADD132SS
  • XED_ICLASS_VFMADD213PD
  • XED_ICLASS_VFMADD213PS
  • XED_ICLASS_VFMADD213SD
  • XED_ICLASS_VFMADD213SS
  • XED_ICLASS_VFMADD231PD
  • XED_ICLASS_VFMADD231PS
  • XED_ICLASS_VFMADD231SD
  • XED_ICLASS_VFMADD231SS
  • XED_ICLASS_VFMADDPD
  • XED_ICLASS_VFMADDPS
  • XED_ICLASS_VFMADDSD
  • XED_ICLASS_VFMADDSS
  • XED_ICLASS_VFMADDSUB132PD
  • XED_ICLASS_VFMADDSUB132PS
  • XED_ICLASS_VFMADDSUB213PD
  • XED_ICLASS_VFMADDSUB213PS
  • XED_ICLASS_VFMADDSUB231PD
  • XED_ICLASS_VFMADDSUB231PS
  • XED_ICLASS_VFMADDSUBPD
  • XED_ICLASS_VFMADDSUBPS
  • XED_ICLASS_VFMSUB132PD
  • XED_ICLASS_VFMSUB132PS
  • XED_ICLASS_VFMSUB132SD
  • XED_ICLASS_VFMSUB132SS
  • XED_ICLASS_VFMSUB213PD
  • XED_ICLASS_VFMSUB213PS
  • XED_ICLASS_VFMSUB213SD
  • XED_ICLASS_VFMSUB213SS
  • XED_ICLASS_VFMSUB231PD
  • XED_ICLASS_VFMSUB231PS
  • XED_ICLASS_VFMSUB231SD
  • XED_ICLASS_VFMSUB231SS
  • XED_ICLASS_VFMSUBADD132PD
  • XED_ICLASS_VFMSUBADD132PS
  • XED_ICLASS_VFMSUBADD213PD
  • XED_ICLASS_VFMSUBADD213PS
  • XED_ICLASS_VFMSUBADD231PD
  • XED_ICLASS_VFMSUBADD231PS
  • XED_ICLASS_VFMSUBADDPD
  • XED_ICLASS_VFMSUBADDPS
  • XED_ICLASS_VFMSUBPD
  • XED_ICLASS_VFMSUBPS
  • XED_ICLASS_VFMSUBSD
  • XED_ICLASS_VFMSUBSS
  • XED_ICLASS_VFNMADD132PD
  • XED_ICLASS_VFNMADD132PS
  • XED_ICLASS_VFNMADD132SD
  • XED_ICLASS_VFNMADD132SS
  • XED_ICLASS_VFNMADD213PD
  • XED_ICLASS_VFNMADD213PS
  • XED_ICLASS_VFNMADD213SD
  • XED_ICLASS_VFNMADD213SS
  • XED_ICLASS_VFNMADD231PD
  • XED_ICLASS_VFNMADD231PS
  • XED_ICLASS_VFNMADD231SD
  • XED_ICLASS_VFNMADD231SS
  • XED_ICLASS_VFNMADDPD
  • XED_ICLASS_VFNMADDPS
  • XED_ICLASS_VFNMADDSD
  • XED_ICLASS_VFNMADDSS
  • XED_ICLASS_VFNMSUB132PD
  • XED_ICLASS_VFNMSUB132PS
  • XED_ICLASS_VFNMSUB132SD
  • XED_ICLASS_VFNMSUB132SS
  • XED_ICLASS_VFNMSUB213PD
  • XED_ICLASS_VFNMSUB213PS
  • XED_ICLASS_VFNMSUB213SD
  • XED_ICLASS_VFNMSUB213SS
  • XED_ICLASS_VFNMSUB231PD
  • XED_ICLASS_VFNMSUB231PS
  • XED_ICLASS_VFNMSUB231SD
  • XED_ICLASS_VFNMSUB231SS
  • XED_ICLASS_VFNMSUBPD
  • XED_ICLASS_VFNMSUBPS
  • XED_ICLASS_VFNMSUBSD
  • XED_ICLASS_VFNMSUBSS
  • XED_ICLASS_VFPCLASSPD
  • XED_ICLASS_VFPCLASSPS
  • XED_ICLASS_VFPCLASSSD
  • XED_ICLASS_VFPCLASSSS
  • XED_ICLASS_VFRCZPD
  • XED_ICLASS_VFRCZPS
  • XED_ICLASS_VFRCZSD
  • XED_ICLASS_VFRCZSS
  • XED_ICLASS_VGATHERDPD
  • XED_ICLASS_VGATHERDPS
  • XED_ICLASS_VGATHERPF0DPD
  • XED_ICLASS_VGATHERPF0DPS
  • XED_ICLASS_VGATHERPF0QPD
  • XED_ICLASS_VGATHERPF0QPS
  • XED_ICLASS_VGATHERPF1DPD
  • XED_ICLASS_VGATHERPF1DPS
  • XED_ICLASS_VGATHERPF1QPD
  • XED_ICLASS_VGATHERPF1QPS
  • XED_ICLASS_VGATHERQPD
  • XED_ICLASS_VGATHERQPS
  • XED_ICLASS_VGETEXPPD
  • XED_ICLASS_VGETEXPPS
  • XED_ICLASS_VGETEXPSD
  • XED_ICLASS_VGETEXPSS
  • XED_ICLASS_VGETMANTPD
  • XED_ICLASS_VGETMANTPS
  • XED_ICLASS_VGETMANTSD
  • XED_ICLASS_VGETMANTSS
  • XED_ICLASS_VGF2P8AFFINEINVQB
  • XED_ICLASS_VGF2P8AFFINEQB
  • XED_ICLASS_VGF2P8MULB
  • XED_ICLASS_VHADDPD
  • XED_ICLASS_VHADDPS
  • XED_ICLASS_VHSUBPD
  • XED_ICLASS_VHSUBPS
  • XED_ICLASS_VINSERTF128
  • XED_ICLASS_VINSERTF32X4
  • XED_ICLASS_VINSERTF32X8
  • XED_ICLASS_VINSERTF64X2
  • XED_ICLASS_VINSERTF64X4
  • XED_ICLASS_VINSERTI128
  • XED_ICLASS_VINSERTI32X4
  • XED_ICLASS_VINSERTI32X8
  • XED_ICLASS_VINSERTI64X2
  • XED_ICLASS_VINSERTI64X4
  • XED_ICLASS_VINSERTPS
  • XED_ICLASS_VLDDQU
  • XED_ICLASS_VLDMXCSR
  • XED_ICLASS_VMASKMOVDQU
  • XED_ICLASS_VMASKMOVPD
  • XED_ICLASS_VMASKMOVPS
  • XED_ICLASS_VMAXPD
  • XED_ICLASS_VMAXPS
  • XED_ICLASS_VMAXSD
  • XED_ICLASS_VMAXSS
  • XED_ICLASS_VMCALL
  • XED_ICLASS_VMCLEAR
  • XED_ICLASS_VMFUNC
  • XED_ICLASS_VMINPD
  • XED_ICLASS_VMINPS
  • XED_ICLASS_VMINSD
  • XED_ICLASS_VMINSS
  • XED_ICLASS_VMLAUNCH
  • XED_ICLASS_VMLOAD
  • XED_ICLASS_VMMCALL
  • XED_ICLASS_VMOVAPD
  • XED_ICLASS_VMOVAPS
  • XED_ICLASS_VMOVD
  • XED_ICLASS_VMOVDDUP
  • XED_ICLASS_VMOVDQA
  • XED_ICLASS_VMOVDQA32
  • XED_ICLASS_VMOVDQA64
  • XED_ICLASS_VMOVDQU
  • XED_ICLASS_VMOVDQU16
  • XED_ICLASS_VMOVDQU32
  • XED_ICLASS_VMOVDQU64
  • XED_ICLASS_VMOVDQU8
  • XED_ICLASS_VMOVHLPS
  • XED_ICLASS_VMOVHPD
  • XED_ICLASS_VMOVHPS
  • XED_ICLASS_VMOVLHPS
  • XED_ICLASS_VMOVLPD
  • XED_ICLASS_VMOVLPS
  • XED_ICLASS_VMOVMSKPD
  • XED_ICLASS_VMOVMSKPS
  • XED_ICLASS_VMOVNTDQ
  • XED_ICLASS_VMOVNTDQA
  • XED_ICLASS_VMOVNTPD
  • XED_ICLASS_VMOVNTPS
  • XED_ICLASS_VMOVQ
  • XED_ICLASS_VMOVSD
  • XED_ICLASS_VMOVSHDUP
  • XED_ICLASS_VMOVSLDUP
  • XED_ICLASS_VMOVSS
  • XED_ICLASS_VMOVUPD
  • XED_ICLASS_VMOVUPS
  • XED_ICLASS_VMPSADBW
  • XED_ICLASS_VMPTRLD
  • XED_ICLASS_VMPTRST
  • XED_ICLASS_VMREAD
  • XED_ICLASS_VMRESUME
  • XED_ICLASS_VMRUN
  • XED_ICLASS_VMSAVE
  • XED_ICLASS_VMULPD
  • XED_ICLASS_VMULPS
  • XED_ICLASS_VMULSD
  • XED_ICLASS_VMULSS
  • XED_ICLASS_VMWRITE
  • XED_ICLASS_VMXOFF
  • XED_ICLASS_VMXON
  • XED_ICLASS_VORPD
  • XED_ICLASS_VORPS
  • XED_ICLASS_VP4DPWSSD
  • XED_ICLASS_VP4DPWSSDS
  • XED_ICLASS_VPABSB
  • XED_ICLASS_VPABSD
  • XED_ICLASS_VPABSQ
  • XED_ICLASS_VPABSW
  • XED_ICLASS_VPACKSSDW
  • XED_ICLASS_VPACKSSWB
  • XED_ICLASS_VPACKUSDW
  • XED_ICLASS_VPACKUSWB
  • XED_ICLASS_VPADDB
  • XED_ICLASS_VPADDD
  • XED_ICLASS_VPADDQ
  • XED_ICLASS_VPADDSB
  • XED_ICLASS_VPADDSW
  • XED_ICLASS_VPADDUSB
  • XED_ICLASS_VPADDUSW
  • XED_ICLASS_VPADDW
  • XED_ICLASS_VPALIGNR
  • XED_ICLASS_VPAND
  • XED_ICLASS_VPANDD
  • XED_ICLASS_VPANDN
  • XED_ICLASS_VPANDND
  • XED_ICLASS_VPANDNQ
  • XED_ICLASS_VPANDQ
  • XED_ICLASS_VPAVGB
  • XED_ICLASS_VPAVGW
  • XED_ICLASS_VPBLENDD
  • XED_ICLASS_VPBLENDMB
  • XED_ICLASS_VPBLENDMD
  • XED_ICLASS_VPBLENDMQ
  • XED_ICLASS_VPBLENDMW
  • XED_ICLASS_VPBLENDVB
  • XED_ICLASS_VPBLENDW
  • XED_ICLASS_VPBROADCASTB
  • XED_ICLASS_VPBROADCASTD
  • XED_ICLASS_VPBROADCASTMB2Q
  • XED_ICLASS_VPBROADCASTMW2D
  • XED_ICLASS_VPBROADCASTQ
  • XED_ICLASS_VPBROADCASTW
  • XED_ICLASS_VPCLMULQDQ
  • XED_ICLASS_VPCMOV
  • XED_ICLASS_VPCMPB
  • XED_ICLASS_VPCMPD
  • XED_ICLASS_VPCMPEQB
  • XED_ICLASS_VPCMPEQD
  • XED_ICLASS_VPCMPEQQ
  • XED_ICLASS_VPCMPEQW
  • XED_ICLASS_VPCMPESTRI
  • XED_ICLASS_VPCMPESTRM
  • XED_ICLASS_VPCMPGTB
  • XED_ICLASS_VPCMPGTD
  • XED_ICLASS_VPCMPGTQ
  • XED_ICLASS_VPCMPGTW
  • XED_ICLASS_VPCMPISTRI
  • XED_ICLASS_VPCMPISTRM
  • XED_ICLASS_VPCMPQ
  • XED_ICLASS_VPCMPUB
  • XED_ICLASS_VPCMPUD
  • XED_ICLASS_VPCMPUQ
  • XED_ICLASS_VPCMPUW
  • XED_ICLASS_VPCMPW
  • XED_ICLASS_VPCOMB
  • XED_ICLASS_VPCOMD
  • XED_ICLASS_VPCOMPRESSB
  • XED_ICLASS_VPCOMPRESSD
  • XED_ICLASS_VPCOMPRESSQ
  • XED_ICLASS_VPCOMPRESSW
  • XED_ICLASS_VPCOMQ
  • XED_ICLASS_VPCOMUB
  • XED_ICLASS_VPCOMUD
  • XED_ICLASS_VPCOMUQ
  • XED_ICLASS_VPCOMUW
  • XED_ICLASS_VPCOMW
  • XED_ICLASS_VPCONFLICTD
  • XED_ICLASS_VPCONFLICTQ
  • XED_ICLASS_VPDPBUSD
  • XED_ICLASS_VPDPBUSDS
  • XED_ICLASS_VPDPWSSD
  • XED_ICLASS_VPDPWSSDS
  • XED_ICLASS_VPERM2F128
  • XED_ICLASS_VPERM2I128
  • XED_ICLASS_VPERMB
  • XED_ICLASS_VPERMD
  • XED_ICLASS_VPERMI2B
  • XED_ICLASS_VPERMI2D
  • XED_ICLASS_VPERMI2PD
  • XED_ICLASS_VPERMI2PS
  • XED_ICLASS_VPERMI2Q
  • XED_ICLASS_VPERMI2W
  • XED_ICLASS_VPERMIL2PD
  • XED_ICLASS_VPERMIL2PS
  • XED_ICLASS_VPERMILPD
  • XED_ICLASS_VPERMILPS
  • XED_ICLASS_VPERMPD
  • XED_ICLASS_VPERMPS
  • XED_ICLASS_VPERMQ
  • XED_ICLASS_VPERMT2B
  • XED_ICLASS_VPERMT2D
  • XED_ICLASS_VPERMT2PD
  • XED_ICLASS_VPERMT2PS
  • XED_ICLASS_VPERMT2Q
  • XED_ICLASS_VPERMT2W
  • XED_ICLASS_VPERMW
  • XED_ICLASS_VPEXPANDB
  • XED_ICLASS_VPEXPANDD
  • XED_ICLASS_VPEXPANDQ
  • XED_ICLASS_VPEXPANDW
  • XED_ICLASS_VPEXTRB
  • XED_ICLASS_VPEXTRD
  • XED_ICLASS_VPEXTRQ
  • XED_ICLASS_VPEXTRW
  • XED_ICLASS_VPEXTRW_C5
  • XED_ICLASS_VPGATHERDD
  • XED_ICLASS_VPGATHERDQ
  • XED_ICLASS_VPGATHERQD
  • XED_ICLASS_VPGATHERQQ
  • XED_ICLASS_VPHADDBD
  • XED_ICLASS_VPHADDBQ
  • XED_ICLASS_VPHADDBW
  • XED_ICLASS_VPHADDD
  • XED_ICLASS_VPHADDDQ
  • XED_ICLASS_VPHADDSW
  • XED_ICLASS_VPHADDUBD
  • XED_ICLASS_VPHADDUBQ
  • XED_ICLASS_VPHADDUBW
  • XED_ICLASS_VPHADDUDQ
  • XED_ICLASS_VPHADDUWD
  • XED_ICLASS_VPHADDUWQ
  • XED_ICLASS_VPHADDW
  • XED_ICLASS_VPHADDWD
  • XED_ICLASS_VPHADDWQ
  • XED_ICLASS_VPHMINPOSUW
  • XED_ICLASS_VPHSUBBW
  • XED_ICLASS_VPHSUBD
  • XED_ICLASS_VPHSUBDQ
  • XED_ICLASS_VPHSUBSW
  • XED_ICLASS_VPHSUBW
  • XED_ICLASS_VPHSUBWD
  • XED_ICLASS_VPINSRB
  • XED_ICLASS_VPINSRD
  • XED_ICLASS_VPINSRQ
  • XED_ICLASS_VPINSRW
  • XED_ICLASS_VPLZCNTD
  • XED_ICLASS_VPLZCNTQ
  • XED_ICLASS_VPMACSDD
  • XED_ICLASS_VPMACSDQH
  • XED_ICLASS_VPMACSDQL
  • XED_ICLASS_VPMACSSDD
  • XED_ICLASS_VPMACSSDQH
  • XED_ICLASS_VPMACSSDQL
  • XED_ICLASS_VPMACSSWD
  • XED_ICLASS_VPMACSSWW
  • XED_ICLASS_VPMACSWD
  • XED_ICLASS_VPMACSWW
  • XED_ICLASS_VPMADCSSWD
  • XED_ICLASS_VPMADCSWD
  • XED_ICLASS_VPMADD52HUQ
  • XED_ICLASS_VPMADD52LUQ
  • XED_ICLASS_VPMADDUBSW
  • XED_ICLASS_VPMADDWD
  • XED_ICLASS_VPMASKMOVD
  • XED_ICLASS_VPMASKMOVQ
  • XED_ICLASS_VPMAXSB
  • XED_ICLASS_VPMAXSD
  • XED_ICLASS_VPMAXSQ
  • XED_ICLASS_VPMAXSW
  • XED_ICLASS_VPMAXUB
  • XED_ICLASS_VPMAXUD
  • XED_ICLASS_VPMAXUQ
  • XED_ICLASS_VPMAXUW
  • XED_ICLASS_VPMINSB
  • XED_ICLASS_VPMINSD
  • XED_ICLASS_VPMINSQ
  • XED_ICLASS_VPMINSW
  • XED_ICLASS_VPMINUB
  • XED_ICLASS_VPMINUD
  • XED_ICLASS_VPMINUQ
  • XED_ICLASS_VPMINUW
  • XED_ICLASS_VPMOVB2M
  • XED_ICLASS_VPMOVD2M
  • XED_ICLASS_VPMOVDB
  • XED_ICLASS_VPMOVDW
  • XED_ICLASS_VPMOVM2B
  • XED_ICLASS_VPMOVM2D
  • XED_ICLASS_VPMOVM2Q
  • XED_ICLASS_VPMOVM2W
  • XED_ICLASS_VPMOVMSKB
  • XED_ICLASS_VPMOVQ2M
  • XED_ICLASS_VPMOVQB
  • XED_ICLASS_VPMOVQD
  • XED_ICLASS_VPMOVQW
  • XED_ICLASS_VPMOVSDB
  • XED_ICLASS_VPMOVSDW
  • XED_ICLASS_VPMOVSQB
  • XED_ICLASS_VPMOVSQD
  • XED_ICLASS_VPMOVSQW
  • XED_ICLASS_VPMOVSWB
  • XED_ICLASS_VPMOVSXBD
  • XED_ICLASS_VPMOVSXBQ
  • XED_ICLASS_VPMOVSXBW
  • XED_ICLASS_VPMOVSXDQ
  • XED_ICLASS_VPMOVSXWD
  • XED_ICLASS_VPMOVSXWQ
  • XED_ICLASS_VPMOVUSDB
  • XED_ICLASS_VPMOVUSDW
  • XED_ICLASS_VPMOVUSQB
  • XED_ICLASS_VPMOVUSQD
  • XED_ICLASS_VPMOVUSQW
  • XED_ICLASS_VPMOVUSWB
  • XED_ICLASS_VPMOVW2M
  • XED_ICLASS_VPMOVWB
  • XED_ICLASS_VPMOVZXBD
  • XED_ICLASS_VPMOVZXBQ
  • XED_ICLASS_VPMOVZXBW
  • XED_ICLASS_VPMOVZXDQ
  • XED_ICLASS_VPMOVZXWD
  • XED_ICLASS_VPMOVZXWQ
  • XED_ICLASS_VPMULDQ
  • XED_ICLASS_VPMULHRSW
  • XED_ICLASS_VPMULHUW
  • XED_ICLASS_VPMULHW
  • XED_ICLASS_VPMULLD
  • XED_ICLASS_VPMULLQ
  • XED_ICLASS_VPMULLW
  • XED_ICLASS_VPMULTISHIFTQB
  • XED_ICLASS_VPMULUDQ
  • XED_ICLASS_VPOPCNTB
  • XED_ICLASS_VPOPCNTD
  • XED_ICLASS_VPOPCNTQ
  • XED_ICLASS_VPOPCNTW
  • XED_ICLASS_VPOR
  • XED_ICLASS_VPORD
  • XED_ICLASS_VPORQ
  • XED_ICLASS_VPPERM
  • XED_ICLASS_VPROLD
  • XED_ICLASS_VPROLQ
  • XED_ICLASS_VPROLVD
  • XED_ICLASS_VPROLVQ
  • XED_ICLASS_VPRORD
  • XED_ICLASS_VPRORQ
  • XED_ICLASS_VPRORVD
  • XED_ICLASS_VPRORVQ
  • XED_ICLASS_VPROTB
  • XED_ICLASS_VPROTD
  • XED_ICLASS_VPROTQ
  • XED_ICLASS_VPROTW
  • XED_ICLASS_VPSADBW
  • XED_ICLASS_VPSCATTERDD
  • XED_ICLASS_VPSCATTERDQ
  • XED_ICLASS_VPSCATTERQD
  • XED_ICLASS_VPSCATTERQQ
  • XED_ICLASS_VPSHAB
  • XED_ICLASS_VPSHAD
  • XED_ICLASS_VPSHAQ
  • XED_ICLASS_VPSHAW
  • XED_ICLASS_VPSHLB
  • XED_ICLASS_VPSHLD
  • XED_ICLASS_VPSHLDD
  • XED_ICLASS_VPSHLDQ
  • XED_ICLASS_VPSHLDVD
  • XED_ICLASS_VPSHLDVQ
  • XED_ICLASS_VPSHLDVW
  • XED_ICLASS_VPSHLDW
  • XED_ICLASS_VPSHLQ
  • XED_ICLASS_VPSHLW
  • XED_ICLASS_VPSHRDD
  • XED_ICLASS_VPSHRDQ
  • XED_ICLASS_VPSHRDVD
  • XED_ICLASS_VPSHRDVQ
  • XED_ICLASS_VPSHRDVW
  • XED_ICLASS_VPSHRDW
  • XED_ICLASS_VPSHUFB
  • XED_ICLASS_VPSHUFBITQMB
  • XED_ICLASS_VPSHUFD
  • XED_ICLASS_VPSHUFHW
  • XED_ICLASS_VPSHUFLW
  • XED_ICLASS_VPSIGNB
  • XED_ICLASS_VPSIGND
  • XED_ICLASS_VPSIGNW
  • XED_ICLASS_VPSLLD
  • XED_ICLASS_VPSLLDQ
  • XED_ICLASS_VPSLLQ
  • XED_ICLASS_VPSLLVD
  • XED_ICLASS_VPSLLVQ
  • XED_ICLASS_VPSLLVW
  • XED_ICLASS_VPSLLW
  • XED_ICLASS_VPSRAD
  • XED_ICLASS_VPSRAQ
  • XED_ICLASS_VPSRAVD
  • XED_ICLASS_VPSRAVQ
  • XED_ICLASS_VPSRAVW
  • XED_ICLASS_VPSRAW
  • XED_ICLASS_VPSRLD
  • XED_ICLASS_VPSRLDQ
  • XED_ICLASS_VPSRLQ
  • XED_ICLASS_VPSRLVD
  • XED_ICLASS_VPSRLVQ
  • XED_ICLASS_VPSRLVW
  • XED_ICLASS_VPSRLW
  • XED_ICLASS_VPSUBB
  • XED_ICLASS_VPSUBD
  • XED_ICLASS_VPSUBQ
  • XED_ICLASS_VPSUBSB
  • XED_ICLASS_VPSUBSW
  • XED_ICLASS_VPSUBUSB
  • XED_ICLASS_VPSUBUSW
  • XED_ICLASS_VPSUBW
  • XED_ICLASS_VPTERNLOGD
  • XED_ICLASS_VPTERNLOGQ
  • XED_ICLASS_VPTEST
  • XED_ICLASS_VPTESTMB
  • XED_ICLASS_VPTESTMD
  • XED_ICLASS_VPTESTMQ
  • XED_ICLASS_VPTESTMW
  • XED_ICLASS_VPTESTNMB
  • XED_ICLASS_VPTESTNMD
  • XED_ICLASS_VPTESTNMQ
  • XED_ICLASS_VPTESTNMW
  • XED_ICLASS_VPUNPCKHBW
  • XED_ICLASS_VPUNPCKHDQ
  • XED_ICLASS_VPUNPCKHQDQ
  • XED_ICLASS_VPUNPCKHWD
  • XED_ICLASS_VPUNPCKLBW
  • XED_ICLASS_VPUNPCKLDQ
  • XED_ICLASS_VPUNPCKLQDQ
  • XED_ICLASS_VPUNPCKLWD
  • XED_ICLASS_VPXOR
  • XED_ICLASS_VPXORD
  • XED_ICLASS_VPXORQ
  • XED_ICLASS_VRANGEPD
  • XED_ICLASS_VRANGEPS
  • XED_ICLASS_VRANGESD
  • XED_ICLASS_VRANGESS
  • XED_ICLASS_VRCP14PD
  • XED_ICLASS_VRCP14PS
  • XED_ICLASS_VRCP14SD
  • XED_ICLASS_VRCP14SS
  • XED_ICLASS_VRCP28PD
  • XED_ICLASS_VRCP28PS
  • XED_ICLASS_VRCP28SD
  • XED_ICLASS_VRCP28SS
  • XED_ICLASS_VRCPPS
  • XED_ICLASS_VRCPSS
  • XED_ICLASS_VREDUCEPD
  • XED_ICLASS_VREDUCEPS
  • XED_ICLASS_VREDUCESD
  • XED_ICLASS_VREDUCESS
  • XED_ICLASS_VRNDSCALEPD
  • XED_ICLASS_VRNDSCALEPS
  • XED_ICLASS_VRNDSCALESD
  • XED_ICLASS_VRNDSCALESS
  • XED_ICLASS_VROUNDPD
  • XED_ICLASS_VROUNDPS
  • XED_ICLASS_VROUNDSD
  • XED_ICLASS_VROUNDSS
  • XED_ICLASS_VRSQRT14PD
  • XED_ICLASS_VRSQRT14PS
  • XED_ICLASS_VRSQRT14SD
  • XED_ICLASS_VRSQRT14SS
  • XED_ICLASS_VRSQRT28PD
  • XED_ICLASS_VRSQRT28PS
  • XED_ICLASS_VRSQRT28SD
  • XED_ICLASS_VRSQRT28SS
  • XED_ICLASS_VRSQRTPS
  • XED_ICLASS_VRSQRTSS
  • XED_ICLASS_VSCALEFPD
  • XED_ICLASS_VSCALEFPS
  • XED_ICLASS_VSCALEFSD
  • XED_ICLASS_VSCALEFSS
  • XED_ICLASS_VSCATTERDPD
  • XED_ICLASS_VSCATTERDPS
  • XED_ICLASS_VSCATTERPF0DPD
  • XED_ICLASS_VSCATTERPF0DPS
  • XED_ICLASS_VSCATTERPF0QPD
  • XED_ICLASS_VSCATTERPF0QPS
  • XED_ICLASS_VSCATTERPF1DPD
  • XED_ICLASS_VSCATTERPF1DPS
  • XED_ICLASS_VSCATTERPF1QPD
  • XED_ICLASS_VSCATTERPF1QPS
  • XED_ICLASS_VSCATTERQPD
  • XED_ICLASS_VSCATTERQPS
  • XED_ICLASS_VSHUFF32X4
  • XED_ICLASS_VSHUFF64X2
  • XED_ICLASS_VSHUFI32X4
  • XED_ICLASS_VSHUFI64X2
  • XED_ICLASS_VSHUFPD
  • XED_ICLASS_VSHUFPS
  • XED_ICLASS_VSQRTPD
  • XED_ICLASS_VSQRTPS
  • XED_ICLASS_VSQRTSD
  • XED_ICLASS_VSQRTSS
  • XED_ICLASS_VSTMXCSR
  • XED_ICLASS_VSUBPD
  • XED_ICLASS_VSUBPS
  • XED_ICLASS_VSUBSD
  • XED_ICLASS_VSUBSS
  • XED_ICLASS_VTESTPD
  • XED_ICLASS_VTESTPS
  • XED_ICLASS_VUCOMISD
  • XED_ICLASS_VUCOMISS
  • XED_ICLASS_VUNPCKHPD
  • XED_ICLASS_VUNPCKHPS
  • XED_ICLASS_VUNPCKLPD
  • XED_ICLASS_VUNPCKLPS
  • XED_ICLASS_VXORPD
  • XED_ICLASS_VXORPS
  • XED_ICLASS_VZEROALL
  • XED_ICLASS_VZEROUPPER
  • XED_ICLASS_WBINVD
  • XED_ICLASS_WBNOINVD
  • XED_ICLASS_WRFSBASE
  • XED_ICLASS_WRGSBASE
  • XED_ICLASS_WRMSR
  • XED_ICLASS_WRPKRU
  • XED_ICLASS_WRSSD
  • XED_ICLASS_WRSSQ
  • XED_ICLASS_WRUSSD
  • XED_ICLASS_WRUSSQ
  • XED_ICLASS_XABORT
  • XED_ICLASS_XADD
  • XED_ICLASS_XADD_LOCK
  • XED_ICLASS_XBEGIN
  • XED_ICLASS_XCHG
  • XED_ICLASS_XEND
  • XED_ICLASS_XGETBV
  • XED_ICLASS_XLAT
  • XED_ICLASS_XOR
  • XED_ICLASS_XORPD
  • XED_ICLASS_XORPS
  • XED_ICLASS_XOR_LOCK
  • XED_ICLASS_XRSTOR
  • XED_ICLASS_XRSTOR64
  • XED_ICLASS_XRSTORS
  • XED_ICLASS_XRSTORS64
  • XED_ICLASS_XSAVE
  • XED_ICLASS_XSAVE64
  • XED_ICLASS_XSAVEC
  • XED_ICLASS_XSAVEC64
  • XED_ICLASS_XSAVEOPT
  • XED_ICLASS_XSAVEOPT64
  • XED_ICLASS_XSAVES
  • XED_ICLASS_XSAVES64
  • XED_ICLASS_XSETBV
  • XED_ICLASS_XTEST
  • XED_ICLASS_LAST

Can libdft64 check the bad kernel modules?

I found that the Intel pin can't check the program running in the kernel mode. so, most of the kernel modules running in kernel mode. I think the libdft64 can't track the taint in the kernel mode, is it?

Building libdft-dta?

Hi, I'm having some issues building libdft-dta.

I followed the instructions and was able to successfully build source and tools, but in the tools directory when I would run make libdft-dta id get error messages that headers were missing. I went ahead and added the src directory to the include search path and fixed some, but then I also had to add pin's include directory, and it still didn't work.

What directory should I try and build libdft-dta from?
Are there extra steps not written in the install instructions that we can write down?

Thanks for your time

MUL instruction?

I noticed that MUL instruction was treated as ins_unitary_op. However, if rax/rdx is not tainted before, MUL instruction might taint them. I am wondering how to solve this. :)

a little bug

in libdft_api.cpp,

I think "int ins_clr_post(syscall_desc_t *desc)" should be "int ins_clr_post(ins_desc_t *desc)"

Errors building libdft-dta

Hi,

I encountered several compilation errors when building libdft-dta, while track, nullpin, libdft were built without any errors. I used pin-3.7-97619-g0d0c92f4f-gcc-linux, which was downloaded using the install_pin.sh script, on Ubuntu 16.04. Below are the error messages. Can you please take a look? Thank you.

libdft-dta.cpp: In function ‘void alert(ADDRINT, ADDRINT)’:
libdft-dta.cpp:116:25: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 4 has type ‘ADDRINT {aka long unsigned int}’ [-Werror=format=]
getpid(), ins, bt);
^
libdft-dta.cpp:116:25: error: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘ADDRINT {aka long unsigned int}’ [-Werror=format=]
libdft-dta.cpp: In function ‘ADDRINT assert_reg32(thread_ctx_t*, uint32_t, uint32_t)’:
libdft-dta.cpp:151:53: error: ‘tagmap_getl’ was not declared in this scope
return thread_ctx->vcpu.gpr[reg] | tagmap_getl(addr);
^
libdft-dta.cpp: In function ‘ADDRINT assert_reg16(thread_ctx_t*, uint32_t, uint32_t)’:
libdft-dta.cpp:171:38: error: ‘VCPU_MASK16’ was not declared in this scope
return (thread_ctx->vcpu.gpr[reg] & VCPU_MASK16)
^
libdft-dta.cpp:172:21: error: ‘tagmap_getw’ was not declared in this scope
| tagmap_getw(addr);
^
libdft-dta.cpp: In function ‘ADDRINT assert_mem32(ADDRINT, ADDRINT)’:
libdft-dta.cpp:188:26: error: ‘tagmap_getl’ was not declared in this scope
return tagmap_getl(paddr) | tagmap_getl(taddr);
^
libdft-dta.cpp: In function ‘ADDRINT assert_mem16(ADDRINT, ADDRINT)’:
libdft-dta.cpp:204:26: error: ‘tagmap_getw’ was not declared in this scope
return tagmap_getw(paddr) | tagmap_getw(taddr);
^
libdft-dta.cpp: In function ‘void dta_instrument_jmp_call(LEVEL_CORE::INS)’:
libdft-dta.cpp:245:33: error: ‘REG32_INDX’ was not declared in this scope
IARG_UINT32, REG32_INDX(reg),
^
libdft-dta.cpp:259:33: error: ‘REG16_INDX’ was not declared in this scope
IARG_UINT32, REG16_INDX(reg),
^
libdft-dta.cpp: In function ‘void post_read_hook(syscall_ctx_t*)’:
libdft-dta.cpp:373:62: error: ‘tagmap_setn’ was not declared in this scope
tagmap_setn(ctx->arg[SYSCALL_ARG1], (size_t)ctx->ret);
^
libdft-dta.cpp: In function ‘void post_readv_hook(syscall_ctx_t*)’:
libdft-dta.cpp:415:60: error: ‘tagmap_setn’ was not declared in this scope
tagmap_setn((size_t)iov->iov_base, iov_tot);
^
libdft-dta.cpp: In function ‘void post_socketcall_hook(syscall_ctx_t*)’:
libdft-dta.cpp:474:8: error: ‘SYS_ACCEPT’ was not declared in this scope
case SYS_ACCEPT:
^
libdft-dta.cpp:475:8: error: ‘SYS_ACCEPT4’ was not declared in this scope
case SYS_ACCEPT4:
^
libdft-dta.cpp:488:8: error: ‘SYS_GETSOCKNAME’ was not declared in this scope
case SYS_GETSOCKNAME:
^
libdft-dta.cpp:489:8: error: ‘SYS_GETPEERNAME’ was not declared in this scope
case SYS_GETPEERNAME:
^
libdft-dta.cpp:504:8: error: ‘SYS_SOCKETPAIR’ was not declared in this scope
case SYS_SOCKETPAIR:
^
libdft-dta.cpp:512:8: error: ‘SYS_RECV’ was not declared in this scope
case SYS_RECV:
^
libdft-dta.cpp:521:24: error: ‘tagmap_setn’ was not declared in this scope
(size_t)ctx->ret);
^
libdft-dta.cpp:527:8: error: ‘SYS_RECVFROM’ was not declared in this scope
case SYS_RECVFROM:
^
libdft-dta.cpp:536:23: error: ‘tagmap_setn’ was not declared in this scope
(size_t)ctx->ret);
^
libdft-dta.cpp:552:8: error: ‘SYS_GETSOCKOPT’ was not declared in this scope
case SYS_GETSOCKOPT:
^
libdft-dta.cpp:564:8: error: ‘SYS_RECVMSG’ was not declared in this scope
case SYS_RECVMSG:
^
libdft-dta.cpp:592:26: error: ‘tagmap_setn’ was not declared in this scope
msg->msg_controllen);
^
libdft-dta.cpp:623:16: error: ‘tagmap_setn’ was not declared in this scope
iov_tot);
^
libdft-dta.cpp: In function ‘int main(int, char**)’:
libdft-dta.cpp:773:65: error: invalid conversion from ‘void ()(syscall_ctx_t)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
(void)syscall_set_post(&syscall_desc[__NR_read], post_read_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t ));
^
libdft-dta.cpp:776:67: error: invalid conversion from ‘void (
)(syscall_ctx_t*)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
(void)syscall_set_post(&syscall_desc[__NR_readv], post_readv_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t ));
^
libdft-dta.cpp:780:40: error: ‘__NR_socketcall’ was not declared in this scope
(void)syscall_set_post(&syscall_desc[__NR_socketcall],
^
libdft-dta.cpp:784:63: error: invalid conversion from ‘void (
)(syscall_ctx_t*)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
(void)syscall_set_post(&syscall_desc[__NR_dup], post_dup_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t ));
^
libdft-dta.cpp:785:64: error: invalid conversion from ‘void (
)(syscall_ctx_t*)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
(void)syscall_set_post(&syscall_desc[__NR_dup2], post_dup_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t ));
^
libdft-dta.cpp:788:67: error: invalid conversion from ‘void (
)(syscall_ctx_t*)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
(void)syscall_set_post(&syscall_desc[__NR_close], post_close_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t ));
^
libdft-dta.cpp:793:19: error: invalid conversion from ‘void (
)(syscall_ctx_t*)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
post_open_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t ));
^
libdft-dta.cpp:795:19: error: invalid conversion from ‘void (
)(syscall_ctx_t*)’ to ‘void ()(LEVEL_VM::THREADID, syscall_ctx_t) {aka void ()(unsigned int, syscall_ctx_t)}’ [-fpermissive]
post_open_hook);
^
In file included from libdft-dta.cpp:51:0:
/home/user/code/libdft64/src/syscall_desc.h:21:5: note: initializing argument 2 of ‘int syscall_set_post(syscall_desc_t*, void ()(LEVEL_VM::THREADID, syscall_ctx_t))’
int syscall_set_post(syscall_desc_t , void ()(THREADID, syscall_ctx_t *));
^
cc1plus: all warnings being treated as errors

How to track multi-process program?

Hi, I tried to attach the program by using the following command:

pin -follow-exec -t libdft.so -- /path/to/my/exec

Specifically, my traced program is a nginx web server and I'd like to track the taint propagation in its worker processes.

Currently, my naive approach is to use LOGD defined in libdft to track the syscalls and taint tags.
However, it seems the instrumentation stops when the master process spawns and executes its work process, even though I've set the option -follow-exec.

Install_pin script

Could this be updated to point a slightly newer version of the pin tool such as version 3.8? I would pull this tar.gz file myself but cannot find the exact name of the file on the intel website (due to unknown g number in the file name). I am unable to build this project with later versions of pin (pin 3.13 and above) but I cannot build other software with the older pin 3.7 version which the install file fetches

Cannot Compile on Windows following INSTALL.md

When I tried to build the lib on Windows 10 (I follow https://github.com/AngoraFuzzer/libdft64/blob/master/INSTALL.md):
The output is:

C:\Users\Administrator\Desktop\projects\libdft64>C:\ProgramData\chocolatey\bin\make.exe
cd src && CPPFLAGS= DFTFLAGS= make
make[1]: Entering directory '/cygdrive/c/Users/Administrator/Desktop/projects/libdft64/src'
make objects
make[2]: Entering directory '/cygdrive/c/Users/Administrator/Desktop/projects/libdft64/src'
cl /EHs- /EHa- /wd4530 /DTARGET_WINDOWS /nologo /Gy /Oi- /GR- /GS- /DPIN_CRT=1 /D_WINDOWS_H_PATH_="C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um" /D__LP64__ /Zc:threadSafeInit- /Zc:sizedDealloc- /wd5208 /DTARGET_IA32E /DHOST_IA32E /IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/source/include/pin /IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/source/include/pin/gen -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/stlport/include -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/libstdc++/include -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/crt/include -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/crt -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/crt/include/arch-x86_64 -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/crt/include/kernel/uapi -IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/crt/include/kernel/uapi/asm-x86 /FIinclude/msvc_compat.h /IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/components/include /IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/extras/xed-intel64/include/xed /IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/source/tools/Utils /IC:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/source/tools/InstLib /MD /O2 /c /Foobj-intel64/libdft_api.obj libdft_api.cpp
libdft_api.cpp
libdft_api.cpp: fatal error C1083: Cannot open include file: 'include/msvc_compat.h': No such file or directory
make[2]: *** [C:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/source/tools/Config/makefile.default.rules:233: obj-intel64/libdft_api.obj] Error 2
make[2]: Leaving directory '/cygdrive/c/Users/Administrator/Desktop/projects/libdft64/src'
make[1]: *** [C:\Users\Administrator\Desktop\projects\pin-3.28-msvc-windows/source/tools/Config/makefile.config:369: all] Error 2
make[1]: Leaving directory '/cygdrive/c/Users/Administrator/Desktop/projects/libdft64/src'
make: *** [Makefile:16: dftsrc] Error 2

It seems that the building procedure require cl.exe so I used VS 2022 Prompt and the build has an error at /FIinclude/msvc_compat.h, the file exists but cl.exe cannot find it.
Where shall I change to make it compilable? Thanks!

API usage question

Good day.
I have a common question.
How can I use your taint engine for tracking arbitrary data in common case?
For example I don't know which function will touch some input data. I manual implement a searching my input data in whole memory and in case if I found them I will mark memory.
I am looking for functions like a:

add_mem_taint(addr, len)
add_reg_taint(reg)

Like a http://shell-storm.org/blog/Taint-analysis-and-pattern-matching-with-Pin/

Warning when using the latest Intel PIN 3.27 version

Hello,

This warning is possibly not important as it didn't have any impact on the core functionality of libdft64 (at least from my understanding), but just wanted to raise an issue that when I try to use the latest version of PIN (Version 3.27 https://software.intel.com/sites/landingpage/pintool/docs/98718/Pin/doc/html/index.html) with libdft, I get a warning message such as this:

...
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libc++abi.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001                                
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libc++abi.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002                                
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libm-dynamic.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001                             
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libm-dynamic.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002                             
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libc-dynamic.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001                             
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libc-dynamic.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002                             
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libunwind-dynamic.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001                        
/usr/bin/ld: warning: /home/taint_analysis/pin-3.27_build/intel64/runtime/pincrt/libunwind-dynamic.so: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002    

I have tried solving this issue by myself, but after a few hours of trying to figure it out by testing with different compiler flags and such, I was unable to fix it.

I updated TAR_NAME= in the install_pin.sh with pin-3.27-98718-gbeaa5d51e-gcc-linux and everything seemed to work fine until the above warning messages (which is where I dived a little bit deeper into Makefile and other things).

I believe the issue arises from new libraries Intel PIN added (e.g., libdwarf starting from version 3.26) which may have some conflict issue in terms of version with libdft64. IF anyone might have solved this, that would be great to know, thank you in advance.

Bug) accept() syscall returned fd > 7 will unintentionally end the hooked application

Hello, thank you for sharing the code of libdft64.

I just wanted to inform an interesting bug with this line of code with accept system call handling part of the code:

case __NR_accept:
case __NR_accept4:
	/* not successful; optimized branch */
	if (unlikely((long)ctx->ret < 0))
		return;
	       /*
		* if the socket argument is interesting,
		* the returned handle of accept(2) is also
		* interesting
		*/
	if (likely(fdset.find(args[SYSCALL_ARG0]) !=
				fdset.end()))
		/* add the descriptor to the monitored set */
		fdset.insert((int)ctx->ret);

It is stated in the manual: https://man7.org/linux/man-pages/man2/accept.2.html that accept() returns a new file descriptor referring to that socket, and whenever (int)ctx->ret value is greater than 7, the hooked program abruptly ends. This is a key part because there is no segmentation fault or anything of an error, but just that the program gracefully exits.

The output looks like this:

pin-3.20_build/pin -follow-execv -t /home/lib/libdft-dta.so -- ./redis-server
...
210032:M 23 Mar 2023 17:53:44.985 * Increased maximum number of open files to 10032 (it was originally set to 1024).
        ► socket(2) fd add 6
        ► socket(2) fd add 7
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 5.0.4 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 210032
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

read(2) fd: 8
read(2) taint clear
210032:M 23 Mar 2023 17:53:46.708 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in ord
er to retain the setting after a reboot. Redis must be restarted after THP is disabled.
210032:M 23 Mar 2023 17:53:46.720 * Ready to accept connections
...

and then on the other terminal, if I were to execute ./redis-cli, then the above screen will output

...
read(2) fd: 8
read(2) taint clear
fd add accept
read(2) fd: 9
read(2) taint clear
read(2) fd: 8

and the program ends with the connection closed on the other terminal.

I have statically replaced (int)ctx->ret with a value less than 8, and was able to successfully determine that the file descriptor number is the issue. I have also tested using std::list and std::hash_set instead of

/* set of interesting descriptors (sockets) */
static set<int> fdset;

Doesn't seem to fix it though... Also tried GDBing the libdft-dta.so, but nothing useful came out of there either.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.