목록전체 글 (29)
CTF PRE
ida로 디컴파일 해보니 사용자에게 입력을 받고, s를 파라미터로 하는 함수인 sub_145A의 값이 참이면 correct 출력, 아니라면 wrong을 출력한다. 해당 문제는 어떤 값을 입력해야 correct가 나오는지 알아내야 하는 문제 같다. sub_145A 함수 분석만약 input 값의 길이가 39가 아니라면 0을 반환v2~v7 : 순서대로 input + 8, 24, 32, 36, 38을 연산한 값을 저장s1[0~3] : 순서대로 Input, v2, input + 16, v3를 저장sub_1273 함수 호출sub_139D 함수 호출s1과 s2의 첫 0x27 바이트를 비교하여 결과가 0이라면 참(1)을 반환하고 아니라면 거짓(2)를 반환. ** main 함수에서 correct가 나오려면 memcmp..
바이너리 실행 화면해당 문제를 다운받고 바이너리를 실행하면 random number을 출력하고 input?이라는 문구와 함께 입력란이 나온다. 아무거나 입력해보면 result라는 문구가 출력되고 특정한 문자가 출력되며 try again이라고 출력된다. 따라서 알맞는 입력값을 찾는 것이 이 문제의 목표인것 같다.또한 해당 문제 폴더에 flag를 확인해보면 DH{sample}이라고 출력되는 것을 봐선, flag 파일에 flag가 저장되는것 같다. IDA 분석main 함수 디컴파일 코드flag 파일을 실행하고 해당 파일을 읽고 buf에 저장한 뒤에 파일 종료사용자에게 특정한 값 입력받음v11에 입력 받은 문자열(v7)과 v6와 xor 연산하여 저장7번 반복하여 s1의 i번째 배열에 s[7-i] 저장 --> a..