printf

Description of 'printf' function in HyperDbg Scripts

Function

printf

Syntax

printf(Format, Expressions [...] );

Parameters

[Format-string]

A printf-like format string.

[Expression] [...]

MASM-like expression(s) to evaluate, you can choose multiple expressions based on the format string

Description

Evaluates and prints a printf-like format string with MASM expression(s).

All the format specifiers should be in a lower-case format.

Supported Format Specifiers

Specifier

Description

%d

Decimal signed integer

%i

Decimal signed integer

%u

Decimal unsigned integer

%o

Octal integer

%x

Hex integer

%c

Character (char)

%p

Pointer (void *)

%s

String

%ws

Wide-String

%ls

Wide-String

Integer Format Specifiers (Long)

Specifier

Description

%ld

Long decimal signed integer

%li

Long decimal signed integer

%lu

Long decimal unsigned integer

%lo

Long octal integer

%lx

Long hex integer

Integer Format Specifiers (Long Long)

Specifier

Description

%lld

Long long (64-bit) decimal signed integer

%lli

Long long (64-bit) decimal signed integer

%llu

Long long (64-bit) decimal unsigned integer

%llo

Long long (64-bit) octal integer

%llx

Long long (64-bit) hex integer

Integer Format Specifiers (Short)

Specifier

Description

%hd

Short decimal signed integer

%hi

Short decimal signed integer

%hu

Short decimal unsigned integer

%ho

Short octal integer

%hx

Short hex integer

Examples

printf("Result is %s", @rcx);

Print data as an ASCII string pointed by rcx register.

print("The value is %llx and the string is : %ws "dq(@rcx), poi(rax));

Print and evaluate the above expressions. Note that %ws is a wide-string pointed by rax register. Also, the value of rcx register is also dereferenced and showed in quad-hex format.

You can see more examples here.

Remarks

You should consider avoiding "unsafe" behavior in your expressions and strings.