RCE basic 20

[CodeEngn] RCE basic L20 풀이

Q20. 이 프로그램은 Key파일을 필요로 하는 프로그램이다. 'Cracked by: CodeEngn!' 문구가 출력되도록 하려면 crackme3.key 파일 안의 데이터는 무엇이 되어야 하는가 Ex) 41424344454647 (정답이 여러 개 있는 문제로 인증 시 맞지 않다고 나올 경우 Contact로 연락 주시면 확인해 드리겠습니다)바로 20.exe를 실행해 보면 아무 화면도 출력되지 않는다.텍스트를 확인해 보면 Cracked by: 이후에 빈칸은 보이지만 아무 내용도 출력되지 않는다는 것을 확인했다.401016 ~ 401002D 주소를 보면 CreateFileA함수를 볼 수 있다.이때 함수의 FileName의 값으로 CRACKME3.KEY를 인자값으로 받는 것을 확인했다.문제에서 key 파일이 필..

Reversing/CodeEngn 2025.09.06

[CodeEngn] RCE basic L19 풀이

Q19. 이 프로그램은 몇 밀리세컨드 후에 종료되는가이번엔 Name, Serial값을 모두 받지 않는 프로그램이다. 확인 버튼을 눌러보면 바로 종료되었다.OllyDbg로 열어보니 압축된 코드라는 알림을 받았다.PEiD 툴을 사용하여 UPX 패킹된 프로그램임을 확인했다.UPX 언패킹 툴을 이용하여 19.exe를 언패킹 진행했다.이번엔 별도로 풀어내야 할 Serial값이 없으므로 종료와 관련된 문구를 확인해보려 했다.문구를 찾다 보면 AutoIt이라는 문구가 자주 보였었다. 최초 실행했을 때 보았던 문구를 확인해 보려 했으나 찾지 못했다.OllyDbg로 F9를 통해 디버깅을 진행해보려 했으나 AutoIt 스크립트로 컴파일되어 실행이 불가능하다는 경고창을 확인했다.Autoit 전용 디컴파일러가 필요한 것 같아..

Reversing/CodeEngn 2025.09.05

[CodeEngn] RCE basic L18 풀이

Q18. Name이 CodeEngn일 때 Serial은 무엇인가 실행해서 보면 Name값과 Serial 값을 받아 체크하는 프로그램이다.문제에서 주어진 Name : CodeEngn, 임의의 Serial값을 입력하여 다시 시도하라는 메시지를 확인했다.OllyDbg로 18.exe를 열어보면 압축된 코드라고 한다.하지만 어떠한 정보도 확인해 볼 수 없었다.처음 보는 명령어들(MOVQ, PAND, PSRLQ, POR)과 'MMx'이라는 인자값들을 사용한다는 것을 확인했다. 그래도 그동안 해온 분석하는 과정과 다르지 않을 것이라 보고 분석을 더 진행해 보았다.Text strings referenced에서 Good이라는 성공문구를 확인해 볼 수 있었다.해당 주소로 바로 이동했다.40120E에서 성공문구를 출력해 준..

Reversing/CodeEngn 2025.09.05

[CodeEngn] RCE basic L17 풀이

Q17. Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가. 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) 실행한 후 문제에서 주어진 키값(BEDA-2F56-BC4F4368-8A71-870B)을 입력하고 Name에 임의의 값인 CodeEngn을 넣었다. Check it! 을 눌러도 Name값이 틀리면 잠깐 멈추었다가 아무 반응이 없다.All referenced text strings 에서 올바른 Name값을 입력했을 때 출력될 것 같은 문구를 확인했다.전체 알고리즘을 분석해 보기위해 스택의 시작점인 45BAE8에 BP를 걸고 디버깅을 진행했다.디버깅 테스트로 Name에 12345를 입력하고 분석을..

Reversing/CodeEngn 2025.09.04

[CodeEngn] RCE basic L16 풀이

Q16. Name이 CodeEngn일때 Serial을 구하시오Name과 Password를 입력받고 값을 체크하는 프로그램이다.Name : CodeEngn, Password : 12345를 입력 후 인증 해보니 Wrong password!가 출력되었다.PEiD로 분석해본 결과 C++로 작성된 파일이라고 한다.해당 파일이 작성된 소프트웨어를 간단하게 조사해보았다.Dev-C++ - 나무위키 Dev-C++Dev-C++는 GNU 라이선스로 보급되는 사용이 자유로운 C / C++ 언어의 통합 개발 환경 이다.namu.wiki> Bloodshed Software가 Dev-C++로 제작한 프로그램을 지칭하는 듯 하였다. 현재는 개발이 멈춘 상태이다 (포크 후 이어지기를 반복했기 때문이라고 한다..)OllyDbg에서 A..

Reversing/CodeEngn 2025.09.03

[CodeEngn] RCE basic L15 풀이

Q15. Name이 CodeEngn일 때 Serial을 구하시오15.exe를 실행한 후 Name : CodeEngn, Serial : 12345를 입력해 체크했더니 Try Again! 문구가 출력되었다.458843 주소에서 성공문구를 보았고 바로 다음 주소인 458854에서는 인증 실패했을 때 보았던 문구를 확인해볼 수 있었다.458831에서 EAX와 45B844의 값을 비교하고 JNZ 조건 분기를 시도한다.EAX와 비교값을 확인하기 위해 458831에 BP를 걸고 디버깅해서 동적분석을 진행했다.입력 값은 처음 테스트 했던 Name : CodeEngn, Serial : 12345로 동일하게 입력해서 진행했다.45B844에는 6160이라는 값이 저장되어 있었으며 EAX값은 3039로 비교하게 되었다.EAX..

Reversing/CodeEngn 2025.09.03

[CodeEngn] RCE basic L14 풀이

Q14. Name이 CodeEngn 일 때 Serial을 구하시오 (이 문제는 정답이 여러 개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야 함, bruteforce 필요) Ex) 11111입력받는 칸이 2개가 있는 프로그램이다. 위 칸은 Name, 아래칸은 Serial 값을 받을 것이라고 예측되는 프로그램이다.Name은 문제에서 CodeEngn이 주어졌고, Serial 값은 임의의 값 12345를 입력했을 때 다음과 같은 창이 출력되었다.OllyDbg로 실행해보려 했으나 압축된 코드라고 알려주었다.Exeinfo PE 툴 처럼 PE 구조에 대해 분석해 주는 PEiD프로그램을 통해 14.exe을 분석해 보니 UPX 패킹된 프로그램이었다.upx 언패킹 툴로 14.exe를 언패킹 진행했다.성공 ..

Reversing/CodeEngn 2025.09.03

[CodeEngn] RCE basic L13 풀이

Q13. 정답은 무엇인가password를 입력받으며 잘못된 입력값에 대해서 Bad Luck! 문구를 출력해 준다.OllyDbg로는 13.exe 파일을 열 수 없다고 한다.Exeinfo PE 툴로 13.exe 정보를 알아보니 C#으로 이루어진 파일이었다.검색해 보니 C#으로 작성된 파일은 닷넷 프레임워크 환경이 필요하였고, 닷넷 전용 디컴파일러 도구를 사용해서 분석을 진행해야 한다는 사실을 알았다.OllyDbg는 사용하지 못하므로 C# 디컴파일러를 찾아보다가 dotPeek이라는 디컴파일러를 찾아냈다.dotPeek 디컴파일러 다운로드 dotPeek: 무료, JetBrains이 만든. NET 디컴파일러 및 어셈블리 브라우저우측 Assembly Explorer에서 RijndaelSimpleTest에서 익숙한 문..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L12 풀이

Q12. Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다. 이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제 : Key값과 + 주소영역을 찾으시오. Ex) 7777777????????Key 값을 인증하는 프로그램이다.OllyDbg로 12.exe를 열어 분석하다 보면 성공 문구를 확인해 볼 수 있었다.CMP명령어를 통해 EAX와 7A2896BF비교를 진행하고, JNZ 분기점을 만나 성공분기점으로 갈 수 있다.40107D에서 BP(F2 단축키)를 걸고 디버깅을 통해 동적 분석을 진행했다.Key값에 123을 넣고 디버깅 해서 EAX를 확인해보니 7B라는 ..

Reversing/CodeEngn 2025.09.01

[CodeEngn] RCE basic L11 풀이

Q11. OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000key 파일을 검사하는 프로그램인 것 같다.문제에서 OEP를 찾으라고 했으므로 이번 프로그램 역시 패킹되어 있다는 것을 유추해볼 수 있다.Exeinfo PE를 통해 11.exe의 파일구조를 확인해본 결과 UPX 패킹으로 된 프로그램임을 확인했다.upx -d 11.exeUPX 언패킹 툴을 통해 11.exe를 언패킹을 진행해주었다.OllyDbg로 UPX 언패킹한 11.exe를 열어보면 EP를 401000주소로 하는 것을 확인할 수 있다.패킹한 위치의 EP는 OEP와 같으므..

Reversing/CodeEngn 2025.09.01