reverseengineering 2

HackCTF Reversing Strncmp Write Up

https://ctf.j0n9hyun.xyz/challenges HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 문제 파일을 IDA로 열고 main함수를 확인해보겠습니다. 입력을 받고 4F~7A와 비교를 해서 같으면 "Good game"이 출력되고 아니면 "Always dig deeper"를 출력하는 것으로 추정됩니다. 이제 strcmp_함수에 들어가서 자세히 분석해보겠습니다. strcmp_함수를 디컴파일한 코드입니다. v3이라는 변수가 있는데 딱히 하는 일은 없는 것 같습니다. 중요한 건 입력한 문자열이 들어있는 a1을 key라는 변수의 값과 XOR연산한다는 것입니다. XOR연산을 마친 a1의 값과 a2에 들어있는 문자열이 같으면 성..

HackCTF Reversing Handray Write Up

https://ctf.j0n9hyun.xyz/challenges HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 이 문제는 이름이 이름인 만큼 바로 IDA로 열어보았습니다. 이것이 이 프로그램의 구조입니다. 주목할 부분은 40058D주소로 가면 실패메시지가 뜨게 되는데 main함수에서 rbp+var_4 주소에 1을 넣고 0과 비교를 해서 다르면 40058D로 점프합니다. 점프를 하지 않으면 400571과 400544를 왔다 갔다 하게 됩니다. rbp+var_8의 값을 카운터로 사용하는데 0x1E라는 값을 넣어주고 작거나 같을 때 점프하는 jle명령어가 있으므로 31번 동안 반복한다는 것을 알 수 있습니다. 400544는 string과 ..