Write_Up 2

[HKCERT_CTF_2024] Baby Cracker, Yet another crackme Writeup

Reverse_Baby Cracker 가장 먼저 바이너리 파일을 IDA로 열어주면 main함수가 보이는데, main함수만 보면 되는 간단한 문제였다.  로직을 확인해보면 크게 3단계 조건문으로 나눌 수 있다. 1. 첫번째 조건문- 사용자가 입력한 문자열에 'hkcert24{' 가 포함되어있는가? 2. 두번째 조건 - 사용자가 입력한 문자열의 끝이 '1}' 로 끝나는가?- 그리고 뒤에서 3번째 4번째 5번째 문자열에 대한 방정식이 존재  --> 해당 방정식에서는 4번째 문자열은 'h' 이고, 3번째 + 5번째 = 196임을 알아낼 수 있다. 3. 세번째 조건- '*((char *)off_4058 + i) ^ haystack[i + 9]) == byte_2123[i]' 해당 조건을 만족하는가? 세번째 조건에..

Write_Up/REV 2024.11.18

[ISITDTU_CTF_2024] re01, animal Writeup

Reversing_re01 해당 문제를 IDA를 통해 열어보면 main함수에서 해시값과 비교하고, 조건에 부합하면 flag가 맞다는 문구를 출력하는것을 확인할 수 있다.그치만 이 전에 IDA에서 TlsCallback함수가 존재하는 것을 볼 수 있다. TlsCallback함수는 main보다 먼저 실행되는 함수이기에 이 함수를 먼저 보게되면, 임의로 flag라고 적어둔 주소에 값을 담아주고 what함수를 호출하는 것을 확인할 수 있다. 그리고 이 what함수에서 Flag라고 적어둔 주소에 담긴 값을 하나하나 0x35랑 xor연산하고 있는 것을 볼 수 있다. 이렇게 main함수에 해시값 등등은 볼 필요가 없었고 TlsCallback함수를 먼저 확인하면 풀리는 문제였다. flag : ISITDTU{Congrat..

Write_Up/REV 2024.11.08