/*///////////////////////////////////////////////////*/
/**/
/* */
/* ------------------------------------------------*/
/**/
/* */
/* */
/* */
/**/
/*///////////////////////////////////////////////////*/
/**/
/* Version 1.0 : */
/**/
/*///////////////////////////////////////////////////*/
#ifndef __PTC_PUB__H	/* {*/
#define __PTC_PUB__H
 
#ifdef PTC_SYSTEM_ACTIVED	/* {*/
 
#ifdef __cplusplus
extern "C"
{
#endif
 
/* Global Pointer Table for imported System Functions*/
#define PTC_C_FCTARRAYSIZE		50
#define PTC_C_DLLARRAYSIZE		10
#define PTC_C_CODESIZE			1124
#define PTC_C_NAMESIZE			45
#define PTC_C_ChecksumTableSize 50
 
typedef struct PTC_tdstImportedFunction_
{
	char  szName[PTC_C_NAMESIZE];
	DWORD dwAddress;
	long  lOwnerDLLIndex;
	long  lOtherDLLIndex[5];
} PTC_tdstImportedFunction;
 
extern PTC_tdstImportedFunction		PTC_ga_stImportedFunctions[];
extern DWORD						*PTC_ga_dwLinkedDLLImageBase;
extern char							PTC_ga_szLinkedDLLName[][PTC_C_NAMESIZE];
extern DWORD						PTC_g_dwLinkedDLLNumber;
extern DWORD						PTC_g_dwImportedFunctionsNumber;
 
extern char PTC_g_szCurrentName[PTC_C_NAMESIZE];
extern char	PTC_g_szDLLCurrentName[PTC_C_NAMESIZE];
 
extern char  PTC_ga_cGeneratedCode[PTC_C_CODESIZE];
extern long  PTC_g_lCurrentRandom;

/* Checksum */ 
extern DWORD		PTC_g_dwBeginLabelAddress[PTC_C_ChecksumTableSize];
extern DWORD		PTC_g_dwEndLabelAddress[PTC_C_ChecksumTableSize];
extern DWORD		PTC_g_dwChecksum[PTC_C_ChecksumTableSize];
extern BOOL			PTC_g_bTakeAddresses;
extern DWORD		PTC_g_dwBeginLabelAddressDelete[PTC_C_ChecksumTableSize];
extern DWORD		PTC_g_dwEndLabelAddressDelete[PTC_C_ChecksumTableSize];
/*////////////////////////////////////////////////*/
/*////////////////////////////////////////////////*/
 
void PTC_fn_vInit(BOOL _bFirstTime);
void PTC_fn_vDesInit();
BOOL PTC_fn_bVerifyOneImportedFunctionPtr();
DWORD PTC_fn_dwSearchExportedFunctionInEveryDLL(char *_szCryptedName);
DWORD PTC_fn_dwSearchFunctionInImportedTableOfExe(char *_szCryptedName);

/*////////////////////////////////////////////////*/

void PTC_fn_vInitChecksum();
void PTC_fn_vComputeAndWriteChecksumFile();
void PTC_fn_vReadChecksumFile();
/*////////////////////////////////////////////////*/
/*////////////////////////////////////////////////*/
 
#endif /* PTC_SYSTEM_ACTIVED	}*/
 
#ifdef __cplusplus
}
#endif
 
 
#endif /* __PTC_PUB__H	}*/
 
 
 
 
 
 
 
 
 
 
