배열의 초기화는 델파이의 불편한 것 중 하나입니다.
const 절에서
asd1 : Array [0..4] of Byte = (asd[1],asd[2],asd[3]);
같이 할 수 없습니다. 변수가 아닌 상수값을 넣어야 합니다.
즉
asd1[0] := asd[1];
와 같이 할당해야 합니다.
또한 asd: array of Byte 배열의 포인터는 @asd[0] 와 같이 합니다.
핵터 님이 쓰신 글 :
: BYTE asd[4],asde[4];
: pModuleHandle = GetProcAddress(LoadLibraryA("kernel32.dll"), "GetModuleHandleA");
: pSleep = GetProcAddress(LoadLibraryA("kernel32.dll"), "Sleep");
: memcpy((void*)asd, &pModuleHandle, sizeof(pModuleHandle));
: memcpy((void*)asde, &pSleep, sizeof(pSleep));
: BYTE g_InjectionCode[100] = {asd[0], asd[1], asd[2], asd[3], asde[1], asde[2], asde[3]};
:
:
:
: 이걸 델파이로 바꾸는데
:
:
:
: asd,asde : Array [0..3] of Byte;
: const
: asd1 : Array [0..4] of Byte = (asd[1],asd[2],asd[3])
:
: begin
: PModuleHandle := GetProcAddress(LoadLibraryA('Kernel32.dll'),'GetModuleHandleA');
: pSleep := GetProcAddress(LoadLibraryA('kernel32.dll'),'Sleep');
: CopyMemory(@asd, @pModuleHandle, SizeOf(pModuleHandle));
: CopyMemory(@asde, @pSleep, SizeOf(pSleep));
:
:
:
: 이런식으로하는데
:
:
:
: asd1 : Array [0..4] of Byte = (asd[1],asd[2],asd[3]) 이부분에서 막히네요
:
:
:
: 도와주십쇼
:
|