:Cのシェルコード - これはどういう意味ですか?私は本当にこのコードは、それが何をどうするか届かない
char shellcode[] = "\xbb\x00\x00\x00\x00"
"\xb8\x01\x00\x00\x00"
"\xcd\x80";
int main()
{
int *ret;
ret = (int *)&ret + 2;
(*ret) = (int)shellcode;
}
はさて、私が知っている:
int *ret;
は、int型のポインタを設定します。 と:
ret = (int *)&ret + 2;
RETと2バイトのアドレスを設定します(私は思う。)
しかし、私はこれが何を意味するのか取得しない:
(int *)&ret
私は何&ret
手段を知っているが、何でないか(int *)&ret
を意味します。 shellcode
の値をret
に割り当てることによって、シェルコードをどのように実行するのですか?
UPDATE:
(int *)&ret + 2
と::
&ret + 2
なぜそんなに多くのdownvotes ...シェルコードはかなり無害に見えます。 – FatalError