pwnable(115)
-
HACKCTF - RTL_Core
yes_or_no 랑 비슷한 문제로 보였습니다. 처음에 삽질해서 시간 오래걸렸네요 ㅠㅠ 초기에 실행하면 위와같이 패스코드 입력하라고하고, 어떤 키랑 비교하는것 같습니다. 이 부분을 확인해보면 9번줄을보면 check_passcode($s) == hashcode 를 비교하는데 hashcode = 0C0D9B0A7 입니다. passcode를 체크하는 구간인데, 약간의 역연산이 필요합니다. a1의 주소를입력받아서 4바이트씩 늘려서 5개를 더하는 함수인데 아래와 같은 코드를 작성해서 이를 구할 수 있습니다. 1 2 3 4 5 6 7 8 9 key = 0x0C0D9B0A7 add = key/5 print("add = " + hex(add)) recoveradd = add*5 print("addmulti = " + ..
2020.07.29 -
DreamHack - off_by_one_000
보호되어 있는 글입니다.
2020.07.29 -
DreamHack - basic_exploitation_003
보호되어 있는 글입니다.
2020.07.29 -
ROP 32bit vs 64bit
ROP할때 32bit : 함수호출 --> pr --> 인자 > p32(read_plt) + p32(pppr) + p32(0) +p32(bss) + p32(len(shell)) 64bit : pr --> 인자 --> 함수호출 > p64(pop_rdi) + p64(elf.got['puts']) + p64(elf.plt['puts']) 이런 식으로 이루어진다. 둘다 개념은 모두 똑같으니 ROP할때 필수적으로 알야아한다. 요즘 문서들의 중요성을 조금씩 느끼고 있다. 진짜 많이 읽어야지..
2020.07.29 -
DreamHack - image-storage
보호되어 있는 글입니다.
2020.07.28 -
HACKCTF - Beginner_Heap
어제 st4nw에게 heap명강의를 듣고 힙에 대해 알게 되었다. 어제 알려준게 1% 라고 하던데 엄청난 공부량으로 노력해야겠다. 본론으로 들어가면 heap overflow 문제이다. 0x1309000이 첫번재 0x1309020이 두번재 0x1309030이 세번째 0x1309050이 네번째인데 세번째의 뒷부분을 0x0000000000601068
2020.07.28