extensions Package

extensions Package

vdb.extensions.loadExtensions(vdb, trace)[source]

Actually load all known extensions here.

amd64 Module

vdb.extensions.amd64.vdbExtension(vdb, trace)[source]

android Module

vdb.extensions.android.adb(db, line)[source]

Pass a command directly to the adb bridge command. (mostly just so you don’t need another prompt)

Usage adb <adb args>

vdb.extensions.android.vdbExtension(db, trace)[source]

arm Module

darwin Module

vdb.extensions.darwin.einfo(db, line)[source]
vdb.extensions.darwin.vdbExtension(vdb, trace)[source]

gdbstub Module

class vdb.extensions.gdbstub.GdbStubNotifier(db)[source]

Bases: vtrace.notifiers.Notifier

notify(event, trace)[source]
vdb.extensions.gdbstub.armcore(db, line)[source]

Show / set the ‘mode’ of the arm core between arm and thumb.

Usage: armcore [arm|thumb]

vdb.extensions.gdbstub.eprocess(db, line)[source]

Display information about the currently stopped eprocess.

Usage: eprocess #FIXME support listing #FIXME support eprocess interp address

vdb.extensions.gdbstub.ethread(db, line)[source]

Display information about the currently stopped ethread.

Usage: ethread #FIXME support listing them #FIXME support ethread interp arbitrary address

vdb.extensions.gdbstub.gdbmon(db, line)[source]

Issue a gdb “monitor” command which allows access to the extensions inside the gdb stub.

Example: gdbmon r fs

(try: “gdbmon help” for info on supported commands in the target stub)

vdb.extensions.gdbstub.kpcr(db, line)[source]

Show the kpcr structure for the currently stopped kernel.

Usage: kpcr

vdb.extensions.gdbstub.vdbExtension(db, trace)[source]

i386 Module

vdb.extensions.i386.eflags(vdb, line)[source]

Show the status of the eflags register bits.

Usage: eflags

vdb.extensions.i386.vdbExtension(vdb, trace)[source]

i486 Module

i586 Module

i686 Module

windows Module

vdb.extensions.windows.aslr(vdb, line)[source]

Determine which PE’s in the current process address space support Vista’s ASLR implementation by the presence of the IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE (0x0040) bit in the DllCharacteristics field of the PE header.

Usage: aslr [libname]

vdb.extensions.windows.bindiff(mem1, mem2)[source]
vdb.extensions.windows.deaslr(vdb, line)[source]

Rebase the specified address expression as though the origin library had gotten it’s suggested base address rather than being ASLR’d.

Usage: deaslr <addr_expr>

vdb.extensions.windows.einfo(vdb, line)[source]

Show all the current exception information.

-P Toggle the “PendingSignal” meta key which controls delivery (or handling) of the current exception.

Usage: einfo [options]

vdb.extensions.windows.gflags(vdb, line)[source]

Support a subset of gflags like behavior on windows. This enables features exclusively by direct process manipulation and does NOT set any registry settings or persist across processes...

Usage: gflags [toggle_type]

NOTE: Most of these options require symbols!

vdb.extensions.windows.heaps(vdb, line)[source]

Show Win32 Heap Information.

Usage: heaps [-F <heapaddr>] [-C <address>] [-L <segmentaddr>] -F <heapaddr> print the freelist for the heap -C <address> Find and print the heap chunk containing <address> -S <segmentaddr> Print the chunks for the given heap segment -L <heapaddr> Print the look aside list for the given heap -V Validate the heaps (check next/prev sizes and free list) -l <heapaddr> Leak detection (list probable leaked chunks) -U <heapaddr> Show un-commited ranges for the specified heap (no options lists heaps and segments)

vdb.extensions.windows.hookiat(db, line)[source]

Hook the specified IAT entries by munging a pointer and emulating “breakpoint” like behavior on the resultant memory access errors. Basically, break on import call...

Usage: hookiat <libname> [ <implibname> [ <impfuncname> ] ]

Example:
hookiat calc hookiat calc kernel32 hookiat calc kernel32 LoadLibraryA

NOTE: Once added, you may use “bp” and commands like “bpedit” to modify, remove, or add code to “iat hooks”

vdb.extensions.windows.hooks(vdb, line)[source]

Check the executable regions of the target process for any hooks by comparing against the PE on disk. This will account for relocations and import entries.

vdb.extensions.windows.injectso(vdb, line)[source]

Inject a shared object (DLL) into the target process.

Usage: injectso <dllname>

vdb.extensions.windows.jit(vdb, line)[source]

Enable/Disable the current VDB location as the current Just-In-Time debugger for windows applications.

Usage: jitenable [-D] -E Enable VDB JIT debugging -D Disable JIT debugging

vdb.extensions.windows.pagewatch(vdb, line)[source]

Enable write access watching on a given memory page. This works by setting the page to read-only and then specially handling the access violations as though they were hardware Watchpoints.

Usage: pagewatch [options] [<addr_expression>] -C - Clear the current pagewatch log -F - Toggle auto-continue behavior (run and record vs. stop on hit) -L - List the current hits from the pagewatch log -M - Add page watches to the entire memory map from addr_expression -R - Use to enable read watching while adding a page watch -S <addr> - Show touches to the specified address -P <addr> - Show memory touched by specifed program counter (eip) -u - When listing, show only unique entries

vdb.extensions.windows.pe(vdb, line)[source]

Show extended info about loaded PE binaries.

Usage: pe [opts] [<libname>...] -I Show PE import files. -m Toggle inmem/ondisk behavior (directly mapped DLLs) -N Show full NT header -t Show PE timestamp information -E Show PE exports -S Show PE sections -v Show FileVersion from VS_VERSIONINFO -V Show all keys from VS_VERSIONINFO

NOTE: “libname” may be a vtrace expression:

Examples:

# Show the imports from a PE loaded at 0x777c0000 pe -I 0x777c0000

# Show the exports from advapi32.dll pe -E advapi32

# Show the build timestamp of the PE pointed to by a register pe -t esi+10

vdb.extensions.windows.peb(vdb, line)[source]

Print the PEB

Usage: peb

vdb.extensions.windows.regkeys(vdb, line)[source]

Show all the registry keys the target process currently has open.

Usage: regkeys

vdb.extensions.windows.safeseh(vdb, line)[source]

Show the SafeSEH status of all the loaded DLLs or list the handlers for a particular dll by normalized name.

Usage: safeseh [libname]

vdb.extensions.windows.seh(vdb, line)[source]

Walk and print the SEH chain for the current (or specified) thread.

Usage: seh [threadid]

vdb.extensions.windows.showaslr(vdb, base, libname)[source]
vdb.extensions.windows.stealth(vdb, line)[source]

Enable basic debugger stealth. This has the following effects:

Change PEB to show BeingDebugged == 0 Special breakpoint on CheckRemoteDebuggerPresent

WARNING: break/sendBreak() behave VERY strange with this because the kernel aparently doesn’t think he needs to post the exception to the debugger?

vdb.extensions.windows.stepb(vdb, line)[source]

Use the extended intel hardware support to step to the next branch target.

Usage: stepb

NOTE: This will not work inside VMware / VirtualBox. Other hypervisors
may vary... (it will simply single step)
vdb.extensions.windows.svclist(vdb, line)[source]

List the running service names and pids.

Usage: svclist

vdb.extensions.windows.sympath(vdb, line)[source]

Set the symbol path for the tracer. This will currently only effect subsequent library loads!

Usage: sympath <new_path>

vdb.extensions.windows.teb(vdb, line)[source]

Print out the TEB for the current or specified thread.

Usage: teb [threadid]

vdb.extensions.windows.uac(db, line)[source]

Display the current UAC status of the target process. (User Account Control)

Usage: uac

vdb.extensions.windows.validate_heaps(db)[source]

A simple routine that works like the built in windows heap checkers to show where blocks and/or freelist is potentially dorked.

vdb.extensions.windows.vdbExtension(db, trace)[source]