[CTF]Reversing.kr 3

Reversing.kr - Ransomware

file, readme.txt, run.exe파일이 주어졌다. readme.txt의 내용이다. run.exe을 실행하면 Key값을 입력하게 되어있었고, 임의의 값인 abc를 입력하였더니 위와 같은 문구가 떴다. PEiD를 통해 run.exe의 정보를 보았더니 UPX로 패킹이 되어있음을 알 수 있었다. 패킹되어있던 run.exe를 upx.exe를 통해 언패킹해주었다. run.exe를 올리디버거를 통해 분석해보았다. 이 부분은 반복문을 돌면서 암호화된 파일을 읽어오는 부분이다. 이 부분은 입력 받은 key값을 이용해서 암호화된 파일을 복호화하는 부분이다. 복호화하는 방식을 정리하면 1. 파일에서 한 바이트 씩 가져온다. 2. key값과 XOR연산을 한다. 3. 0xFF와 다시 XOR한다. key값을 구하기 ..

[CTF]Reversing.kr 2023.12.29

Reversing.kr - Easy Keygen

Easy Keygen.exe와 ReadMe.txt파일이 주어진다. ReadMe.txt를 확인해보니 Serial이 5B134977135E7D13일 때 Name을 찾으면 해결되는 것 같다. PEiD를 통해 Easy Keygen.exe파일이 패킹이 되어 있지 않음을 알 수 있다. strings를 확인하였더니 “Correct!”와 “Wrong”이 있었고, “Correct!”부분으로 이동하였다. 이 부분은 Serial을 생성하는 루틴이 담겨있다. 1. 입력 받은 문자열들을 하나씩 가져온다. 2. 0x10, 0x20, 0x30을 반복하면서 xor연산을 한다. 3. ESI에 생성한 Serial값을 저장한다. 4. 입력 받은 Serial 값과 비교해서 일치하면 “Correct!”, 실패하면 “Wrong!”이 있는 곳으..

[CTF]Reversing.kr 2023.12.29

Reversing.kr - Easy Unpack

Easy_UnpackMe.exe와 ReadMe.txt가 주어진다. Easy_UnpackMe.exe를 실행하면 위와 같이 아무것도 뜨지 않는다. PEiD를 통해서 확인해보니 Entrypoint와 EP Section에 대한 정확한 정보를 얻기 어려웠다. ReadMe.txt파일을 열었더니 OEP의 주소를 찾으면 해결이 되는 것 같다. OEP는 패킹된 파일의 실제 프로그램의 시작 부분이다. 올리디버거로 코드를 분석해보았다. PUSH, MOV, JE를 계속 반복하며 디코딩을 하는 것 같다. 코드를 계속 내리다보면 0040A1FB에서 00401150으로 JMP하고 다음 코드들이 0으로 채워져있는 것을 확인할 수 있다. 즉 이 주소가 OEP임을 알 수 있다.

[CTF]Reversing.kr 2023.12.29