recon Package

recon Package

The recon subsystem for monitoring well known library calls and identifying dangerous calling mechanisms.

NOTE: This subsystem pretty much assumes some intel-like conventions...

Recon Format Chars:
A - A NULL terminated ascii string W - A NULL terminated utf-16le string P - A platform width pointer I - An integer (32 bits for now...)
class vdb.recon.ReconBreak(symname, reconfmt)[source]

Bases: vtrace.breakpoints.Breakpoint

getName()[source]
notify(event, trace)[source]
vdb.recon.addReconBreak(trace, symname, reconfmt)[source]
vdb.recon.clearReconHits(trace)[source]

Clear the current list of recon hits.

vdb.recon.getReconHits(trace)[source]

Get the list of recon “hits” entries. Each hit entry is a tuple of (threadid, savedeip, symname, argtup, argreprtup).

vdb.recon.reprargs(trace, fmt, args)[source]

dopestack Module

A quick set of tools for doing stack doping.

class vdb.recon.dopestack.ThreadDopeNotifier[source]

Bases: vtrace.notifiers.Notifier

notify(event, trace)[source]
vdb.recon.dopestack.disableEventDoping(trace)[source]
vdb.recon.dopestack.dopeAllThreadStacks(trace)[source]

Apply stack doping to all thread stacks.

vdb.recon.dopestack.dopeThreadStack(trace, threadid)[source]
vdb.recon.dopestack.enableEventDoping(trace)[source]

sniper Module

Specialized breakpoints which identify dangerous calling mechanisms and tag them.

class vdb.recon.sniper.SniperArgValueBreak(symname, argidx, argval)[source]

Bases: vtrace.breakpoints.Breakpoint

A breakpoint for monitoring an API for being called with a particular value.

class vdb.recon.sniper.SniperDynArgBreak(symname, argidx)[source]

Bases: vtrace.breakpoints.Breakpoint

A breakpoint for use in determining if an API was called with a dynamic pointer.

getName()[source]
notify(event, trace)[source]
vdb.recon.sniper.getStackArg(trace, argidx)[source]

Assuming we are at the instruction after a call, grab the stack argument at the specified index (skipping the saved instruction pointer).

vdb.recon.sniper.snipeDynArg(trace, symname, argidx)[source]

Construct a SnyperDynArgBreak and snap it in.

Table Of Contents

This Page