Wargame/CodeEngn.com

    Basic RCE L02, L03

    Basic RCE L02, L03

    패스워드로 인증 파일이 손상되었다고 한다. 주어진 02.7z 파일을 풀면 02.exe 파일을 얻는다. 아묻따 실행부터.. 오호.. 뭐가 잘못됐을까? 일단 PE 실행 파일인 것은 확실하다. 헥스 값을 더 보자. 더 내려보니 쓰인 함수, dll들이 보인다. 더 내리니까 이런 문자열을 발견했는데.. Yeah, you did it! 뭔가 수상하다 ㅋㅋㅋㅋ 1번에 비해 너무 확 낮아진 난이도랄까 03.exe가 주어진다. 역시 바로 실행.. 이러면 안되는데ㅠ MSVBVM50.DLL이 없어서 실행이 안된다고 한다. 그래서 설치 끝! 이제 다시 실행! 해봤는데 이런게 나오더니 이런게 나왔다. 일단 뭐든 입력해보자. 문자열 비교 함수를 찾으라고 했으니 아마 내가 입력하면 틀렸다고 하겠지ㅜ 이제 디버거로 열 때가 됐다. ..

    Basic RCE L09

    Basic RCE L09

    09.exe 파일이 주어진다. 일단 실행해보자. 확인을 누르면 파일을 찾을 수 없다는 메시지가 뜬다. 올리디버거로 열어봤다. 많이 봤던 00401000이 아니라 004071F0이 EP로 잡혔다. 그 곳에는 PUSHAD가 있다. PUSHAD는 레지스터 백업용으로 쓰는 명령어로, 범용 레지스터 값들을 스택에 쌓는다는 의미이다. 왠지 패킹되어 있을 듯한 느낌이 드니 PEiD로 검증해보자. UPX로 패킹되어 있다고 한다. 바로 UPX 언패킹을 진행하고 파일을 다시 실행시켜봤다. 오류가 뜬다.. 문제에서 언급된 'stolenbyte' 때문일 것이다. 언패킹한 09.exe를 우선 올리 디버거로 열어보자. 'NOP NOP NOP ...' 이 부분이 아마 훔쳐진 바이트일 것 같다. 자세히보면 0040100E의 코멘트 ..

    Basic RCE L19

    Basic RCE L19

    아래 문제와 매우 유사하다. 설명이 이 포스팅보다 좀 더 자세하다.. https://hec-ker.tistory.com/123 일단 압출을 풀고 19.exe 파일을 더블클릭하여 실행시켜 보자. 위와 같은 메시지가 뜨고 몇 초 뒤 자동으로 꺼진다. 그 '몇 초'를 찾으면 될 것 같다. PEiD로 일단 패킹 여부를 검사해봤다. UPX로 패킹되어 있다. upx.exe -d 19.exe: 언패킹 완료 언패킹한 파일을 올리디버거에서 열어, 실행시켜봤다. 아까와는 다른 메시지가 출력되고, 리턴되었다. 메시지를 다시 보자. AutoIt으로 컴파일된 스크립트라고 한다. 물론 파일 썸네일에서부터 알 수 있었다. 어쨌든 오토잇으로 디버깅된 실행 파일이므로 이런 메시지가 뜨는 것 같은데 처음 더블클릭했을 때 나온 메시지 창..

    Advance RCE L01

    Advance RCE L01

    01.7z 파일을 풀면, 01.exe 파일이 주어진다. 더블 클릭해서 실행시키면 위와 같은 창이 뜨고 몇 초 있다가 알아서 꺼진다. 이 창이 꺼지는데 걸리는 시간을 구하는 것 같다. 일단 PEiD로 패킹 여부를 살펴보니 UPX로 패킹 upx -d 01.exe: 언패킹을 완료하고 올리디버거에서 열었다. 언패킹 후 디버거에서 실행시켜보니 위와 같은 메시지가 출렸되었다. 구글링해보니 별 내용 아니고(AutoIt을 통해 컴파일된 스크립트라는..) 우린 이 메시지를 없애면(안티디버깅) 된다. IsDebuggerPresent()는 해당 프로세스가 디버깅을 당하고 있는지 여부를 PEB구조체의 디버깅 상태값으로 확인한다. 일단 IsDebuggerPresent 함수가 쓰인 곳을 찾아봤다. 0040E961 Search f..