HackCTF Write Up/Reversing 5

HackCTF Reversing Keygen Write Up

https://ctf.j0n9hyun.xyz/challenges HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 이 문제를 IDA로 열어보도록 하겠습니다. 아마도 check_key의 값이 참이면 플래그를 출력하는 프로그램인 것 같습니다. 입력한 문자열의 길이가 9자 이상 64자 미만이어야 합니다. 그리고 입력한 문자열을 encoding이라는 함수를 통해서 값을 바꿔준 후에 "OO]oUU2U

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과 ..

HackCTF Reversing Reversing Me Write Up

https://ctf.j0n9hyun.xyz/challenges HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 이 문제는 C언어로 짜인 코드를 줍니다. #include #include int main() { int i; char *serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}"; char enter[54]; printf("키를 입력하시게 : "); scanf("%s", enter); if (strlen(enter) == strlen(serial)) { for (i = 0; i < strlen(serial) && (enter[i] ^ (i % 2)) == serial[..

HackCTF Reversing Welcome_REV Write Up

https://ctf.j0n9hyun.xyz/challenges HackCTF Do you wanna be a God? If so, Challenge! ctf.j0n9hyun.xyz 문제를 다운로드하고 실행해보겠습니다. exe파일이 아니라서 그런지 실행이 안 됩니다. HxD로 열어보겠습니다. 성공메시지와 실패메시지, 그리고 의심스러운 문자열이 보입니다. 의심스러운 문자열을 찾기는 했지만 플래그는 아닌 것 같아서 고민을 하다가 검색의 도움을 받아서 풀어보았습니다. 이 문자열은 Base 64라는 방식으로 인코딩 된 문자열인데 Base 64로 인코딩된 문자열의 특징은 끝이 "="으로 끝난다는 것입니다. 이제 이 문자열을 디코딩하면 답이 나오게 됩니다. 답:HackCTF{w3lc0m3_70_r3v3r51n6_w..