Вы должны передать аргумент ассемблеру GCC.
gcc.exe -masm=intel -c Main.c
gcc.exe Main.o -oMain.exe
И у вас есть C-код, подобный этому:
#include <conio.h>
#include <stdio.h>
int myVar = 0;
int main(int argc, char *argv[])
{
asm("mov eax, dword ptr fs:[0x18]");
asm("mov eax, dword ptr ds:[eax+0x30]");
asm("movzx eax, byte ptr ds:[eax+0x2]");
asm("mov _myVar, eax");
if(myVar == 1) printf("This program has been debugged.\r\n");
printf("Welcome.\r\n");
getch();
return 0;
}
Не забудьте добавить префикс подчеркивания (_)для каждой переменной в ключевом слове asm (), или она не распознает его.
И ключевое слово asm () использует префикс «0x» для каждого шестнадцатеричного целого числа, а не суффикс «h».