mirror of
https://github.com/x64dbg/docs.git
synced 2026-11-09 21:11:25 -10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
058ba20083 |
No files matched your search
+1
-2
@@ -1,3 +1,2 @@
|
||||
_build*/
|
||||
*.chm
|
||||
python-2.7.18.amd64.portable/
|
||||
*.chm
|
||||
@@ -1,23 +0,0 @@
|
||||
# Read the Docs configuration file
|
||||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||
|
||||
# Required
|
||||
version: 2
|
||||
|
||||
# Set the version of Python and other tools you might need
|
||||
build:
|
||||
os: ubuntu-22.04
|
||||
tools:
|
||||
python: "2.7"
|
||||
|
||||
# Build documentation in the docs/ directory with Sphinx
|
||||
sphinx:
|
||||
builder: html
|
||||
configuration: conf.py
|
||||
fail_on_warning: false
|
||||
|
||||
# We recommend specifying your dependencies to enable reproducible builds:
|
||||
# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
|
||||
python:
|
||||
install:
|
||||
- requirements: requirements.txt
|
||||
@@ -1,15 +1,9 @@
|
||||
# This repository was moved to https://github.com/x64dbg/x64dbg/tree/development/docs
|
||||
|
||||
# docs
|
||||
|
||||
Documentation repository for [x64dbg](http://x64dbg.com) at [Read the Docs](https://readthedocs.org/projects/x64dbg).
|
||||
|
||||
## Building
|
||||
|
||||
1. Download https://github.com/x64dbg/docs/releases/download/python27-portable/python-2.7.18.amd64.portable.7z
|
||||
2. Extract to the `python-2.7.18.amd64.portable` folder
|
||||
1. `pip install sphinx m2r sphinx_rtd_theme`
|
||||
2. Add `relpath = relpath.replace(os.path.sep, '/')` to `C:\Python27\Lib\site-packages\recommonmark\transform.py` line `69`
|
||||
3. run `makechm.bat`. It will build the .CHM help file.
|
||||
|
||||
Note: The following patch was applied:
|
||||
|
||||
Add `relpath = relpath.replace(os.path.sep, '/')` after `C:\Python27\Lib\site-packages\recommonmark\transform.py` line `63`
|
||||
@@ -16,8 +16,6 @@ This section contains commands that are used for analysis.
|
||||
analadv
|
||||
virtualmod
|
||||
symdownload
|
||||
symload
|
||||
symunload
|
||||
imageinfo
|
||||
GetRelocSize
|
||||
exhandlers
|
||||
|
||||
@@ -4,7 +4,7 @@ Attempt to download a symbol from a Symbol Store.
|
||||
|
||||
## arguments
|
||||
|
||||
`[arg1]` Module name (with or without extension) to attempt to download symbols for. When not specified, an attempt will be done to download symbols for all loaded modules.
|
||||
`[arg1]` Module name (with or without extension) to attept to download symbols for. When not specified, an attempt will be done to download symbols for all loaded modules.
|
||||
|
||||
`[arg2]` Symbol Store URL. When not specified, the default store will be used.
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
# symload/loadsym
|
||||
|
||||
Attempt to load a symbol from disk.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Module name (with or without extension) to attempt to load symbols for.
|
||||
|
||||
`arg2` Path to the symbol file.
|
||||
|
||||
`[arg3]` Force load. Set to `1` to skip symbol validation.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -1,11 +0,0 @@
|
||||
# symunload/unloadsym
|
||||
|
||||
Unload a symbol.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Module name (with or without extension) to unload symbols from.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -6,9 +6,9 @@ Set a singleshoot breakpoint on DLL load/unload.
|
||||
|
||||
`arg1` DLL Name to break on.
|
||||
|
||||
`[arg2]` `a` means on load and unload, `l` means on load, `u` means on unload. When not specified, x64dbg will break on both load and unload.
|
||||
`[arg2]` 'l' means on load, 'u' means on unload. When not specified, x64dbg will break on both load and unload.
|
||||
|
||||
`[arg3]` When specified, the breakpoint will be singleshoot. When not specified the breakpoint will not be removed after it has been hit.
|
||||
`[arg3]` When specified, the breakpoint will not be singleshoot. When not specified the breakpoint will be removed after it has been hit.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Set a memory breakpoint (GUARD_PAGE) on the whole memory region the provided add
|
||||
|
||||
`arg1` Address of or inside a memory region that will be watched.
|
||||
|
||||
`[arg2]` 1/0 restore the memory breakpoint once it's hit? When this value is not equal to '1' or '0', it's assumed to be arg3. This means "bpm eax,r" would be the same command as: "bpm eax,0,r".
|
||||
`[arg2]` 1/0 restore the memory breakpoint once it's hit? When this value is not equal to '1' or '3', it's assumed to be arg3. This means "bpm eax,r" would be the same command as: "bpm eax,0,r".
|
||||
|
||||
`[arg3]` Breakpoint type, it can be 'a' (read+write+execute) 'r' (read), 'w' (write) or 'x' (execute). Per default, it's 'a' (read+write+execute)
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
# SetMemoryRangeBPX/memrangebp/bpmrange
|
||||
|
||||
Set a memory breakpoint (GUARD_PAGE) on a specific memory range.
|
||||
|
||||
## arguments
|
||||
|
||||
`start` Start of the memory range.
|
||||
|
||||
`size` Size of the memory range.
|
||||
|
||||
`[type]` Breakpoint type, it can be 'a' (read+write+execute) 'r' (read), 'w' (write) or 'x' (execute). Per default, it's 'a' (read+write+execute). Append `ss` for a singleshot breakpoint (you can also use [`SetMemoryBreakpointSingleshoot`](../conditional-breakpoint-control/SetMemoryBreakpointSingleshoot.md) to do this).
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -17,7 +17,6 @@ This section contains breakpoint control (set/delete/enable/disable) commands.
|
||||
EnableHardwareBreakpoint
|
||||
DisableHardwareBreakpoint
|
||||
SetMemoryBPX
|
||||
SetMemoryRangeBPX
|
||||
DeleteMemoryBPX
|
||||
EnableMemoryBreakpoint
|
||||
DisableMemoryBreakpoint
|
||||
|
||||
@@ -8,7 +8,7 @@ Initializes the debugger. This command will load the executable (do some basic c
|
||||
|
||||
`[arg2]` Commandline to create the process with.
|
||||
|
||||
`[arg3]` Current folder (passed to the `CreateProcess` API) (this is also sometimes called 'working directory' or 'current directory')
|
||||
`[arg3]` Current folder (passed to the `CreateProcess` API).
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
# StepSystem/StepSystemInto
|
||||
|
||||
Step into until reaching a system module.
|
||||
|
||||
## arguments
|
||||
|
||||
This command has no arguments.
|
||||
|
||||
## results
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -1,11 +0,0 @@
|
||||
# StepUser/StepUserInto
|
||||
|
||||
Step into until reaching a user module.
|
||||
|
||||
## arguments
|
||||
|
||||
This command has no arguments.
|
||||
|
||||
## results
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -24,6 +24,4 @@ Debug Control
|
||||
StepOut
|
||||
eStepOut
|
||||
skip
|
||||
InstrUndo
|
||||
StepUser
|
||||
StepSystem
|
||||
InstrUndo
|
||||
@@ -1,6 +1,6 @@
|
||||
# bswap
|
||||
|
||||
Perform a `bswap` operation: The byte order of the destination is inverted, so the last byte becomes the first.
|
||||
Perform a `bswap` operation.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# dec
|
||||
# dec
|
||||
|
||||
Decrease a value.
|
||||
|
||||
@@ -8,4 +8,4 @@ Decrease a value.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
This command does not set any result variables.
|
||||
@@ -12,7 +12,6 @@ This section contains various commands that are used for calculations etc.
|
||||
add
|
||||
sub
|
||||
mul
|
||||
mulhi
|
||||
div
|
||||
and
|
||||
or
|
||||
@@ -25,13 +24,8 @@ This section contains various commands that are used for calculations etc.
|
||||
shl
|
||||
shr
|
||||
sar
|
||||
popcnt
|
||||
lzcnt
|
||||
push
|
||||
pop
|
||||
test
|
||||
cmp
|
||||
mov
|
||||
movdqu
|
||||
vmovdqu
|
||||
kmovd
|
||||
@@ -1,20 +0,0 @@
|
||||
# kmovd/kmovq
|
||||
|
||||
The `kmovd`/`kmovq` commands are used to access AVX-512 opmask registers `K0`-`K7`. These commands are only available when the computer and x64dbg version supports AVX-512.
|
||||
|
||||
The `kmovd` command copies a 32-bit value from an expression to an AVX-512 opmask register, or from an AVX-512 opmask register to a memory location, a general purpose register, or an opmask register.
|
||||
If the destination is a 64-bit register, for example, an opmask register, then the 32-bit value is zero-extended to 64 bits.
|
||||
|
||||
The `kmovq` command copies a 64-bit value from an expression to an AVX-512 opmask register, or from an AVX-512 opmask register to a memory location, a general purpose register, or an opmask register.
|
||||
If executed in 32-bit environment, then only memory locations in the form of `[address]` or opmask registers are supported as operands.
|
||||
In 64-bit environment, all valid expressions can be used to calculate the value to be copied into the destination opmask register.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The destination operand.
|
||||
|
||||
`arg2` The source operand.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -1,11 +0,0 @@
|
||||
# lzcnt
|
||||
|
||||
Count the number of leading zeros of a value. If the value is 0, then the result is 64 on 64-bit platform and 32 on 32-bit platform.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Value.
|
||||
|
||||
## result
|
||||
|
||||
`arg1` is set to the number of leading zeros. Additionaly, the internal variable `$_EZ_FLAG` is set to 1 if `arg1` is 0, and set to 0 otherwise. The internal variable `$_BS_FLAG` is set to 0.
|
||||
@@ -4,7 +4,7 @@ Set a variable.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Variable name (optionally prefixed with a $) to set. When the variable does not exist, it will be created. Note that SSE registers are not supported (Instead use [movdqu](movdqu.md) for SSE registers).
|
||||
`arg1` Variable name (optionally prefixed with a $) to set. When the variable does not exist, it will be created.
|
||||
|
||||
`arg2` Value to store in the variable. If you use `#11 22 33#` it will write the bytes `11 22 33` in the process memory at `arg1`.
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# movdqu/movups/movupd
|
||||
|
||||
Read/write an XMM register. The source and destination operands can be either an XMM register, or a memory location. The value of destination operand will be set to source operand. When using a memory location, only the syntax `[addr]` is supported, where `addr` is an expression of the memory address. Unlike other commands, the size of operands are 16 bytes. MM/YMM/ZMM registers are not supported by this command, to access YMM/ZMM registers, use [`vmovdqu`](vmovdqu.md) command.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The destination operand.
|
||||
|
||||
`arg2` The source operand.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -1,6 +1,6 @@
|
||||
# mul
|
||||
|
||||
Multiply two values and store the lower part of result into `arg1`.
|
||||
Multiply two values.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# mulhi
|
||||
|
||||
Multiply two unsigned values and store the upper part of result into `arg1`.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Destination.
|
||||
|
||||
`arg2` Source.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -1,11 +0,0 @@
|
||||
# popcnt
|
||||
|
||||
Evaluate the population count of a value, that is, number of bits set to 1.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Value.
|
||||
|
||||
## result
|
||||
|
||||
`arg1` is set to the population count. Additionaly, the internal variable `$_EZ_FLAG` is set to 1 if `arg1` is 0, and set to 0 otherwise. The internal variable `$_BS_FLAG` is set to 0.
|
||||
@@ -1,6 +1,6 @@
|
||||
# rol
|
||||
|
||||
Binary ROL (rotate left) a value.
|
||||
Binary ROL a value.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ror
|
||||
|
||||
Binary ROR (rotate right) a value.
|
||||
Binary ROR a value.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# vmovdqu/vmovups/vmovupd
|
||||
|
||||
Read/write a YMM/ZMM register. The source and destination operands can be either an YMM/ZMM register, or a memory location. The value of destination operand will be set to source operand. When using a memory location, only the syntax `[addr]` is supported, where `addr` is an expression of the memory address. Unlike other commands, the size of operands are 32 bytes for YMM registers and 64 bytes for ZMM registers. To access ZMM registers, the computer and x64dbg version must support AVX-512. To access XMM registers, use [`movdqu`](movdqu.md) command.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The destination operand.
|
||||
|
||||
`arg2` The source operand.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -6,7 +6,7 @@ Add an entry to the reference view. You need to call 'refinit' before using refa
|
||||
|
||||
`arg1` Address to put in the reference view.
|
||||
|
||||
`arg2` Text to put after the address. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg2` Text to put after the address. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# refget
|
||||
# reget
|
||||
|
||||
Retrieve the address of a reference.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Initialize reference view for command usage.
|
||||
|
||||
## arguments
|
||||
|
||||
`[arg1]` The title of the new reference view. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`[arg1]` The title of the new reference view. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# sdump
|
||||
|
||||
Dump the stack at a certain position.
|
||||
Dump the at a certain position.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
+1
-11
@@ -1,17 +1,7 @@
|
||||
Commands
|
||||
========
|
||||
|
||||
Commands have the following format (notice the arguments are **comma separated**):
|
||||
|
||||
``command arg1, arg2, argN``
|
||||
|
||||
FAQ:
|
||||
|
||||
- Please note that all integer constants are represented in hex. For example, after executing the following command, ``$i`` will be 256 (0x100): ``mov $i, 100`` . This also means a variable cannot begin with letters from A to F.
|
||||
- Throughout this documentation, ``[arg1]`` (argument with a square bracket) represents an optional argument. ``arg1`` (argument without a square bracket) represents an mandatory argument. "[" and "]" represent memory reference operation in expression evaluation for the argument. If you don't want to refer to the content in the memory pointer, don't add "[" and "]".
|
||||
- For commands with two or more arguments, a comma (,) is used to separate these arguments. Do not use a space to separate the arguments.
|
||||
- x64dbg only supports integer in expressions. Strings, Floating point numbers and SSE/AVX data is not supported. Therefore you cannot use ``[eax]=="abcd"`` operator to compare strings. Instead, you can compare the first DWORD/QWORD of the string, or use an appropriate plugin which provides such feature.
|
||||
- The "==" operator is used to test if both operands are equal. The "=" operator is used to transfer the value of the expression to the destination.
|
||||
This is the documentation of x64dbg commands.
|
||||
|
||||
**Contents:**
|
||||
|
||||
|
||||
@@ -9,9 +9,7 @@ This section contains commands to manipulate memory inside the debuggee.
|
||||
|
||||
alloc
|
||||
Fill
|
||||
memcpy
|
||||
free
|
||||
getpagerights
|
||||
setpagerights
|
||||
savedata
|
||||
minidump
|
||||
savedata
|
||||
@@ -1,15 +0,0 @@
|
||||
# memcpy
|
||||
|
||||
Copy memory in the context of the debuggee, without applying patches.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Destination address.
|
||||
|
||||
`arg2` Source address.
|
||||
|
||||
`arg3` Size to copy.
|
||||
|
||||
## result
|
||||
|
||||
This command sets `$result` to the total amount of bytes written at the destination. The condition `$result == arg3` is true if all memory was copied.
|
||||
@@ -1,11 +0,0 @@
|
||||
# minidump
|
||||
|
||||
Create a [minidump](https://learn.microsoft.com/en-us/windows/win32/debug/minidump-files) with full memory and handle information from the debuggee.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The filename of the `.dmp`.
|
||||
|
||||
## results
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -4,7 +4,7 @@ Save a memory region to disk.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The filename. If you use `:memdump:` as name it will save a file as `memdump_pid_addr_size.bin` in the x64dbg directory. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg1` The filename. If you use `:memdump:` as name it will save a file as `memdump_pid_addr_size.bin` in the x64dbg directory. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
`arg2` The address of the memory region.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# HideDebugger/dbh/hide
|
||||
|
||||
Hide the debugger from (very) simple detection methods. The PEB will be modified so that `IsDebuggerPresent()` will return false.
|
||||
Hide the debugger from (very) simple detection methods.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Assemble an instruction.
|
||||
|
||||
`arg1` Address to place the assembled instruction at.
|
||||
|
||||
`arg2` Instruction text. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg2` Instruction text. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
`[arg3]` When specified the remainder of the previous instruction will be filled with NOPs.
|
||||
|
||||
|
||||
@@ -10,4 +10,4 @@ Get the address of an export inside a DLL.
|
||||
|
||||
## result
|
||||
|
||||
The $result variable is set to the export address. When the export is not found, $result will be set to 0.
|
||||
The $resultvariable is set to the export address. When the export is not found, $resultwill be set to 0.
|
||||
@@ -3,13 +3,12 @@ Jxx/IFxx
|
||||
|
||||
There are various branches that can react on the flags set by the `cmp` (and maybe other) command(s):
|
||||
|
||||
* unconditional branch - `jmp`/`goto`
|
||||
* branch if not equal - `jne`/`ifne(q)`/`jnz`/`ifnz`
|
||||
* unconditional branch - `jmp`/`goto`* branch if not equal - `jne`/`ifne(q)`/`jnz`/`ifnz`
|
||||
* branch if equal - `je`/`ife(q)`/`jz`/`ifz`
|
||||
* branch if smaller - `jb`/`ifb`/`jl`/`ifl`
|
||||
* branch if bigger - `ja`/`ifa`/`jg`/`ifg`
|
||||
* branch if smaller/equal - `jbe`/`ifbe(q)`/`jle`/`ifle(q)`
|
||||
* branch if bigger/equal - `jae`/`ifae(q)`/`jge`/`ifge(q)`
|
||||
* branch if bigger/equal - `jbe`/`ifbe(q)`/`jle`/`ifle(q)`
|
||||
* branch if smaller/equal - `jae`/`ifae(q)`/`jge`/`ifge(q)`
|
||||
|
||||
arguments
|
||||
---------
|
||||
|
||||
@@ -18,5 +18,4 @@ This section contains various commands that are only used or available in a scri
|
||||
printstack
|
||||
ret
|
||||
scriptload
|
||||
scriptdll
|
||||
scriptcmd
|
||||
scriptdll
|
||||
@@ -6,7 +6,7 @@ Put information in the log.
|
||||
arguments
|
||||
---------
|
||||
|
||||
``[arg1]`` Format string (see :doc:`../../introduction/Formatting`). When not specified, a newline will be logged. When using a format string it is recommended to use quotes to avoid ambiguity with the ``;`` (command separator): ``log "{mem;8@rax}"``.
|
||||
``[arg1]`` Format string (see :doc:`../../introduction/Formatting`). When not specified, a newline will be logged.
|
||||
|
||||
result
|
||||
------
|
||||
|
||||
@@ -4,7 +4,7 @@ Display a message box.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Message box text. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg1` Message box text. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Display a message box, asking the user to answer yes or no.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Message box text. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg1` Message box text. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
# scriptcmd
|
||||
|
||||
Execute a command in the context of a running script.
|
||||
|
||||
## arguments
|
||||
|
||||
Unlike other commands this command forwards everything after `scriptcmd ` directly to the command processor.
|
||||
|
||||
For example `scriptcmd add rax, 0x1245` will execute the command `add rax, 0x1234`.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
|
||||
## example
|
||||
|
||||
This command can be used in combination with [SetBreakpointCommand](../conditional-breakpoint-control/SetBreakpointCommand.md) to execute scripts on breakpoint callbacks:
|
||||
|
||||
```
|
||||
fn_addr = module.dll:$0x1234 // module.dll RVA 0x1234
|
||||
bp fn_addr
|
||||
SetBreakpointCommand fn_addr, "scriptcmd call mycallback"
|
||||
|
||||
// make sure the script is not unloaded
|
||||
|
||||
mycallback:
|
||||
log "fn({arg.get(0)}, {arg.get(1)})"
|
||||
ret
|
||||
```
|
||||
@@ -1,15 +1,16 @@
|
||||
# find
|
||||
|
||||
Find a pattern in a memory page. If you want to find all occurrences of a pattern in a memory page use [findall](./findall.md).
|
||||
Find a pattern.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The address to start searching from. Notice that the searching will stop when the end of the memory page this address resides in has been reached. This means you cannot search the complete process memory without enumerating the memory pages first. If you want to find all occurrences of a pattern in the entire memory map use [findallmem](./findallmem.md).
|
||||
`arg1` The address to start searching from. Notice that the searching will stop when the end of the memory page this address resides in has been reached. This means you cannot search the complete process memory without enumerating the memory pages first.
|
||||
|
||||
`arg2` The byte pattern to search for. This byte pattern can contain wildcards (?) for example: `EB0?90??8D`. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg2` The byte pattern to search for. This byte pattern can contain wildcards (?) for example: `EB0?90??8D`.
|
||||
|
||||
`[arg3]` The size of the data to search in. Default is the size of the memory region.
|
||||
|
||||
## result
|
||||
|
||||
The `$result` variable is set to the virtual address of the address that matches the byte pattern. `$result` will be 0 when the pattern could not be matched.
|
||||
The $result variable is set to the virtual address of the address that matches the byte pattern. $result will be 0 when the pattern could not be matched.
|
||||
|
||||
@@ -1,43 +1,15 @@
|
||||
# findall
|
||||
|
||||
Find all occurrences of a pattern in a memory page.
|
||||
Find all occurrences of a pattern.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The address to start searching from. Notice that the searching will stop when the end of the memory page this address resides in has been reached. This means you cannot search the complete process memory without enumerating the memory pages first. You can use [findallmem](./findallmem.md) to search for a pattern in the whole memory.
|
||||
`arg1` The address to start searching from. Notice that the searching will stop when the end of the memory page this address resides in has been reached. This means you cannot search the complete process memory without enumerating the memory pages first.
|
||||
|
||||
`arg2` The byte pattern to search for. This byte pattern can contain wildcards (?) for example: `EB0?90??8D`. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg2` The byte pattern to search for. This byte pattern can contain wildcards (?) for example: `EB0?90??8D`.
|
||||
|
||||
`[arg3]` The size of the data to search in. Default is the size of the memory region.
|
||||
|
||||
## result
|
||||
|
||||
`$result` is set to the number of occurrences.
|
||||
|
||||
## examples
|
||||
|
||||
Search for all occurrences a pattern in the memory page CIP is residing:
|
||||
|
||||
```
|
||||
findall mem.base(cip), "0FA2 E8 ???????? C3"
|
||||
```
|
||||
|
||||
Search for all occurences of the value of cax in the stack memory page:
|
||||
|
||||
```
|
||||
findall mem.base(csp), "{bswap@cax}"
|
||||
```
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
@@ -6,26 +6,10 @@ Find all occurrences of a pattern in the entire memory map.
|
||||
|
||||
`arg1` The address to start searching from.
|
||||
|
||||
`arg2` The byte pattern to search for. This byte pattern can contain wildcards (?) for example: `EB0?90??8D`. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg2` The byte pattern to search for. This byte pattern can contain wildcards (?) for example: `EB0?90??8D`.
|
||||
|
||||
`[arg3]` The size of the data to search in. Default is the entire memory map (`-1`).
|
||||
|
||||
`[arg4]` Set to `user`/`system`/`module` to only include (user/system) modules in the search.
|
||||
`[arg3]` The size of the data to search in. Default is the entire memory map.
|
||||
|
||||
## result
|
||||
|
||||
`$result` is set to the number of occurrences.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
@@ -4,7 +4,7 @@ Find assembled instruction.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Instruction to look for (make sure to use quoted "mov eax, ebx" to ensure you actually search for that instruction). You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg1` Instruction to look for (make sure to use quoted "mov eax, ebx" to ensure you actually search for that instruction). You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
`[arg2]` Address of/inside a memory page to look in. When not specified CIP will be used.
|
||||
|
||||
@@ -12,18 +12,4 @@ Find assembled instruction.
|
||||
|
||||
## result
|
||||
|
||||
The `$result` variable is set to the number of references found.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
The $result variable is set to the number of references found.
|
||||
@@ -12,18 +12,4 @@ Find references to GUID. The referenced GUID must be registered in the system, o
|
||||
|
||||
## results
|
||||
|
||||
Set `$result` to `1` if any GUID is found, `0` otherwise.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
Set `$result` to `1` if any GUID is found, `0` otherwise.
|
||||
@@ -17,4 +17,6 @@ This section contains commands that are used to search data.
|
||||
reffindrange
|
||||
refstr
|
||||
modcallfind
|
||||
yara
|
||||
yaramod
|
||||
setmaxfindresult
|
||||
@@ -11,17 +11,3 @@ Find all inter-modular calls.
|
||||
## result
|
||||
|
||||
The `$result` variable is set to the number of inter-modular calls found.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
@@ -12,18 +12,4 @@ Find references to a certain value.
|
||||
|
||||
## result
|
||||
|
||||
The `$result` variable is set to the number of references found.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
The $result variable is set to the number of references found.
|
||||
@@ -15,17 +15,3 @@ Find references to a certain range of values.
|
||||
## result
|
||||
|
||||
The `$result` variable is set to the number of references found.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
@@ -10,18 +10,4 @@ Find referenced text strings.
|
||||
|
||||
## result
|
||||
|
||||
The `$result` variable is set to the number of string references found.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
The $result variable is set to the number of string references found.
|
||||
@@ -0,0 +1,19 @@
|
||||
# yara
|
||||
|
||||
Apply Yara rules to a memory range.
|
||||
|
||||
YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or whatever you want to describe) based on textual or binary patterns. Each description, a.k.a rule, consists of a set of strings and a boolean expression which determine its logic.
|
||||
|
||||
Yara is a separate project. You can view its documentation at [http://yara.readthedocs.io](http://yara.readthedocs.io). x64dbg also maintains a list of Yara signatures at [https://github.com/x64dbg/yarasigs](https://github.com/x64dbg/yarasigs).
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Rules file to apply. This should be a full path.
|
||||
|
||||
`[arg2]` Start address of the range to apply the rules to. If not specified, the disassembly selection will be used.
|
||||
|
||||
`[arg3]` Size of the range to apply the rules to. When not specified, the whole page will be used.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -0,0 +1,17 @@
|
||||
# yaramod
|
||||
|
||||
Apply Yara rules to a module.
|
||||
|
||||
YARA is a tool aimed at (but not limited to) helping malware researchers to identify and classify malware samples. With YARA you can create descriptions of malware families (or whatever you want to describe) based on textual or binary patterns. Each description, a.k.a rule, consists of a set of strings and a boolean expression which determine its logic.
|
||||
|
||||
Yara is a separate project. You can view its documentation at [http://yara.readthedocs.io](http://yara.readthedocs.io). x64dbg also maintains a list of Yara signatures at [https://github.com/x64dbg/yarasigs](https://github.com/x64dbg/yarasigs).
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Rules file to apply. This should be a full path.
|
||||
|
||||
`arg2` Name of the module to apply the rules to.
|
||||
|
||||
## result
|
||||
|
||||
This command does not set any result variables.
|
||||
@@ -4,12 +4,8 @@ Run the program until the program reaches somewhere belonging to the party numbe
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The party number. This value cannot be an expression. Note: `0` is user module, `1` is system module.
|
||||
`arg1` The party number. This value cannot be an expression.
|
||||
|
||||
## results
|
||||
|
||||
This command does not set any result variables.
|
||||
|
||||
## see also
|
||||
|
||||
[RunToUserCode](RunToUserCode.md)
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
Run until user code is reached. It is equivallent to `RunToParty 0`.
|
||||
|
||||
This command sets temporary memory breakpoints on all user code pages, rather than single stepping. It fails when another RunToUserCode command is already executing, because the temporary memory breakpoints are already set.
|
||||
|
||||
## arguments
|
||||
|
||||
This command has no arguments.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# StartTraceRecording/StartRunTrace/opentrace
|
||||
# StartRunTrace/opentrace
|
||||
|
||||
Start recording a trace to the specified file. The file will also be opened in the trace view. Note you need to use [TraceIntoConditional](./TraceIntoConditional.md) or other command to actually trace the program and record instructions.
|
||||
Start recording a run trace with a specified file. The file will also be opened in the trace view. Note you need to use [TraceIntoConditional](./TraceIntoConditional.md) or other command to actually trace the program.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# StopTraceRecording/StopRunTrace/tc
|
||||
# StopRunTrace/tc
|
||||
|
||||
Stops trace recording and closes the file.
|
||||
Stops recording a run trace and closes file.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
# TraceIntoBeyondTraceCoverage/TraceIntoBeyondTraceRecord/tibt
|
||||
# TraceIntoBeyondTraceRecord/tibt
|
||||
|
||||
Perform [StepInto](StepInto.md) until the program reaches somewhere outside the trace coverage. This is similar to `ticnd tr.hitcount(cip)==0&&arg1, arg2` except that it achieves higher performance by avoiding the expression function invocation.
|
||||
|
||||
Usage example: If you want to find out the forking point of the program when different inputs are provided, first enable or re-enable trace coverage to clean trace coverage data.
|
||||
Then you trace while input A is provided. Finally you provide input B and execute `TraceIntoBeyondTraceRecord` command. The program will be paused where the instruction is never executed before.
|
||||
Perform [StepInto](StepInto.md) until the program reaches somewhere outside the trace record.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# TraceIntoIntoTraceCoverage/TraceIntoIntoTraceRecord/tiit
|
||||
# TraceIntoIntoTraceRecord/tiit
|
||||
|
||||
Perform StepInto until the program reaches somewhere inside the trace coverage.
|
||||
Perform StepInto until the program reaches somewhere inside the trace record.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# TraceOverBeyondTraceCoverage,TraceOverBeyondTraceRecord/tobt
|
||||
# TraceOverBeyondTraceRecord/tobt
|
||||
|
||||
Perform StepOver until the program reaches somewhere outside the trace coverage.
|
||||
Perform StepOver until the program reaches somewhere outside the trace record.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# TraceOverIntoTraceCoverage/TraceOverIntoTraceRecord/toit
|
||||
# TraceOverIntoTraceRecord/toit
|
||||
|
||||
Perform StepOver until the program reaches somewhere inside the trace coverage.
|
||||
Perform StepOver until the program reaches somewhere inside the trace record.
|
||||
|
||||
## arguments
|
||||
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
# VisitType/DisplayType/dt
|
||||
# VisitType
|
||||
|
||||
Display a type and print its members in the struct view.
|
||||
Visit a type and print its members.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` The type to display.
|
||||
`arg1` The type to visit.
|
||||
|
||||
`[arg2]` Address to print from. If not specified (or zero) the type will be printed without values.
|
||||
|
||||
`[arg3]` Maximum pointer resolution depth. This can be used to also display structures (and values) pointed to by members of the type you are visiting. If not specified or negative, it will default to 2 (configurable with `[Engine].DefaultTypePtrDepth`).
|
||||
|
||||
`[arg4]` Name of the variable. If not specified it will default to an empty string.
|
||||
`[arg3]` Maximum pointer resolution depth (default is 0). This can be used to also display structures (and values) pointed to by members of the type you are visiting.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -8,18 +8,4 @@ This command has no arguments.
|
||||
|
||||
## result
|
||||
|
||||
`$result` will be set to the number of user-defined arguments.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
$resultwill be set to the number of user-defined arguments.
|
||||
@@ -8,18 +8,4 @@ This command has no arguments.
|
||||
|
||||
## result
|
||||
|
||||
`$result` will be set to the number of user-defined bookmarks.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
$resultwill be set to the number of user-defined bookmarks.
|
||||
@@ -8,18 +8,4 @@ This command has no arguments.
|
||||
|
||||
## result
|
||||
|
||||
`$result` will be set to the number of user-defined comments.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
$resultwill be set to the number of user-defined comments.
|
||||
@@ -8,18 +8,4 @@ This command has no arguments.
|
||||
|
||||
## result
|
||||
|
||||
`$result` will be set to the number of user-defined functions.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
$resultwill be set to the number of user-defined functions.
|
||||
@@ -8,18 +8,4 @@ This command has no arguments.
|
||||
|
||||
## result
|
||||
|
||||
`$result` will be set to the number of user-defined labels.
|
||||
|
||||
## remarks
|
||||
|
||||
The contents of the reference view can be iterated in a script with the `ref.addr` [expression function](../../introduction/Expression-functions.md):
|
||||
|
||||
```
|
||||
i = 0
|
||||
loop:
|
||||
addr = ref.addr(i)
|
||||
log "reference {d:i} = {p:addr}"
|
||||
i++
|
||||
cmp i, ref.count()
|
||||
jne loop
|
||||
```
|
||||
$resultwill be set to the number of user-defined labels.
|
||||
@@ -6,7 +6,7 @@ Set a label.
|
||||
|
||||
`arg1` Address to set the label at (preferably inside a module).
|
||||
|
||||
`arg2` Label text. You can use [String Formatting](../../introduction/Formatting.md) here.
|
||||
`arg2` Label text. You can use [String Formatting](../../introduction/Formatting.rst) here.
|
||||
|
||||
## result
|
||||
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
Declare a new variable.
|
||||
|
||||
**Note**: You should not use this command under normal circumstances. If you want to create a variable you can do so with `myvar = 42`.
|
||||
|
||||
## arguments
|
||||
|
||||
`arg1` Variable name (will be prefixed with '$' if not done).
|
||||
|
||||
@@ -8,7 +8,7 @@ Set the watchdog mode of a watch item.
|
||||
|
||||
`[arg2]` The watchdog mode. Possible values:
|
||||
|
||||
* disabled : Watchdog is disabled.
|
||||
* disabled : Watchdog is disableed.
|
||||
* changed : Watchdog is triggered when the value is changed.
|
||||
* unchanged : Watchdog is triggered when the value is not changed.
|
||||
* istrue : Watchdog is triggered when the value is not 0.
|
||||
@@ -18,4 +18,4 @@ When this argument is not specified, the mode will be set to "changed" if the cu
|
||||
|
||||
## results
|
||||
|
||||
This command does not set any result variables.
|
||||
This command does not set any result variables.
|
||||
@@ -31,18 +31,12 @@
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.todo',
|
||||
'm2r'
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
from recommonmark.parser import CommonMarkParser
|
||||
from recommonmark.transform import AutoStructify
|
||||
|
||||
source_parsers = {
|
||||
'.md': CommonMarkParser,
|
||||
}
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
@@ -89,7 +83,7 @@ language = None
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This patterns also effect to html_static_path and html_extra_path
|
||||
exclude_patterns = ['_build*', 'Thumbs.db', '.DS_Store', 'README.md', '.git', 'python-2.7.18.amd64.portable']
|
||||
exclude_patterns = ['_build*', 'Thumbs.db', '.DS_Store', 'README.md', '.git']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
@@ -346,9 +340,4 @@ texinfo_documents = [
|
||||
# texinfo_no_detailmenu = False
|
||||
|
||||
def setup(app):
|
||||
app.add_config_value('recommonmark_config', {
|
||||
'enable_auto_doc_ref': True,
|
||||
'enable_inline_math': False,
|
||||
'enable_auto_toc_tree': False
|
||||
}, True)
|
||||
app.add_transform(AutoStructify)
|
||||
pass
|
||||
@@ -1,25 +1,25 @@
|
||||
# DbgCmdExec
|
||||
|
||||
Execute the command on the command processing thread.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool DbgCmdExec(const char* cmd);
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`cmd` The command string in UTF-8 encoding
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
`true` if the command is sent to the command processing thread for asynchronous execution, `false` otherwise.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
DbgCmdExec("run");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgCmdExecDirect](./DbgCmdExecDirect.md)
|
||||
- List of related functions
|
||||
@@ -1,25 +1,25 @@
|
||||
# DbgCmdExecDirect
|
||||
|
||||
Execute the command on the calling thread.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool DbgCmdExecDirect(const char* cmd)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`cmd` The command string in UTF-8 encoding
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
`true` if the command is executed successfully, `false` otherwise.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
DbgCmdExecDirect("run");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgCmdExec](./DbgCmdExec.md)
|
||||
- List of related functions
|
||||
@@ -1,18 +1,18 @@
|
||||
# DbgExit
|
||||
|
||||
Used by x64dbg GUI to send exit signal to debugger and close the debugger.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void DbgExit()
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
No parameters
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
No return value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
# DbgMemFindBaseAddr
|
||||
|
||||
Returns the baseaddress and size of a specific module
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
duint DbgMemFindBaseAddr(
|
||||
duint addr,
|
||||
duint* size
|
||||
);
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`addr` Virtual address which is in a specific module. <br>
|
||||
`size` Pointer, which will, on success, hold the module size.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
On success, returns the virtual address of a specific module. <br>
|
||||
On failure, it will return 0.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
@@ -27,4 +22,4 @@ Example code.
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgMemGetPageSize](./DbgMemGetPageSize.md)
|
||||
- List of related functions
|
||||
@@ -1,30 +1,25 @@
|
||||
# DbgMemGetPageSize
|
||||
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
Get page base and size of selected instruction.
|
||||
```c++
|
||||
SELECTIONDATA sel; // Define Address the slected line in the Disassembly window ( begin , End )
|
||||
GuiSelectionGet(GUI_DISASSEMBLY, &sel); // Get the value of sel(begin addr , End addr )
|
||||
duint pagesize = DbgMemGetPageSize(sel.start); // get the page size of the section from the selected memory addr
|
||||
//Or use the following statement to get page base and size in one call.
|
||||
duint sctionbase = DbgMemFindBaseAddr(sel.start, &pagesize); // get the base of this section ( begin addr of the section )
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- List of related functions
|
||||
# DbgMemGetPageSize
|
||||
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- List of related functions
|
||||
@@ -3,35 +3,23 @@
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool DbgMemRead(
|
||||
duint va,
|
||||
void* dest,
|
||||
duint size
|
||||
);
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`va` Virtual address to source<br>
|
||||
`dest` Pointer to pre allocated buffer of size `size`<br>
|
||||
`size` Number of bytes that should be read
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Returns true on success.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
// read user selected data from disassembly window
|
||||
SELECTIONDATA sel;
|
||||
GuiSelectionGet(GUI_DISASSEMBLY, &sel);
|
||||
uint16_t size = sel.end - sel.start + 1;
|
||||
uint8_t* dest = new uint8_t[size];
|
||||
bool success = DbgMemRead(sel.start, dest, size);
|
||||
// on success, the selected data is stored in dest
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- List of related functions
|
||||
- List of related functions
|
||||
@@ -1,31 +1,25 @@
|
||||
# DbgSetAutoCommentAt
|
||||
|
||||
Set an auto comment at the given address.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool DbgSetAutoCommentAt(duint addr, const char* text)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`addr` The address to comment.
|
||||
|
||||
`text` The auto comment in UTF-8 encoding.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
`true` if the function is successful, `false` otherwise.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
DbgSetAutoCommentAt(DbgValFromString("dis.sel()"), "This is the currently selected instruction");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgSetCommentAt](./DbgSetCommentAt.md)
|
||||
- [DbgSetAutoLabelAt](./DbgSetAutoLabelAt.md)
|
||||
- [DbgSetAutoBookmarkAt](./DbgSetAutoBookmarkAt.md)
|
||||
- [DbgSetLabelAt](./DbgSetLabelAt.md)
|
||||
- [DbgSetBookmarkAt](./DbgSetBookmarkAt.md)
|
||||
- List of related functions
|
||||
@@ -1,31 +1,25 @@
|
||||
# DbgSetCommentAt
|
||||
|
||||
Set a comment at the given address.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool DbgSetCommentAt(duint addr, const char* text)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`addr` The address to comment.
|
||||
|
||||
`text` The comment in UTF-8 encoding.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
`true` if the function is successful, `false` otherwise.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
DbgSetCommentAt(DbgValFromString("dis.sel()"), "This is the currently selected instruction");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgSetAutoCommentAt](./DbgSetAutoCommentAt.md)
|
||||
- [DbgSetAutoLabelAt](./DbgSetAutoLabelAt.md)
|
||||
- [DbgSetAutoBookmarkAt](./DbgSetAutoBookmarkAt.md)
|
||||
- [DbgSetLabelAt](./DbgSetLabelAt.md)
|
||||
- [DbgSetBookmarkAt](./DbgSetBookmarkAt.md)
|
||||
- List of related functions
|
||||
@@ -1,25 +1,25 @@
|
||||
# DbgValFromString
|
||||
|
||||
Evaluate the expression.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
duint DbgValFromString(const char* string);
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`string` The [expression](../../../introduction/Expressions.md) to evaluate in UTF-8 encoding.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
The value of the expression.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
eip = DbgValFromString("cip");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgValToString](./DbgValToString.md)
|
||||
- List of related functions
|
||||
@@ -1,27 +1,25 @@
|
||||
# DbgValToString
|
||||
|
||||
Set the variable to the value.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool DbgValToString(const char* string, duint value);
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`string` The name of the thing to set in UTF-8 encoding.
|
||||
|
||||
`value` The value to set.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
`true` if the value was set successfully, `false` otherwise.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
DbgValToString("eax", 1);
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [DbgValFromString](./DbgValFromString.md)
|
||||
- List of related functions
|
||||
@@ -1,6 +1,6 @@
|
||||
# GuiAddLogMessage
|
||||
|
||||
Adds a message to the log. The message will be shown in the log window and on the status bar at the bottom of x64dbg.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiAddLogMessage(
|
||||
@@ -32,5 +32,4 @@ Invoke GuiAddLogMessage, Addr szMsg
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiLogClear](./GuiLogClear.md)
|
||||
- [GuiAddStatusBarMessage](./GuiAddStatusBarMessage.md)
|
||||
- [GuiLogClear](./GuiLogClear.md)
|
||||
@@ -1,25 +1,25 @@
|
||||
# GuiAddStatusBarMessage
|
||||
|
||||
Shows text in the statusbar, which can be used to inform the user.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiAddStatusBarMessage(const char* msg);
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`msg` String containing the message to add to the status bar.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
GuiAddStatusBarMessage("This text will be displayed in the statusbar.");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiAddLogMessage](./GuiAddLogMessage.md)
|
||||
- List of related functions
|
||||
@@ -1,9 +1,9 @@
|
||||
# GuiDisplayWarning
|
||||
|
||||
Shows a warning dialog with title text and main message text.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiDisplayWarning(const char* title, const char* text)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
@@ -12,15 +12,14 @@ void GuiDisplayWarning(const char* title, const char* text)
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
GuiDisplayWarning("Warning!", "Operation cannot be reversed.");
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiAddLogMessage](./GuiAddLogMessage.md)
|
||||
- [GuiAddStatusBarMessage](./GuiAddStatusBarMessage.md)
|
||||
- List of related functions
|
||||
@@ -1,33 +1,25 @@
|
||||
# GuiGetDebuggeeNotes
|
||||
|
||||
Returns into a variable a pointer to a string containing notes and information that a user has made relating to the target being debugged (the debuggee). The function GuiGetGlobalNotes can be used to get the global notes stored by a user.
|
||||
|
||||
```c++
|
||||
void GuiGetDebuggeeNotes(char** text)
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`text` A variable that will contain a pointer to a buffer on return. The pointer returned points to a string that will contain the notes for the debuggee.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value. The string containing the notes is returned via the pointer supplied via the `text` parameter.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
char* text = nullptr;
|
||||
GuiGetDebuggeeNotes(&text);
|
||||
if(text)
|
||||
{
|
||||
// do something with text
|
||||
BridgeFree(text);
|
||||
}
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiSetDebuggeeNotes](./GuiSetDebuggeeNotes.md)
|
||||
- [GuiGetGlobalNotes](./GuiGetGlobalNotes.md)
|
||||
- [GuiSetGlobalNotes](./GuiSetGlobalNotes.md)
|
||||
# GuiGetDebuggeeNotes
|
||||
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- List of related functions
|
||||
@@ -1,33 +1,25 @@
|
||||
# GuiGetGlobalNotes
|
||||
|
||||
Returns into a variable a pointer to a string containing global notes and information that a user has made. The function GuiGetDebuggeeNotes can be used to get the local notes stored by a user for the target being debugged (the debuggee).
|
||||
|
||||
```c++
|
||||
void GuiGetGlobalNotes(char** text)
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`text` A variable that will contain a pointer to a buffer on return. The pointer returned points to a string that will contain the global notes.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value. The string containing the notes is returned via the pointer supplied via the `text` parameter.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
char* text = nullptr;
|
||||
GuiGetGlobalNotes(&text);
|
||||
if(text)
|
||||
{
|
||||
// do something with text
|
||||
BridgeFree(text);
|
||||
}
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiSetGlobalNotes](./GuiSetGlobalNotes.md)
|
||||
- [GuiGetDebuggeeNotes](./GuiGetDebuggeeNotes.md)
|
||||
- [GuiSetDebuggeeNotes](./GuiSetDebuggeeNotes.md)
|
||||
# GuiGetGlobalNotes
|
||||
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- List of related functions
|
||||
@@ -1,24 +1,25 @@
|
||||
# GuiGetWindowHandle
|
||||
|
||||
Obtains the main window handle for x64dg.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
HWND GuiGetWindowHandle();
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
This function has no parameters.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Returns the main window handle for x6dbg as a HWND variable
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
hWnd = GuiGetWindowHandle();
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- List of related functions
|
||||
@@ -1,42 +1,25 @@
|
||||
# GuiIsUpdateDisabled
|
||||
|
||||
Returns the status of the internal update flag, which can be disabled via GuiUpdateDisable function or enabled vis the GuiUpdateEnable function.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
bool GuiIsUpdateDisabled()
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
This function has no parameters.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Returns a boolean value indicating if the internal update flag is set to disabled. If it is set to disabled the value is TRUE otherwise updates are enabled and the value is FALSE.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
bool bUpdate = GuiIsUpdateDisabled();
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiUpdateAllViews](./GuiUpdateAllViews.md)
|
||||
- [GuiUpdateArgumentWidget](./GuiUpdateArgumentWidget.md)
|
||||
- [GuiUpdateBreakpointsView](./GuiUpdateBreakpointsView.md)
|
||||
- [GuiUpdateCallStack](./GuiUpdateCallStack.md)
|
||||
- [GuiUpdateDisable](./GuiUpdateDisable.md)
|
||||
- [GuiUpdateDisassemblyView](./GuiUpdateDisassemblyView.md)
|
||||
- [GuiUpdateDumpView](./GuiUpdateDumpView.md)
|
||||
- [GuiUpdateEnable](./GuiUpdateEnable.md)
|
||||
- [GuiUpdateGraphView](./GuiUpdateGraphView.md)
|
||||
- [GuiUpdateMemoryView](./GuiUpdateMemoryView.md)
|
||||
- [GuiUpdatePatches](./GuiUpdatePatches.md)
|
||||
- [GuiUpdateRegisterView](./GuiUpdateRegisterView.md)
|
||||
- [GuiUpdateSEHChain](./GuiUpdateSEHChain.md)
|
||||
- [GuiUpdateSideBar](./GuiUpdateSideBar.md)
|
||||
- [GuiUpdateThreadView](./GuiUpdateThreadView.md)
|
||||
- [GuiUpdateTimeWastedCounter](./GuiUpdateTimeWastedCounter.md)
|
||||
- [GuiUpdateWatchView](./GuiUpdateWatchView.md)
|
||||
- [GuiUpdateWindowTitle](./GuiUpdateWindowTitle.md)
|
||||
- List of related functions
|
||||
@@ -1,25 +1,25 @@
|
||||
# GuiLogClear
|
||||
|
||||
Clears the log window of all text.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiLogClear();
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
This function has no parameters.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
GuiLogClear();
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiAddLogMessage](./GuiAddLogMessage)
|
||||
- List of related functions
|
||||
@@ -1,40 +1,25 @@
|
||||
# GuiMenuAdd
|
||||
|
||||
This function adds a new child menu to a menu.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
int GuiMenuAdd(int hMenu, const char* title)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`hMenu` Menu handle from a previously-added menu or from the main menu.
|
||||
|
||||
`title` A const char repesenting the text title of the menu item to be added.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Returns the menu handle (unique), or -1 on failure.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
hNewMenu = GuiMenuAdd(hMenu, &szMenuTitle);
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiMenuAddEntry](./GuiMenuAddEntry.md)
|
||||
- [GuiMenuAddSeparator](./GuiMenuAddSeparator.md)
|
||||
- [GuiMenuClear](./GuiMenuClear.md)
|
||||
- [GuiMenuSetEntryIcon](./GuiMenuSetEntryIcon.md)
|
||||
- [GuiMenuSetIcon](./GuiMenuSetIcon.md)
|
||||
|
||||
Note: Plugin developers should make use of the plugin functions provided:
|
||||
|
||||
- [\_plugin\_menuadd](../../plugins/API/menuadd.rst)
|
||||
- [\_plugin\_menuaddentry](../../plugins/API/menuaddentry.rst)
|
||||
- [\_plugin\_menuaddseparator](../../plugins/API/menuaddseparator.rst)
|
||||
- [\_plugin\_menuclear](../../plugins/API/menuclear.rst)
|
||||
- [\_plugin\_menuentryseticon](../../plugins/API/menuentryseticon.rst)
|
||||
- [\_plugin\_menuseticon](../../plugins/API/menuseticon.rst)
|
||||
- List of related functions
|
||||
@@ -1,40 +1,25 @@
|
||||
# GuiMenuAddEntry
|
||||
|
||||
This function adds a menu entry to a menu.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
int GuiMenuAddEntry(int hMenu, const char* title)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`hMenu` Menu handle from a previously-added menu or from the main menu.
|
||||
|
||||
`title` A const char repesenting the text title of the menu item to be added.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
Returns the menu handle (unique), or -1 on failure.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
hNewMenuEntry = GuiMenuAddEntry(hMenu, &szMenuEntryText);
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiMenuAdd](./GuiMenuAdd.md)
|
||||
- [GuiMenuAddSeparator](./GuiMenuAddSeparator.md)
|
||||
- [GuiMenuClear](./GuiMenuClear.md)
|
||||
- [GuiMenuSetEntryIcon](./GuiMenuSetEntryIcon.md)
|
||||
- [GuiMenuSetIcon](./GuiMenuSetIcon.md)
|
||||
|
||||
Note: Plugin developers should make use of the plugin functions provided:
|
||||
|
||||
- [\_plugin\_menuadd](../../plugins/API/menuadd.rst)
|
||||
- [\_plugin\_menuaddentry](../../plugins/API/menuaddentry.rst)
|
||||
- [\_plugin\_menuaddseparator](../../plugins/API/menuaddseparator.rst)
|
||||
- [\_plugin\_menuclear](../../plugins/API/menuclear.rst)
|
||||
- [\_plugin\_menuentryseticon](../../plugins/API/menuentryseticon.rst)
|
||||
- [\_plugin\_menuseticon](../../plugins/API/menuseticon.rst)
|
||||
- List of related functions
|
||||
@@ -1,44 +1,25 @@
|
||||
# GuiMenuAddSeparator
|
||||
|
||||
Adds a menu separator to a menu.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiMenuAddSeparator(int hMenu)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`hMenu` Menu handle from a previously-added menu or from the main menu.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
hNewMenu = GuiMenuAdd(hMenu, &szMenuTitle);
|
||||
GuiMenuAddEntry(hNewMenu, &szMenuEntry1Text);
|
||||
GuiMenuAddEntry(hNewMenu, &szMenuEntry2Text);
|
||||
GuiMenuAddSeparator(hNewMenu);
|
||||
GuiMenuAddEntry(hNewMenu, &szMenuEntry3Text);
|
||||
GuiMenuAddEntry(hNewMenu, &szMenuEntry4Text);
|
||||
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiMenuAdd](./GuiMenuAdd.md)
|
||||
- [GuiMenuAddEntry](./GuiMenuAddEntry.md)
|
||||
- [GuiMenuClear](./GuiMenuClear.md)
|
||||
- [GuiMenuSetEntryIcon](./GuiMenuSetEntryIcon.md)
|
||||
- [GuiMenuSetIcon](./GuiMenuSetIcon.md)
|
||||
|
||||
Note: Plugin developers should make use of the plugin functions provided:
|
||||
|
||||
- [\_plugin\_menuadd](../../plugins/API/menuadd.rst)
|
||||
- [\_plugin\_menuaddentry](../../plugins/API/menuaddentry.rst)
|
||||
- [\_plugin\_menuaddseparator](../../plugins/API/menuaddseparator.rst)
|
||||
- [\_plugin\_menuclear](../../plugins/API/menuclear.rst)
|
||||
- [\_plugin\_menuentryseticon](../../plugins/API/menuentryseticon.rst)
|
||||
- [\_plugin\_menuseticon](../../plugins/API/menuseticon.rst)
|
||||
- List of related functions
|
||||
@@ -1,39 +1,25 @@
|
||||
# GuiMenuClear
|
||||
|
||||
This function removes all entries and child menus from a menu. It will not remove the menu itself.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiMenuClear(int hMenu)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`hMenu` Menu handle from a previously-added menu or from the main menu.
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
hNewMenu = GuiMenuAdd(hMenu, &szMenuTitle);
|
||||
GuiMenuClear(hMenuNew);
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiMenuAdd](./GuiMenuAdd.md)
|
||||
- [GuiMenuAddEntry](./GuiMenuAddEntry.md)
|
||||
- [GuiMenuAddSeparator](./GuiMenuAddSeparator.md)
|
||||
- [GuiMenuSetEntryIcon](./GuiMenuSetEntryIcon.md)
|
||||
- [GuiMenuSetIcon](./GuiMenuSetIcon.md)
|
||||
|
||||
Note: Plugin developers should make use of the plugin functions provided:
|
||||
|
||||
- [\_plugin\_menuadd](../../plugins/API/menuadd.rst)
|
||||
- [\_plugin\_menuaddentry](../../plugins/API/menuaddentry.rst)
|
||||
- [\_plugin\_menuaddseparator](../../plugins/API/menuaddseparator.rst)
|
||||
- [\_plugin\_menuclear](../../plugins/API/menuclear.rst)
|
||||
- [\_plugin\_menuentryseticon](../../plugins/API/menuentryseticon.rst)
|
||||
- [\_plugin\_menuseticon](../../plugins/API/menuseticon.rst)
|
||||
- List of related functions
|
||||
@@ -1,44 +1,25 @@
|
||||
# GuiMenuSetEntryIcon
|
||||
|
||||
Sets an icon for a specified menu entry.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiMenuSetEntryIcon(int hEntry, const ICONDATA* icon)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`hEntry` Parameter description.
|
||||
|
||||
`icon`
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
ICONDATA rocket;
|
||||
rocket.data = icon_rocket;
|
||||
rocket.size = sizeof(icon_rocket);
|
||||
hNewMenuEntry = GuiMenuAddEntry(hMenu, &szMenuEntryText);
|
||||
GuiMenuSetEntryIcon(hNewMenuEntry,&rocket);
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiMenuAdd](./GuiMenuAdd.md)
|
||||
- [GuiMenuAddEntry](./GuiMenuAddEntry.md)
|
||||
- [GuiMenuAddSeparator](./GuiMenuAddSeparator.md)
|
||||
- [GuiMenuClear](./GuiMenuClear.md)
|
||||
- [GuiMenuSetIcon](./GuiMenuSetIcon.md)
|
||||
|
||||
Note: Plugin developers should make use of the plugin functions provided:
|
||||
|
||||
- [\_plugin\_menuadd](../../plugins/API/menuadd.rst)
|
||||
- [\_plugin\_menuaddentry](../../plugins/API/menuaddentry.rst)
|
||||
- [\_plugin\_menuaddseparator](../../plugins/API/menuaddseparator.rst)
|
||||
- [\_plugin\_menuclear](../../plugins/API/menuclear.rst)
|
||||
- [\_plugin\_menuentryseticon](../../plugins/API/menuentryseticon.rst)
|
||||
- [\_plugin\_menuseticon](../../plugins/API/menuseticon.rst)
|
||||
- List of related functions
|
||||
@@ -1,49 +1,25 @@
|
||||
# GuiMenuSetIcon
|
||||
|
||||
Sets an icon for a specified menu.
|
||||
Function description.
|
||||
|
||||
```c++
|
||||
void GuiMenuSetIcon(int hMenu, const ICONDATA* icon)
|
||||
Function definition.
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
`hMenu` Menu handle from a previously-added menu or from the main menu.
|
||||
|
||||
`icon`
|
||||
`param1` Parameter description.
|
||||
|
||||
## Return Value
|
||||
|
||||
This function does not return a value.
|
||||
Return value description.
|
||||
|
||||
## Example
|
||||
|
||||
```c++
|
||||
ICONDATA rocket;
|
||||
rocket.data = icon_rocket;
|
||||
rocket.size = sizeof(icon_rocket);
|
||||
hNewMenuEntry = GuiMenuAddEntry(hMenu, &szMenuEntryText);
|
||||
GuiMenuSetIcon(hMenuDisasm,&rocket);
|
||||
|
||||
Example code.
|
||||
```
|
||||
|
||||
## Related functions
|
||||
|
||||
- [GuiMenuAdd](./GuiMenuAdd.md)
|
||||
- [GuiMenuAddEntry](./GuiMenuAddEntry.md)
|
||||
- [GuiMenuAddSeparator](./GuiMenuAddSeparator.md)
|
||||
- [GuiMenuClear](./GuiMenuClear.md)
|
||||
- [GuiMenuSetEntryIcon](./GuiMenuSetEntryIcon.md)
|
||||
|
||||
Note: Plugin developers should make use of the plugin functions provided:
|
||||
|
||||
- [\_plugin\_menuadd](../../plugins/API/menuadd.rst)
|
||||
- [\_plugin\_menuaddentry](../../plugins/API/menuaddentry.rst)
|
||||
- [\_plugin\_menuaddseparator](../../plugins/API/menuaddseparator.rst)
|
||||
- [\_plugin\_menuclear](../../plugins/API/menuclear.rst)
|
||||
- [\_plugin\_menuentryseticon](../../plugins/API/menuentryseticon.rst)
|
||||
- [\_plugin\_menuseticon](../../plugins/API/menuseticon.rst)
|
||||
|
||||
|
||||
|
||||
|
||||
- List of related functions
|
||||
Loaded 100 of 204 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user