diff --git a/dev/feed_json_updated.json b/dev/feed_json_updated.json index f6991337f..212f11688 100644 --- a/dev/feed_json_updated.json +++ b/dev/feed_json_updated.json @@ -1 +1 @@ -{"version": "https://jsonfeed.org/version/1", "title": "pwndbg Blog", "home_page_url": "https://pwndbg.re/pwndbg/latest/", "feed_url": "https://pwndbg.re/pwndbg/latest/feed_json_updated.json", "description": "pwndbg (/pa\u028an\u02c8di\u02ccb\u028c\u0261/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.", "icon": "https://pwndbg.re/pwndbg/assets/favicon.ico", "authors": [], "language": "en", "items": [{"id": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "url": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "title": "Pwndbg coding sprints report", "content_html": "Report of the two coding sprints with Pwndbg\n", "image": null, "date_modified": "2025-08-11T22:24:29+00:00", "authors": [{"name": "Disconnect3d"}], "tags": []}]} \ No newline at end of file +{"version": "https://jsonfeed.org/version/1", "title": "pwndbg Blog", "home_page_url": "https://pwndbg.re/pwndbg/latest/", "feed_url": "https://pwndbg.re/pwndbg/latest/feed_json_updated.json", "description": "pwndbg (/pa\u028an\u02c8di\u02ccb\u028c\u0261/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.", "icon": "https://pwndbg.re/pwndbg/assets/favicon.ico", "authors": [], "language": "en", "items": [{"id": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "url": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "title": "Pwndbg coding sprints report", "content_html": "Report of the two coding sprints with Pwndbg\n", "image": null, "date_modified": "2025-08-11T22:29:03+00:00", "authors": [{"name": "Disconnect3d"}], "tags": []}]} \ No newline at end of file diff --git a/dev/feed_rss_created.xml b/dev/feed_rss_created.xml index a13a99e48..22c278461 100644 --- a/dev/feed_rss_created.xml +++ b/dev/feed_rss_created.xml @@ -1 +1 @@ - pwndbg Blogpwndbg (/paʊnˈdiˌbʌɡ/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.https://pwndbg.re/pwndbg/latest/https://github.com/pwndbg/pwndbg/en Mon, 11 Aug 2025 22:26:37 -0000 Mon, 11 Aug 2025 22:26:37 -0000 1440 MkDocs RSS plugin - v1.17.1 https://pwndbg.re/pwndbg/assets/favicon.ico pwndbg Bloghttps://pwndbg.re/pwndbg/latest/ Pwndbg coding sprints report Disconnect3d Report of the two coding sprints with Pwndbghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ Sun, 21 Aug 2022 00:00:00 +0000pwndbg Bloghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ \ No newline at end of file + pwndbg Blogpwndbg (/paʊnˈdiˌbʌɡ/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.https://pwndbg.re/pwndbg/latest/https://github.com/pwndbg/pwndbg/en Mon, 11 Aug 2025 22:37:46 -0000 Mon, 11 Aug 2025 22:37:46 -0000 1440 MkDocs RSS plugin - v1.17.1 https://pwndbg.re/pwndbg/assets/favicon.ico pwndbg Bloghttps://pwndbg.re/pwndbg/latest/ Pwndbg coding sprints report Disconnect3d Report of the two coding sprints with Pwndbghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ Sun, 21 Aug 2022 00:00:00 +0000pwndbg Bloghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ \ No newline at end of file diff --git a/dev/feed_rss_updated.xml b/dev/feed_rss_updated.xml index f08f30d86..a9ccc3a2d 100644 --- a/dev/feed_rss_updated.xml +++ b/dev/feed_rss_updated.xml @@ -1 +1 @@ - pwndbg Blogpwndbg (/paʊnˈdiˌbʌɡ/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.https://pwndbg.re/pwndbg/latest/https://github.com/pwndbg/pwndbg/en Mon, 11 Aug 2025 22:26:37 -0000 Mon, 11 Aug 2025 22:26:37 -0000 1440 MkDocs RSS plugin - v1.17.1 https://pwndbg.re/pwndbg/assets/favicon.ico pwndbg Bloghttps://pwndbg.re/pwndbg/latest/ Pwndbg coding sprints report Disconnect3d Report of the two coding sprints with Pwndbghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ Mon, 11 Aug 2025 22:24:29 +0000pwndbg Bloghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ \ No newline at end of file + pwndbg Blogpwndbg (/paʊnˈdiˌbʌɡ/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.https://pwndbg.re/pwndbg/latest/https://github.com/pwndbg/pwndbg/en Mon, 11 Aug 2025 22:37:46 -0000 Mon, 11 Aug 2025 22:37:46 -0000 1440 MkDocs RSS plugin - v1.17.1 https://pwndbg.re/pwndbg/assets/favicon.ico pwndbg Bloghttps://pwndbg.re/pwndbg/latest/ Pwndbg coding sprints report Disconnect3d Report of the two coding sprints with Pwndbghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ Mon, 11 Aug 2025 22:29:03 +0000pwndbg Bloghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ \ No newline at end of file diff --git a/dev/reference/pwndbg/aglib/disasm/arch/index.html b/dev/reference/pwndbg/aglib/disasm/arch/index.html index 7923ddc44..f74e7aa54 100644 --- a/dev/reference/pwndbg/aglib/disasm/arch/index.html +++ b/dev/reference/pwndbg/aglib/disasm/arch/index.html @@ -24,9 +24,9 @@ module-attribute (pwndbg.aglib.disasm.arch.DO_NOT_EMULATE)" href=#pwndbg.aglib.disasm.arch.DO_NOT_EMULATE>DO_NOT_EMULATE –

DEBUG_ENHANCEMENT module-attribute ¤

DEBUG_ENHANCEMENT = False
-

groups module-attribute ¤

groups = {v: _Qfor (k, v) in items() if startswith('CS_GRP_')}
-

ops module-attribute ¤

ops = {v: _Vfor (k, v) in items() if startswith('CS_OP_')}
-

access module-attribute ¤

access = {v: _8for (k, v) in items() if startswith('CS_AC_')}
+

groups module-attribute ¤

groups = {v: _rfor (k, v) in items() if startswith('CS_GRP_')}
+

ops module-attribute ¤

ops = {v: _Mfor (k, v) in items() if startswith('CS_OP_')}
+

access module-attribute ¤

access = {v: _Efor (k, v) in items() if startswith('CS_AC_')}
 

DO_NOT_EMULATE module-attribute ¤

DO_NOT_EMULATE = {CS_GRP_INT, CS_GRP_INVALID, CS_GRP_IRET}
 

DisassemblyAssistant ¤

DisassemblyAssistant(architecture: X86_MATH_INSTRUCTIONS

groups module-attribute ¤

groups = {v: _Ofor (k, v) in items() if startswith('X86_GRP_')}
-

ops module-attribute ¤

ops = {v: _Pfor (k, v) in items() if startswith('X86_OP_')}
-

regs module-attribute ¤

regs = {v: _Mfor (k, v) in items() if startswith('X86_REG_')}
-

access module-attribute ¤

access = {v: _efor (k, v) in items() if startswith('CS_AC_')}
+   (pwndbg.aglib.disasm.x86.X86_MATH_INSTRUCTIONS)" href=#pwndbg.aglib.disasm.x86.X86_MATH_INSTRUCTIONS>X86_MATH_INSTRUCTIONS

groups module-attribute ¤

groups = {v: _zfor (k, v) in items() if startswith('X86_GRP_')}
+

ops module-attribute ¤

ops = {v: _Dfor (k, v) in items() if startswith('X86_OP_')}
+

regs module-attribute ¤

regs = {v: _wfor (k, v) in items() if startswith('X86_REG_')}
+

access module-attribute ¤

access = {v: _jfor (k, v) in items() if startswith('CS_AC_')}
 

X86_MATH_INSTRUCTIONS module-attribute ¤

X86_MATH_INSTRUCTIONS = {
     X86_INS_ADD: "+",
     X86_INS_SUB: "-",
diff --git a/dev/reference/pwndbg/lib/abi/index.html b/dev/reference/pwndbg/lib/abi/index.html
index cc3621d45..66e8819d8 100644
--- a/dev/reference/pwndbg/lib/abi/index.html
+++ b/dev/reference/pwndbg/lib/abi/index.html
@@ -143,52 +143,52 @@
 
   
       module-attribute
-   (pwndbg.lib.abi.SIGRETURN_ABIS)" href=#pwndbg.lib.abi.SIGRETURN_ABIS>SIGRETURN_ABIS (dict[tuple[int, str, str], SigreturnABI]) – 

linux_i386 module-attribute ¤

linux_i386 = ABI([], 4, 0)
-

linux_amd64 module-attribute ¤

linux_amd64 = ABI(['rdi', 'rsi', 'rdx', 'rcx', 'r8', 'r9'], 8, 0)
-

linux_arm module-attribute ¤

linux_arm = ABI(['r0', 'r1', 'r2', 'r3'], 8, 0)
-

linux_aarch64 module-attribute ¤

linux_aarch64 = ABI(['x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'], 16, 0)
-

linux_mips module-attribute ¤

linux_mips = ABI(['$a0', '$a1', '$a2', '$a3'], 4, 0)
+   (pwndbg.lib.abi.SIGRETURN_ABIS)" href=#pwndbg.lib.abi.SIGRETURN_ABIS>SIGRETURN_ABIS (dict[tuple[int, str, str], SigreturnABI]) – 

linux_i386 module-attribute ¤

linux_i386 = ABI((), 4, 0)
+

linux_amd64 module-attribute ¤

linux_amd64 = ABI(('rdi', 'rsi', 'rdx', 'rcx', 'r8', 'r9'), 8, 0)
+

linux_arm module-attribute ¤

linux_arm = ABI(('r0', 'r1', 'r2', 'r3'), 8, 0)
+

linux_aarch64 module-attribute ¤

linux_aarch64 = ABI(('x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'), 16, 0)
+

linux_mips module-attribute ¤

linux_mips = ABI(('$a0', '$a1', '$a2', '$a3'), 4, 0)
 

linux_mips64 module-attribute ¤

linux_mips64 = ABI(
-    ["$a0", "$a1", "$a2", "$a3", "$a4", "$a5", "$a6", "$a7"], 8, 0
+    ("$a0", "$a1", "$a2", "$a3", "$a4", "$a5", "$a6", "$a7"), 8, 0
 )
-

linux_ppc module-attribute ¤

linux_ppc = ABI(['r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'], 4, 0)
-

linux_ppc64 module-attribute ¤

linux_ppc64 = ABI(['r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'], 8, 0)
-

linux_riscv32 module-attribute ¤

linux_riscv32 = ABI(['a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'], 4, 0)
-

linux_riscv64 module-attribute ¤

linux_riscv64 = ABI(['a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'], 8, 0)
+

linux_ppc module-attribute ¤

linux_ppc = ABI(('r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'), 4, 0)
+

linux_ppc64 module-attribute ¤

linux_ppc64 = ABI(('r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'), 8, 0)
+

linux_riscv32 module-attribute ¤

linux_riscv32 = ABI(('a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'), 4, 0)
+

linux_riscv64 module-attribute ¤

linux_riscv64 = ABI(('a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'), 8, 0)
 

linux_i386_syscall module-attribute ¤

linux_i386_syscall = SyscallABI(
-    ["eax", "ebx", "ecx", "edx", "esi", "edi", "ebp"], 4, 0
+    ("eax", "ebx", "ecx", "edx", "esi", "edi", "ebp"), 4, 0
 )
 

linux_amd64_syscall module-attribute ¤

linux_amd64_syscall = SyscallABI(
-    ["rax", "rdi", "rsi", "rdx", "r10", "r8", "r9"], 8, 0
+    ("rax", "rdi", "rsi", "rdx", "r10", "r8", "r9"), 8, 0
 )
 

linux_arm_syscall module-attribute ¤

linux_arm_syscall = SyscallABI(
-    ["r7", "r0", "r1", "r2", "r3", "r4", "r5", "r6"], 4, 0
+    ("r7", "r0", "r1", "r2", "r3", "r4", "r5", "r6"), 4, 0
 )
 

linux_aarch64_syscall module-attribute ¤

linux_aarch64_syscall = SyscallABI(
-    ["x8", "x0", "x1", "x2", "x3", "x4", "x5"], 16, 0
+    ("x8", "x0", "x1", "x2", "x3", "x4", "x5"), 16, 0
 )
-

linux_mips_syscall module-attribute ¤

linux_mips_syscall = SyscallABI(['$v0', '$a0', '$a1', '$a2', '$a3'], 4, 0)
+

linux_mips_syscall module-attribute ¤

linux_mips_syscall = SyscallABI(('$v0', '$a0', '$a1', '$a2', '$a3'), 4, 0)
 

linux_mips64_syscall module-attribute ¤

linux_mips64_syscall = SyscallABI(
-    ["$v0", "$a0", "$a1", "$a2", "$a3", "$a4", "$a5"], 4, 0
+    ("$v0", "$a0", "$a1", "$a2", "$a3", "$a4", "$a5"), 4, 0
 )
 

linux_ppc_syscall module-attribute ¤

linux_ppc_syscall = SyscallABI(
-    ["r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"], 4, 0
+    ("r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"), 4, 0
 )
 

linux_ppc64_syscall module-attribute ¤

linux_ppc64_syscall = SyscallABI(
-    ["r0", "r3", "r4", "r5", "r6", "r7", "r8"], 8, 0
+    ("r0", "r3", "r4", "r5", "r6", "r7", "r8"), 8, 0
 )
 

linux_riscv32_syscall module-attribute ¤

linux_riscv32_syscall = SyscallABI(
-    ["a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"], 4, 0
+    ("a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"), 4, 0
 )
 

linux_riscv64_syscall module-attribute ¤

linux_riscv64_syscall = SyscallABI(
-    ["a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"], 8, 0
+    ("a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"), 8, 0
 )
-

linux_i386_sigreturn module-attribute ¤

linux_i386_sigreturn = SigreturnABI(['eax'], 4, 0)
-

linux_amd64_sigreturn module-attribute ¤

linux_amd64_sigreturn = SigreturnABI(['rax'], 4, 0)
-

linux_arm_sigreturn module-attribute ¤

linux_arm_sigreturn = SigreturnABI(['r7'], 4, 0)
-

linux_i386_srop module-attribute ¤

linux_i386_srop = ABI(['eax'], 4, 0)
-

linux_amd64_srop module-attribute ¤

linux_amd64_srop = ABI(['rax'], 4, 0)
-

linux_arm_srop module-attribute ¤

linux_arm_srop = ABI(['r7'], 4, 0)
+

linux_i386_sigreturn module-attribute ¤

linux_i386_sigreturn = SigreturnABI(('eax',), 4, 0)
+

linux_amd64_sigreturn module-attribute ¤

linux_amd64_sigreturn = SigreturnABI(('rax',), 4, 0)
+

linux_arm_sigreturn module-attribute ¤

linux_arm_sigreturn = SigreturnABI(('r7',), 4, 0)
+

linux_i386_srop module-attribute ¤

linux_i386_srop = ABI(('eax',), 4, 0)
+

linux_amd64_srop module-attribute ¤

linux_amd64_srop = ABI(('rax',), 4, 0)
+

linux_arm_srop module-attribute ¤

linux_arm_srop = ABI(('r7',), 4, 0)
 

DEFAULT_ABIS module-attribute ¤

DEFAULT_ABIS: dict[tuple[int, str, str], ABI] = {
     (32, "i386", "linux"): linux_arm_sigreturn,
 }
-

ABI ¤

ABI(regs: list[str], align: int, minimum: int)
+

ABI ¤

ABI(regs: tuple[str, ...], align: int, minimum: int)
 

Encapsulates information about a calling convention.

Attributes:

returns class-attribute instance-attribute ¤

returns = True
-

register_arguments class-attribute instance-attribute ¤

register_arguments: list[str] = regs
+

register_arguments class-attribute instance-attribute ¤

register_arguments: tuple[str, ...] = regs
 

arg_alignment class-attribute instance-attribute ¤

arg_alignment = align
 

stack_minimum class-attribute instance-attribute ¤

stack_minimum = minimum
-

SyscallABI ¤

SyscallABI(register_arguments: list[str], *a: Any, **kw: Any)
+

SyscallABI ¤

SyscallABI(register_arguments: tuple[str, ...], *a: Any, **kw: Any)
 

Bases: ABI

The syscall ABI treats the syscall number as the zeroth argument, which must be loaded into the specified register.

Attributes:

syscall_register instance-attribute ¤

syscall_register = pop(0)
-

register_arguments class-attribute instance-attribute ¤

register_arguments: list[str] = regs
+   (pwndbg.lib.abi.SyscallABI.returns)" href=#pwndbg.lib.abi.SyscallABI.returns>returns

syscall_register instance-attribute ¤

syscall_register = register_arguments[0]
+

register_arguments class-attribute instance-attribute ¤

register_arguments: tuple[str, ...] = regs
 

arg_alignment class-attribute instance-attribute ¤

arg_alignment = align
 

stack_minimum class-attribute instance-attribute ¤

stack_minimum = minimum
 

returns class-attribute instance-attribute ¤

returns = True
-

SigreturnABI ¤

SigreturnABI(register_arguments: list[str], *a: Any, **kw: Any)
+

SigreturnABI ¤

SigreturnABI(register_arguments: tuple[str, ...], *a: Any, **kw: Any)
 

Bases: SyscallABI

The sigreturn ABI is similar to the syscall ABI, except that both PC and SP are loaded from the stack. Because of this, there is no 'return' slot necessary on the stack.

Attributes:

returns class-attribute instance-attribute ¤

returns = False
-

register_arguments class-attribute instance-attribute ¤

register_arguments: list[str] = regs
+

register_arguments class-attribute instance-attribute ¤

register_arguments: tuple[str, ...] = regs
 

arg_alignment class-attribute instance-attribute ¤

arg_alignment = align
 

stack_minimum class-attribute instance-attribute ¤

stack_minimum = minimum
-

syscall_register instance-attribute ¤

syscall_register = pop(0)
+

syscall_register instance-attribute ¤

syscall_register = register_arguments[0]
 
\ No newline at end of file diff --git a/dev/reference/pwndbg/lib/elftypes/index.html b/dev/reference/pwndbg/lib/elftypes/index.html index f87a7ab75..df744fe25 100644 --- a/dev/reference/pwndbg/lib/elftypes/index.html +++ b/dev/reference/pwndbg/lib/elftypes/index.html @@ -135,7 +135,7 @@ 47: "AT_L3_CACHEGEOMETRY", 51: "AT_MINSIGSTKSZ", } -

AT_CONSTANT_NAMES module-attribute ¤

AT_CONSTANT_NAMES = {v: _Efor (k, v) in items()}
+

AT_CONSTANT_NAMES module-attribute ¤

AT_CONSTANT_NAMES = {v: _Yfor (k, v) in items()}
 

constants ¤

Attributes: