diff --git a/dev/feed_json_updated.json b/dev/feed_json_updated.json index 8a79b2e4b..dad47cd83 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-06-05T19:27:50+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-06-05T22:10:33+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 3ff42728f..f1a6f02a2 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 Thu, 05 Jun 2025 19:32:42 -0000 Thu, 05 Jun 2025 19:32:42 -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 Thu, 05 Jun 2025 22:21:11 -0000 Thu, 05 Jun 2025 22:21:11 -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 41ee25a3e..2ad318afd 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 Thu, 05 Jun 2025 19:32:42 -0000 Thu, 05 Jun 2025 19:32:42 -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/ Thu, 05 Jun 2025 19:27:50 +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 Thu, 05 Jun 2025 22:21:11 -0000 Thu, 05 Jun 2025 22:21:11 -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/ Thu, 05 Jun 2025 22:10:33 +0000pwndbg Bloghttps://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/ \ No newline at end of file diff --git a/dev/objects.inv b/dev/objects.inv index 78dd5e2e1..396aa29d3 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ diff --git a/dev/reference/pwndbg/aglib/disasm/arch/index.html b/dev/reference/pwndbg/aglib/disasm/arch/index.html index a480753b7..e5a7648ff 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: _Yfor (k, v) in items() if startswith('CS_GRP_')}
-

ops module-attribute ¤

ops = {v: _jfor (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: _Efor (k, v) in items() if startswith('CS_GRP_')}
+

ops module-attribute ¤

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

access module-attribute ¤

access = {v: _3for (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: _kfor (k, v) in items() if startswith('X86_GRP_')}
-

ops module-attribute ¤

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

regs module-attribute ¤

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

access module-attribute ¤

access = {v: _Tfor (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: _2for (k, v) in items() if startswith('X86_GRP_')}
+

ops module-attribute ¤

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

regs module-attribute ¤

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

access module-attribute ¤

access = {v: _ofor (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/aglib/kernel/paging/index.html b/dev/reference/pwndbg/aglib/kernel/paging/index.html
index 144aaf15b..0b2acef00 100644
--- a/dev/reference/pwndbg/aglib/kernel/paging/index.html
+++ b/dev/reference/pwndbg/aglib/kernel/paging/index.html
@@ -1,4 +1,4 @@
- pwndbg.aglib.kernel.paging - Documentation      

paging ¤

Functions:

Attributes:

\ No newline at end of file diff --git a/dev/reference/pwndbg/aglib/kernel/vmmap/index.html b/dev/reference/pwndbg/aglib/kernel/vmmap/index.html index d742d1ae7..3ffbc84c1 100644 --- a/dev/reference/pwndbg/aglib/kernel/vmmap/index.html +++ b/dev/reference/pwndbg/aglib/kernel/vmmap/index.html @@ -1,4 +1,4 @@ - pwndbg.aglib.kernel.vmmap - Documentation

vmmap ¤

Classes:

Functions:

Attributes:

QemuMachine ¤

QemuMachine()
+

KernelVmmap ¤

KernelVmmap(pages: tuple[Page, ...])
+

Methods:

Attributes:

USERLAND class-attribute instance-attribute ¤

USERLAND = 'userland'
+

KERNELLAND class-attribute instance-attribute ¤

KERNELLAND = 'kernel [.text]'
+

KERNELRO class-attribute instance-attribute ¤

KERNELRO = 'kernel [.rodata]'
+

KERNELBSS class-attribute instance-attribute ¤

KERNELBSS = 'kernel [.bss]'
+

KERNELDRIVER class-attribute instance-attribute ¤

KERNELDRIVER = 'kernel [.driver .bpf]'
+

ESPSTACK class-attribute instance-attribute ¤

ESPSTACK = '%esp fixup'
+

pages instance-attribute ¤

pages = pages
+

sections instance-attribute ¤

sections = None
+

kbase instance-attribute ¤

kbase = find_kbase(pages)
+

get_name ¤

get_name(addr: int) -> str
+

adjust ¤

adjust()
+

handle_user_pages ¤

handle_user_pages(user_idx)
+

handle_kernel_pages ¤

handle_kernel_pages(kernel_idx)
+

handle_offsets ¤

handle_offsets()
+

QemuMachine ¤

QemuMachine()
 

Bases: Machine

Methods:

read_register ¤

read_register(register_name: str) -> int
 

kernel_vmmap_via_page_tables ¤

kernel_vmmap_via_page_tables() -> tuple[Page, ...]
 

kernel_vmmap_via_monitor_info_mem ¤

kernel_vmmap_via_monitor_info_mem() -> tuple[Page, ...]
-

Returns Linux memory maps information by parsing monitor info mem output from QEMU kernel GDB stub. Works only on X86/X64/RISC-V as this is what QEMU supports.

Consider using the kernel_vmmap_via_page_tables method as it is probably more reliable/better.

See also: !685 (TODO: revisit with future QEMU versions)

Example output from the command:¤

pwndbg> monitor info mem¤

ffff903580000000-ffff903580099000 0000000000099000 -rw¤

ffff903580099000-ffff90358009b000 0000000000002000 -r-¤

ffff90358009b000-ffff903582200000 0000000002165000 -rw¤

ffff903582200000-ffff903582803000 0000000000603000 -r-¤

kernel_vmmap ¤

kernel_vmmap() -> tuple[Page, ...]
+

Returns Linux memory maps information by parsing monitor info mem output from QEMU kernel GDB stub. Works only on X86/X64/RISC-V as this is what QEMU supports.

Consider using the kernel_vmmap_via_page_tables method as it is probably more reliable/better.

See also: !685 (TODO: revisit with future QEMU versions)

Example output from the command:¤

pwndbg> monitor info mem¤

ffff903580000000-ffff903580099000 0000000000099000 -rw¤

ffff903580099000-ffff90358009b000 0000000000002000 -r-¤

ffff90358009b000-ffff903582200000 0000000002165000 -rw¤

ffff903582200000-ffff903582803000 0000000000603000 -r-¤

kernel_vmmap ¤

kernel_vmmap(process_pages=True) -> tuple[Page, ...]
 
\ 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 cb8bd1643..5ef362b72 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: _3for (k, v) in items()}
+

AT_CONSTANT_NAMES module-attribute ¤

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

constants ¤

Attributes: