드림핵리버싱
-
Dreamhack - Simple Crack Mewargame/Dreamhack 2024. 8. 24. 21:23
[LEVEL 1 - Simple Crack Me - reversing] 문제 파일을 다운로드 받으면 "simple_crack_me"라는 파일이 하나 들어있다. start 함수를 IDA로 디컴파일하고 sub_401AD5 함수 내부를 들어가본다. 위에서 볼 수 있듯 sub_40BB20()은 scanf()로 추정된다.(&unk_4B6004가 %d를 가리키고 있으며, 해당 함수 내부에서 va_start로 va argument를 가져옴)그리고 이 입력값 v11이 위에 하이라이트 표시한 값과 같을 때 "Correct!"를 출력하고 있는 것도 볼 수 있다.문제에서 correct를 출력하는 10진수 양수값을 찾으라고 했기 때문에 이 값이 정답이다. 플래그를 획득했다!
-
Dreamhack - [CodeEngn] Malware L08wargame/Dreamhack 2024. 8. 24. 21:09
[LEVEL 1 - [CodeEngn] Malware L08 - reversing, misc] 문제 파일을 다운로드 받으면 이전 문제들처럼 pdf가 하나 들어있다. 앞서 풀었던 문제들보다 주어진 악성코드의 flow가 조금 더 복잡해 보인다. 위에서부터 쭉 보다가 중간쯤에서 위와 같이 수상해 보이는 함수를 발견했다. 위와 같이 msdn에 ShellExecuteExA()에 대한 친절한 설명이 나와있다. 따라서 앞서 하이라이트 표시한 부분이 문제 설명에 나와있던 "다른 악성코드를 실행하여 추가 감염을 일으키는 함수의 주소"임을 알 수 있다.PE 파일이 익숙한 사람들에게는 당연한 것이겠지만, 정답은 Ex) 00401000과 같은 형태임을 유의해야 한다. 플래그를 획득했다!
-
Dreamhack - Secure Mailwargame/Dreamhack 2024. 8. 4. 23:58
[LEVEL 1 - Secure Mail - reversing] 문제파일을 다운로드 받으면 html 파일이 하나 있는데, 비밀번호 생년월일 6자리를 알아내면 플래그값을 알 수 있는 문제다. 일단 vs code로 열어서 소스코드 내용을 확인해본다. 보니까 생년월일 비번 제출하는 Confirm 버튼에 onclick()으로 0x9a220함수가 있는데 이걸 Ctrl+F로 검색해본다. 위쪽에 이 함수가 사용되는 것을 볼 수 있다. 그런데 이 코드를 다 해석하는 건 비효율적으로 보인다. 브루트포싱이 나을 것 같다. html태그 나오기 바로 전에 script태그 끝나는 부분이 있었는데 여기에 보면 틀릴 때마다 wrong을 alert창으로 띄우는 걸 볼 수 있다. 브루트포싱할 때마다 alert창이 ..