|
decompiler 1.0.0
|
A user defined p-code op for assisting the recovery of jump tables. More...
#include <userop.hh>
Public Member Functions | |
| JumpAssistOp (Architecture *g) | |
| Constructor. More... | |
| int4 | getIndex2Case (void) const |
| Get the injection id for index2case. | |
| int4 | getIndex2Addr (void) const |
| Get the injection id for index2addr. | |
| int4 | getDefaultAddr (void) const |
| Get the injection id for defaultaddr. | |
| int4 | getCalcSize (void) const |
| Get the injection id for calcsize. | |
| virtual void | decode (Decoder &decoder) |
| Restore the detailed description from a stream element. More... | |
Public Member Functions inherited from UserPcodeOp | |
| UserPcodeOp (Architecture *g, const string &nm, int4 ind) | |
| Construct from name and index. | |
| const string & | getName (void) const |
| Get the low-level name of the p-code op. | |
| int4 | getIndex (void) const |
| Get the constant id of the op. | |
| uint4 | getDisplay (void) const |
| Get display type (0=functional) | |
| virtual | ~UserPcodeOp (void) |
| Destructor. | |
| virtual string | getOperatorName (const PcodeOp *op) const |
| Get the symbol representing this operation in decompiled code. More... | |
| virtual int4 | extractAnnotationSize (const Varnode *vn, const PcodeOp *op) |
| Assign a size to an annotation input to this userop. More... | |
| virtual void | decode (Decoder &decoder)=0 |
| Restore the detailed description from a stream element. More... | |
Additional Inherited Members | |
Public Types inherited from UserPcodeOp | |
| enum | userop_flags { annotation_assignment = 1 , no_operator = 2 } |
Protected Attributes inherited from UserPcodeOp | |
| string | name |
| Low-level name of p-code operator. | |
| int4 | useropindex |
| Index passed in the CALLOTHER op. | |
| Architecture * | glb |
| Architecture owning the user defined op. | |
| uint4 | flags |
| Boolean attributes of the CALLOTHER. | |
A user defined p-code op for assisting the recovery of jump tables.
An instance of this class refers to p-code script(s) that describe how to parse the jump table from the load image. Possible scripts include:
This class stores injection ids. The scripts themselves are managed by PcodeInjectLibrary.
| JumpAssistOp::JumpAssistOp | ( | Architecture * | g | ) |
Constructor.
| g | is the Architecture owning this set of jump assist scripts |
References calcsize, defaultaddr, index2addr, and index2case.
|
virtual |
Restore the detailed description from a stream element.
The details of how a user defined operation behaves are parsed from the element.
| decoder | is the stream decoder |
Implements UserPcodeOp.
References calcsize, Decoder::closeElement(), PcodeInjectLibrary::decodeInject(), defaultaddr, ELEM_ADDR_PCODE, ELEM_CASE_PCODE, ELEM_DEFAULT_PCODE, ELEM_JUMPASSIST, ELEM_SIZE_PCODE, InjectPayload::EXECUTABLEPCODE_TYPE, UserPcodeOp::getIndex(), UserOpManage::getOp(), UserPcodeOp::glb, index2addr, index2case, UserPcodeOp::name, Decoder::openElement(), Architecture::pcodeinjectlib, Decoder::peekElement(), Decoder::readString(), UserPcodeOp::useropindex, and Architecture::userops.
Referenced by UserOpManage::decodeJumpAssist().