15
15
</ head >
16
16
17
17
< body >
18
- < P class =rvps3 > < SPAN class =rvts10 > < STRONG > Input</ STRONG > < BR > </ SPAN > < SPAN
19
- class =rvts9 > This program accepts various options of input:</ SPAN > < SPAN
20
- class =rvts9 > < BR > </ SPAN > </ P >
21
- < P class =rvps3 > < SPAN class =rvts11 > < U > commands</ U > </ SPAN > < SPAN class =rvts9 > :
22
- Commands have the following format: "</ SPAN > < SPAN
23
- class =rvts10 > command[space]arg1,[optional space]arg2,argN</ SPAN > < SPAN
24
- class =rvts9 > ".</ SPAN > < SPAN class =rvts9 > < BR > </ SPAN > </ P >
25
- < P class =rvps3 > < SPAN class =rvts11 > < U > variables</ U > </ SPAN > < SPAN class =rvts9 > :
18
+ < P class =rvps3 > < STRONG > Input</ STRONG > < BR > This program accepts
19
+ various options of input:</ P >
20
+ < P class =rvps3 > < U > commands</ U > :
21
+ Commands have the following format: "command[space]arg1,[optional
22
+ space]arg2,argN".</ P >
23
+ < P class =rvps3 > < U > variables</ U > :
26
24
Variables optionally start with a $ and can only store one DWORD (QWORD on
27
- x64).</ SPAN > < SPAN class =rvts9 > < BR > </ SPAN > </ P >
28
- < P class =rvps3 > < SPAN class =rvts11 > < U > debug registers</ U > </ SPAN > < SPAN
29
- class =rvts9 > : All debug registers (all sizes) can be used as
30
- variables.</ SPAN > < SPAN class =rvts9 > < BR > </ SPAN > </ P >
31
- < P class =rvps3 > < SPAN class =rvts11 > < U > memory locations</ U > </ SPAN > < SPAN
32
- class =rvts9 > : You can read from a memory location by using one of the
25
+ x64).</ P >
26
+ < P class =rvps3 > < U > registers</ U > : All
27
+ registers (of all sizes) can be used as variables.</ P >
28
+ < P class =rvps3 > < U > memory locations</ U > : You can read from a memory location by using one of the
33
29
following expressions:< BR > [addr] - read a
34
- DWORD/QWORD, depending on the architecture.< BR >
35
-
36
-
37
-
38
-
39
- </ SPAN > < SPAN
40
- class =rvts9 > @addr - same as
41
- above.< BR > < EM > n</ EM > :[addr] - read < EM > n</ EM >
42
-
43
-
44
-
45
-
46
- bytes.</ SPAN > < SPAN
47
- class =rvts9 > < BR >
30
+ DWORD/QWORD, depending on the architecture.< BR > @addr - same as
31
+ above.< BR > < EM > n</ EM > :[addr] - read < EM > n</ EM > bytes.< BR >
48
32
@< EM > n</ EM > :addr - same as
49
33
above.< BR > < STRONG > REMARKS</ STRONG > :< BR > - < EM > n</ EM > is the amount of bytes to
50
34
read, this can be anything smaller than 4 on x32 and smaller than 8 on x64 when
55
39
56
40
57
41
58
- @(addr+1), @addr+1 will read: [addr]+1.</ SPAN > </ P >
59
- < P class =rvps3 > < SPAN
60
- class =rvts9 >
61
-
62
-
63
-
64
-
65
- </ SPAN > < SPAN
66
- class =rvts9 > < U > flags</ U > : Debug flags
67
- (interpreted as integer) can be used as input. Flags are prefixed with a '!' following the flag name.
68
- Valid flags are: !cf, !pf, !af, !zf, !sf, !tf, !if, !df, !of, !rf, !vm, !ac, !vif, !vip and !id.</ SPAN > < SPAN class =rvts9 > </ P > </ SPAN >
69
- < P class =rvps3 > < SPAN class =rvts11 > < U > numbers</ U > </ SPAN > < SPAN class =rvts9 > :
70
- All numbers are interpreted as
71
- hex by default. If you want to be sure, you can use the "x" prefix or
72
- the "0x" prefix. Decimal numbers can be used by prefixing the number with a "."
73
- (.123=7B).</ SPAN > </ P >
74
- < P class =rvps3 > < SPAN class =rvts9 > < U > basic calculations</ U > :
75
- See "Calculations" for more
76
- information.</ SPAN > </ P >
77
- < P class =rvps3 > < SPAN class =rvts9 > < U > DLL exports</ U > : Type 'GetProcAddress' and it will
78
- automatically be resolved to the actual address of the function. To explicitly
79
- define from which module to load the API, use: "kernel32.dll:GetProcAddress" or "kernel32:GetProcAddress". In a similar way
80
- you can resolve ordinals, try "ntdll:1". Another macro allows you to get the loaded
81
- base of a module. Try
82
-
83
- "ntdll:0", "ntdll:base", "ntdll:imagebase" or
84
- "ntdll:header".</ SPAN > </ P >
85
- < P class =rvps3 > < SPAN class =rvts9 > < U > labels/symbols</ U >
86
- : user-defined labels
87
-
88
- and symbols are a valid
89
- expressions.</ SPAN > </ P >
90
- < P class =rvps3 > < SPAN class =rvts9 > < STRONG > Input for arguments can always be done in any of
91
- the above forms, except if stated otherwise.</ STRONG >
92
-
93
-
94
-
95
-
96
- </ SPAN > </ P > </ BODY > </ HTML >
42
+ @(addr+1), @addr+1 will read: [addr]+1.</ P >
43
+ < P class =rvps3 > < U > flags</ U > : Debug
44
+ flags (interpreted as integer) can be used as input. Flags are prefixed with a
45
+ '!' following the flag name. Valid flags are: !cf, !pf, !af, !zf, !sf, !tf, !if,
46
+ !df, !of, !rf, !vm, !ac, !vif, !vip and !id.</ P >
47
+ < P class =rvps3 > < U > numbers</ U > : All
48
+ numbers are interpreted as hex by default. If you want to be sure, you can use
49
+ the "x" prefix or the "0x" prefix. Decimal numbers can be used by prefixing the
50
+ number with a "." (.123=7B).</ P >
51
+ < P class =rvps3 > < U > basic calculations</ U > : See "Calculations" for more information.</ P >
52
+ < P class =rvps3 > < U > DLL exports</ U > : Type
53
+ 'GetProcAddress' and it will automatically be resolved to the actual address of
54
+ the function. To explicitly define from which module
55
+ to load the API, use: "[module].dll:[api]" or "[module]:[api]". In a similar
56
+ way you can resolve ordinals, try "[module]:[ordinal]". Another macro allows you to get the
57
+ loaded base of a module. Try "[module]:0",
58
+ "[module]:base", "[module]:imagebase" or "[module]:header". When "[module]" is an empty string (":0" for example), the
59
+ module that is currently selected in the CPU will be
60
+ used.</ P >
61
+ < P class =rvps3 > < U > RVA/File Offset</ U > :
62
+ If you want to access a module RVA you can either write "[module]:0+[rva]" or
63
+ you can write "[module]:$[rva]". If you want
64
+ to convert a file offset to a VA you can use "[module]:#[offset]". When "[module]" is
65
+ an empty string (":0" for example), the module that is currently selected in the CPU will
66
+ be used.</ P >
67
+ < P class =rvps3 > < U > labels/symbols</ U > :
68
+ user-defined labels and symbols are a valid expressions.</ P >
69
+ < P class =rvps3 > < STRONG > Input for arguments can always be done in any of
70
+ the above forms, except if stated otherwise.</ STRONG > </ P > </ body > </ HTML >
0 commit comments