Latest available version: IDA and decompilers v8.4.240320sp1 see all releases
Hex-Rays logo State-of-the-art binary code analysis tools
email icon
Get string type
     ea - linear address
Returns one of STRTYPE_... constants

long get_str_type(long ea);

// Character-terminated string. The termination characters are kept in // the next bytes of string type. #define STRTYPE_TERMCHR (STRWIDTH_1B|STRLYT_TERMCHR<<STRLYT_SHIFT) // C-style string. #define STRTYPE_C STRTYPE_TERMCHR // Zero-terminated 16bit chars #define STRTYPE_C_16 (STRWIDTH_2B|STRLYT_TERMCHR<<STRLYT_SHIFT) // Zero-terminated 32bit chars #define STRTYPE_C_32 (STRWIDTH_4B|STRLYT_TERMCHR<<STRLYT_SHIFT) // Pascal-style, one-byte length prefix #define STRTYPE_PASCAL (STRWIDTH_1B|STRLYT_PASCAL1<<STRLYT_SHIFT) // Pascal-style, 16bit chars, one-byte length prefix #define STRTYPE_PASCAL_16 (STRWIDTH_2B|STRLYT_PASCAL1<<STRLYT_SHIFT) // Pascal-style, two-byte length prefix #define STRTYPE_LEN2 (STRWIDTH_1B|STRLYT_PASCAL2<<STRLYT_SHIFT) // Pascal-style, 16bit chars, two-byte length prefix #define STRTYPE_LEN2_16 (STRWIDTH_2B|STRLYT_PASCAL2<<STRLYT_SHIFT) // Pascal-style, two-byte length prefix #define STRTYPE_LEN4 (STRWIDTH_1B|STRLYT_PASCAL4<<STRLYT_SHIFT) // Pascal-style, 16bit chars, two-byte length prefix #define STRTYPE_LEN4_16 (STRWIDTH_2B|STRLYT_PASCAL4<<STRLYT_SHIFT)

#define STRTERM1(strtype) ((strtype>>8)&0xFF) // 3d byte: #define STRTERM2(strtype) ((strtype>>16)&0xFF) // The termination characters are kept in // the 2nd and 3d bytes of string type // if the second termination character is // '\0', then it is ignored.

Index | Previous topic | Next topic