Sabtu, 31 Agustus 2013

GCC Inline Assembly dengan Syntax Intel

Seperti yang kita ketahui bahwa GCC (GNU Compiler Collection) untuk C/C++ mendukung inline Assembler dengan instruksi AT&T.


Tetapi ini sangat membingungkan khususnya yang masih awam mengenai syntax AT&T Assembly. Berikut adalah solusinya jika ingin menggunakan inline Assembler dengan syntax Intel.

Gunakan command line berikut:

gcc.exe -masm=intel -c File.c
gcc.exe File.o -oFile.exe -s -static

Dan gunakan kode C berikut:

#include <conio.h>
#include <stdio.h>

int IsDebugged = 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 _IsDebugged, eax");
    if(IsDebugged == 1) printf("This program has been debugged.\r\n");
    printf("Welcome!\r\n");
    getch();
    return 0;
}

Selamat mencoba! :)

Tidak ada komentar :

Posting Komentar