2007-01-13 23:26:32 +00:00
|
|
|
|
2007-01-17 15:02:43 +00:00
|
|
|
#ifndef __ANY_OP_H__
|
|
|
|
#define __ANY_OP_H__
|
2007-01-13 23:26:32 +00:00
|
|
|
|
|
|
|
#define OP_ANY_mov 0x00000000
|
2007-01-14 12:10:53 +00:00
|
|
|
#define OP_ANY_ret 0x00000001
|
2007-01-13 23:26:32 +00:00
|
|
|
|
|
|
|
typedef struct _BrainAnalys
|
|
|
|
{
|
|
|
|
CPU_UNINT op; /* one tranlator for any cpu type set our own opcode */
|
2007-01-14 18:01:56 +00:00
|
|
|
CPU_INT type; /* 1 = source are memmory, 2 source are register */
|
|
|
|
/* 4 = dest are memmory, 8 dest are register */
|
|
|
|
/* 16 = source are imm */
|
2007-01-14 10:57:18 +00:00
|
|
|
|
2007-01-13 23:26:32 +00:00
|
|
|
CPU_INT src_size; /* who many bits are src not vaild for reg*/
|
|
|
|
CPU_INT dst_size; /* who many bits are dst not vaild for reg*/
|
|
|
|
|
|
|
|
CPU_UNINT64 src;
|
|
|
|
CPU_UNINT64 dst;
|
|
|
|
|
2007-01-14 10:57:18 +00:00
|
|
|
CPU_UNINT memAdr; /* where are we in the current memory pos + baseaddress */
|
|
|
|
|
2007-01-17 15:02:43 +00:00
|
|
|
CPU_INT row; /* 0 = no row,
|
|
|
|
* 1 = row is bcc (conditions),
|
|
|
|
* 2 = row is jsr (Call)
|
|
|
|
*/
|
|
|
|
|
2007-01-13 23:26:32 +00:00
|
|
|
/* try translate the Adress to a name */
|
|
|
|
CPU_BYTE* ptr_next; /* hook next one */
|
|
|
|
CPU_BYTE* ptr_prev; /* hook previus one */
|
|
|
|
} MYBrainAnalys, *PMYBrainAnalys;
|
|
|
|
|
2007-01-14 18:01:56 +00:00
|
|
|
extern PMYBrainAnalys pMyBrainAnalys; /* current working address */
|
|
|
|
extern PMYBrainAnalys pStartMyBrainAnalys; /* start address */
|
2007-01-17 15:02:43 +00:00
|
|
|
|
|
|
|
CPU_INT ConvertToIntelProcess( FILE *outfp, CPU_INT eax, CPU_INT ebp,
|
|
|
|
CPU_INT edx, CPU_INT esp,
|
|
|
|
PMYBrainAnalys pMystart,
|
|
|
|
PMYBrainAnalys pMyend, CPU_INT regbits,
|
|
|
|
CPU_INT HowManyRegInUse);
|
|
|
|
|
|
|
|
#endif
|