Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Mali primer koda koji generise kod (i izvrsava) :)

[es] :: C/C++ programiranje :: Mali primer koda koji generise kod (i izvrsava) :)

[ Pregleda: 2994 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

to3a

Član broj: 72527
Poruke: 6
212.200.125.*



Profil

icon Mali primer koda koji generise kod (i izvrsava) :)11.11.2005. u 21:25 - pre 224 meseci
Ucinilo mi se zanimljivim, pa eto, mozda nekome i zatreba ...

Code:

#include <stdio.h>
#include <stdlib.h>

void main(void)
{
   int i = 1;
   void (__cdecl *test_fun )(int *);
   char *fun;

   fun = (char *) malloc(1024);

   // mov   eax, DWORD PTR [esp+4]
   fun[0] = 0x8b;
   fun[1] = 0x44;
   fun[2] = 0x24;
   fun[3] = 0x04;
   // inc   DWORD PTR [eax]
   fun[4] = 0xff;
   fun[5] = 0x00;
   // ret
   fun[6] = 0xc3;
   // nop, za svaki slucaj, nije neophodno...
   fun[7] = 0x90;
   fun[8] = 0x90;
   fun[9] = 0x90;

   test_fun = (void (__cdecl *)(int *)) fun;
   fprintf(stderr, "before test i = %d.\n", i);
   test_fun(&i);
   fprintf(stderr, " after test i = %d.\n", i);
   free(fun);
}


Pozdrav, To3A
 
Odgovor na temu

[es] :: C/C++ programiranje :: Mali primer koda koji generise kod (i izvrsava) :)

[ Pregleda: 2994 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.