#include "stdafx.h" #include #include #define BREAK_EIP(checkEip) (obp+0x00401000>=checkEip) void ObpPlus( int step ) { extern int obp; obp += step; // —áFepi=0x00401999 if( BREAK_EIP(0x00433FD7) ) { int test=0; } } void NativeCode::PutUserProcSchedule( const UserProc *pUserProc, bool isCall ) { pUserProc->Using(); Schedule schedule( pUserProc, size ); if( isCall == false ) { schedule.SpecifyAddressOf(); } schedules.push_back( schedule ); *((long *)(codeBuffer+size))=0; size += sizeof(long); // –¢Š®¬ if( isCall ) { pobj_SubAddrSchedule->add(pUserProc,1); } else { pobj_SubAddrSchedule->add(pUserProc,0); } extern char *OpBuffer; extern int obp; *((long *)(OpBuffer+obp))=0; ObpPlus( sizeof(long) ); } void NativeCode::PutDllProcSchedule( const DllProc *pDllProc ) { pDllProc->Using(); schedules.push_back( Schedule( pDllProc, size ) ); *((long *)(codeBuffer+size))=0; size += sizeof(long); // –¢Š®¬ pobj_ImportAddrSchedule->add(pDllProc); extern char *OpBuffer; extern int obp; *((long *)(OpBuffer+obp))=0; ObpPlus( sizeof(long) ); }