diff --git a/dev/feed_json_updated.json b/dev/feed_json_updated.json index 9a6c378bd..8a79b2e4b 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-05T13:12:11+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-05T19:27:50+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 2ffdbddbd..3ff42728f 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 13:16:37 -0000 Thu, 05 Jun 2025 13:16: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 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 diff --git a/dev/feed_rss_updated.xml b/dev/feed_rss_updated.xml index 37984ffba..41ee25a3e 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 13:16:37 -0000 Thu, 05 Jun 2025 13:16: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/ Thu, 05 Jun 2025 13:12:11 +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 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 diff --git a/dev/objects.inv b/dev/objects.inv index cdaf039a4..78dd5e2e1 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 48869c502..a480753b7 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: _Gfor (k, v) in items() if startswith('CS_GRP_')}
-

ops module-attribute ¤

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

access module-attribute ¤

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

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_')}
 

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: _mfor (k, v) in items() if startswith('X86_GRP_')}
-

ops module-attribute ¤

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

regs module-attribute ¤

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

access module-attribute ¤

access = {v: _Yfor (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: _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_')}
 

X86_MATH_INSTRUCTIONS module-attribute ¤

X86_MATH_INSTRUCTIONS = {
     X86_INS_ADD: "+",
     X86_INS_SUB: "-",
diff --git a/dev/reference/pwndbg/aglib/kernel/vmmap/index.html b/dev/reference/pwndbg/aglib/kernel/vmmap/index.html
index 3ffbc84c1..d742d1ae7 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:

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()
+

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(process_pages=True) -> 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, ...]
 
\ 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 bae2d4e42..cb8bd1643 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: _vfor (k, v) in items()}
+

AT_CONSTANT_NAMES module-attribute ¤

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

constants ¤

Attributes: