Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

codescan.h

Go to the documentation of this file.
00001 /*
00002 PeRdr - PE file disassembler
00003 Copyright (C) 1999-2003 Frediano Ziglio
00004 -----
00005 
00006 This program is free software; you can redistribute it and/or modify
00007 it under the terms of the GNU General Public License as published by
00008 the Free Software Foundation; either version 2 of the License, or
00009 (at your option) any later version.
00010 
00011 This program is distributed in the hope that it will be useful,
00012 but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 GNU General Public License for more details.
00015 
00016 You should have received a copy of the GNU General Public License
00017 along with this program; if not, write to the Free Software
00018 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019 -----
00020 
00021 INFORMATION
00022   www: https://freddy77.tripod.com/perdr/
00023   e-mail: freddy77@angelfire.com
00024 */
00025 #ifndef FILE_CODESCAN_H
00026 #define FILE_CODESCAN_H
00027 
00028 class IMachineStatus
00029 {
00030 public:
00031   // quando il flusso si separa copia lo stato
00032   virtual IMachineStatus* Clone() const=0;
00033   virtual ~IMachineStatus() {};
00034 };
00035 
00036 class CodeParser;
00037 class IScanning
00038 {
00039 public:
00040   // crea uno stato adeguato per il flusso
00041   virtual IMachineStatus* CreateMachineStatus() const =0;
00042   // processa istruzione. Ritorna false se si deve fermare il processo
00043   virtual bool ProcessInstruction(vma_t address,const Instruction& instr,
00044                                   IMachineStatus* status,CodeParser& codeInfo)=0;
00045   virtual ~IScanning() {};
00046 };
00047 
00048 bool ExecuteComplexReference(vma_t address);
00049 
00050 #endif //FILE_CODESCAN_H

Generated on Mon Jan 13 22:20:34 2003 for perdr by doxygen1.2.15