amx.inc- Read/write contents of the AMX strcture (
AMXstruct in C code).
amx_base.inc- Get base address of the AMX in memory (
amx_header.inc- Read contents of the AMX header (
AMX_HEADER) and query header tables such as publics, natives, tags, etc.
amx_memory.inc- Read/write contents of variables using their AMX address (kind of like pointers in C).
codescan.inc- Find patterns in bytecode.
disasm.inc- Example of how to disassemble AMX bytecode (i.e. self-disassembly).
dynamic_call.inc- Call any function by address or index. Can be very powerful in combination with
frame_info.inc- Get information about call frames from the stack.
heap_alloc.inc- Allocate memory on the AMX heap.
jit.inc- Check if running under the JIT plugin.
opcode.inc- List of AMX opcodes and utility functions for (un-)relocating opcodes on Linux.
os.inc- Detect operating system (Windows vs Linux).
phys_memory.inc- Read/write memory of the host process (outside of AMX data).
profile.inc- Simple profiler written purely in Pawn. It can measure execution time of public functions.
shellcode.inc- Execute arbitrary native code (doesn't work on Linux).
stack_dump.inc- Print stack contents to the console.
stack_trace.inc- Print stack trace.
windows/import_table.inc- Read the PE import table of the host process.
windows/ShellExecute.inc- How to use
import_tableto call a Win32 API function (in this case
Simply install to your project:
sampctl package install amx_assembly
Include in your code and begin using the library:
There are a few example scripts in the
test directory that show how to use some of these includes.