int (*ret)() = (int(*)())code;
~~~~~~~~~~~~ ~~~~~~~~~~~~~~
1 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
-
It defines
ret
as a pointer to a function which has no parameter()
and returnsint
. So, Those()
indicates the definition of parameters of a function. -
It’s for casting
code
to a pointer to a function which has no parameter()
and returnsint
. -
Casts
code
as a function and assigns it toret
. After that you can callret();
.
unsigned char code[] = "\x31\xc0\x50\x68\x6e\x2f\...
It is a sequence of machine instructions represented by hex values. It will be injected to the code as a function.