#include <list>
#include <stack>
#include "x86dasm.h"
#include "symbols.h"
#include "module.h"
#include "utils/range.hpp"
#include "utils/fixvect.hpp"
#include "utils/f77auto_ptr"
#include "code.h"
#include "codescan.h"
#include "byteinfo.h"
#include "references.h"
Go to the source code of this file.
Compounds | |
struct | BitStat |
class | CodeInfo |
class | CodeParser |
struct | PointerArrayStat |
struct | TempReference |
Defines | |
#define | FOR_EACH_SECTION_CODE_BEGIN(module, iter) |
#define | FOR_EACH_SECTION_CODE_END(module, iter) |
#define | FOR_EACH_SECTION_BEGIN(module, iter) FOR_EACH_CONST_BEGIN(ObjectModule::TSections,module->GetSections(),iter) |
#define | FOR_EACH_SECTION_END(module, iter) FOR_EACH_CONST_END(ObjectModule::TSections,module->GetSections(),iter) |
Typedefs | |
typedef std::stack< TempReference, std::list< TempReference > > | TTempRefs |
typedef std::set< vma_t, std::less< vma_t > > | TAddresses |
typedef std::map< vma_t, vma_t, std::less< vma_t > > | TApiAlias |
typedef std::map< vma_t, vma_t, std::less< vma_t > > | TApiCalls |
typedef std::set< vma_t, std::less< vma_t > > | TTempComplexReference |
Functions | |
template<class C, class Item> bool | IsPresent (const C &c, const Item &item) |
void | WriteInstruction (const Instruction &instruction, FILE *file=stdout) |
int | GetInstruction (ObjectModule &module, vma_t address, Instruction &instruction) |
bool | IsNullAddress (vma_t address) |
void | ParseCode (CSignFile &file, uint32_t imageBase, vma_t entryPoint, const RVAFileTranslator &rva, const Symbols &symbols, const Symbols &exportedSymbols) |
|
Definition at line 74 of file codeglob.h. |
|
Value: FOR_EACH_CONST_BEGIN(ObjectModule::TSections,module->GetSections(),iter) \ if ((*iter).IsCode()) { Definition at line 67 of file codeglob.h. Referenced by CodeParser::Parse(), THeuristicMotor::THeuristicMotor(), and CodeParser::WriteCode(). |
|
Value: } \ FOR_EACH_CONST_END(ObjectModule::TSections,module->GetSections(),iter) Definition at line 70 of file codeglob.h. Referenced by CodeParser::Parse(), THeuristicMotor::THeuristicMotor(), and CodeParser::WriteCode(). |
|
Definition at line 76 of file codeglob.h. |
|
Definition at line 54 of file codeglob.h. Referenced by CodeParser::CheckCodeRecursively(). |
|
Definition at line 55 of file codeglob.h. |
|
Definition at line 57 of file codeglob.h. |
|
Definition at line 58 of file codeglob.h. |
|
Definition at line 53 of file codeglob.h. Referenced by CodeParser::Parse(). |
|
Definition at line 634 of file code.cpp. References InstructionDecoder::Decode(), ObjectModule::GetDataReader(), ObjectModule::GetRelocationInfos(), and vma_t. Referenced by CodeParser::_ReverseScan(), CodeParser::ExecuteComplexReference(), CodeParser::ExecuteComplexReferenceMemory(), CodeParser::Parse(), ScanningComplexReg::ProcessInstruction(), and THeuristicMotor::THeuristicMotor().
00635 { 00636 // legge l'istruzione 00637 InstructionDecoder decoder(module.GetRelocationInfos()); 00638 ObjectModule::DataReader reader = module.GetDataReader(address); 00639 return decoder.Decode(instruction,reader); 00640 } |
|
Definition at line 80 of file codeglob.h. References vma_t. Referenced by CodeParser::ExecuteComplexReferenceMemory(), CodeParser::GetPointerArrayStats(), CodeParser::Parse(), and ScanningComplexReg::ProcessInstruction().
00081 { return address == 0; } |
|
Definition at line 42 of file codeglob.h. Referenced by CodeParser::CheckJumpReference(), and ScanningComplexReg::CheckLoop().
00043 { 00044 return ( c.find(item) != c.end() ); 00045 } |
|
Referenced by main(). |
|
Definition at line 52 of file code.cpp. References Instruction::Write(). Referenced by CodeParser::AddTempFlow(), CodeParser::ScanCode(), and CodeParser::WriteCode().
00053 { 00054 char buffer[80]; 00055 instruction.Write(buffer); 00056 fprintf(file,"%s\n",buffer); 00057 } |