code injection을 진행하다보니, 해당 함수를 많이 사용하게되는데 이를 macro함수로 구현하게 되면 API호출을 줄일 수 있습니다.
assembly를 사용하여 구현이 가능하지만, 이는 환경에 영향을 받기 때문에 macro함수로 구현하였습니다
call이 제한된 상황에서 유용하게 사용 할 수 있습니다.
어떤 운영체제에서도 동일한 작동을 보장 받을 수 있는 함수가 필요하였습니다.
#ifndef _MEMIO_H
#define _MEMIO_H
#define TEMP(n) TEMP ## n
#define MEMCOPY(Destination, Source, Size) \
do \
{ \
int LINE = __LINE__; \
int TEMP(LINE) = 0; \
for(; TEMP(LINE) != Size; TEMP(LINE)++) \
{ \
((unsigned char *)Destination)[TEMP(LINE)] = ((unsigned char *)Source)[TEMP(LINE)]; \
} \
} while(0);
#define MEMSET(Destination, Source, Size) \
do \
{ \
int LINE = __LINE__; \
int TEMP(LINE) = 0; \
for(; TEMP(LINE) != Size; TEMP(LINE)++) \
{ \
((unsigned char *)Destination)[TEMP(LINE)] = Source \
} \
} while(0);
#endif
Team H4C 서우혁