전체 글 80

[dreamhack] level1 Small Counter

해당 바이너리를 실행하면 위와 같은 숫자들이 출력된다. IDA 분석위의 코드를 확인해보면 [rbp+var4]의 값이 5와 같아야 "Nice!"라는 문구를 출력한다. 따라서 [rbp+var4]의 값이 5와 같아지도록 gdb를 활용하여 수정해야한다. pwndbg 디버깅일단 cmp [rbp+var4], 5가 있는 주소로 이동해야 한다. ida에서 해당 주소를 확인해보면 0x00000000000015AA인것을 알 수 있다.디버깅을 하기 앞서서 checksec 명령어를 통해 PIE 여부를 확인해보면 PIE가 enabled 되어 있는 것을 확인할 수 있다.따라서 vmmap을 통해 해당 바이너리의 시작점을 확인한다. 따라서 0x00000000000015AA + 0x555555554000를 연산한 주소에 bp를 걸어준..

[dreamhack] level 1 Easy Assembly 문제

해당 파일을 실행하면 다음과 같은 문구가 출력된다. ./prob을 하고 값을 넣으라고 해서 아무 문자나 넣어봤는데 아래와 같은 문구를 출력해주는걸로 봐선 올바른 key값을 찾아야 하는 것 같다. IDA 분석 eax : 사용자 입력값len : 사용자 입력값 길이esi : 사용자 입력값edi : enc_flag 값ecx와 ecx xor 연산check_pw 함수 실행eax 와 0 비교0이면 flag 출력a2 변수에 enc_flag++ ^ len ^ v0++ 연산을 한 값을 or 연산하여 저장len이 0이 될 때까지 반복a2를 반환 exploit 코드enc_flag = [ 0x74, 0x78, 0x4B, 0x65, 0x77, 0x48, 0x5C, 0x69, 0x68, 0x7E, 0x5C, 0x79, 0x7..