- 2023.09.14
CodeEngn Basic RCE L01
1. 문제 확인
문제 실행 파일을 다운받아 실행시켜보니 아래와 같은 경고창이 뜬다.
CD-Rom Drive가 아니라고 뜬다.
2. 문제 해결
위 사진과 같이 CD-Rom으로 인식되려면 5가 되어야 한다.
따라서 우리는 GetDriveTypeA의 리턴값을 5로 변경해야 한다.
GetDriveTypeA 함수를 지나고나서 EAX값이 3으로 지정되어 있는 것을 확인할 수 있고,
해당 함수를 실행하자마자 EAX의 값을 5로 설정해주고 실행을 했다.
변경 후 실행을 해주면, 정상적으로 실행되는 것을 확인할 수 있다.
CodeEngn Basic RCE L02
1. 문제 확인
정말로 해당 파일이 실행되지 않는다.
디버거로 열어보아도 에러 메시지만 뜬다.
2. 문제 해결
그래서 Hex Editor로 열어보았다.
그럼 프로그램이 16진수의 코드로 이루어져 있는 것을 확인할 수 있다.
조금 더 아래로 스크롤하다보면 패스워드랑 관련되어 있는 것 같은 부분을 찾을 수 있다.
실패했을 때는 Nope, try again!을 띄우고
성공했을 때는 Yeah, you did it!을 띄우는 것으로 보인다.
이때 Crackme #1 다음에 오는 수상한 문자가 비밀번호인 것 같아서 입력했더니,,,
문제가 풀렸다!
이렇게 푸는 게 아닌 것 같지만 어찌됐든 풀긴 풀었다,,,,
JK3FJZH
CodeEngn Basic RCE L03
1. 문제 확인
2. 문제 해결
해당 파일을 디버거로 실행시켜보았지만,
dll이 없어서 코드 실행을 할 수 없다는 창이 떴다.
어차피 스트링 비교함수를 찾는 거라,
그냥 정적 분석 도구 중 하나인 Strings를 사용해서 문자열만 추출해서 봤다.
쭉 스크롤을 하면서 하나씩 읽어보는 도중에
VBA5.DLL 아래에 vbaStrCmp가 있는 것을 확인할 수 있었다.
해당 문자열을 입력하니 문제를 해결할 수 있었다.
vbaStrCmp
CodeEngn Basic RCE L04
1. 문제 확인
오늘의 마지막 문제 L04를 빠르게 풀어보도록 하겠다.
2. 문제 풀이
디버거로 해당 파일을 열어서 실행시켜보니
'디버깅 당함'이라는 메시지가 콘솔창에 출력되는 것을 확인할 수 있었다.
해당 문자를 출력되는 주소는 00408454이다.
00408454로 이동해보면 명령어가 CALL 04.0040100F로 해당 주소의 함수를 호출한다는 뜻이다.
0040100F로 이동해보니까 00401030으로 JMP한다.
최종적으로 00401030으로 이동해보니까
명령어들이 있는 것을 확인할 수 있었다.
명령어들 사이에서 0040105E에서 IsDebuggerPresent라는 함수를 확인할 수 있다.
이 함수를 입력해 보았더니 문제를 풀 수 있었다.
IsDebuggerPresent
'정보 보호 관리' 카테고리의 다른 글
Dreamhack.io file-download-1 문제 풀이 (0) | 2023.06.15 |
---|---|
Dreamhack.io devtools-sources 문제 풀이 (0) | 2023.06.15 |
네트워크 보안 DOS / DDOS / ARP spoofing / nmap 개념 (0) | 2023.06.01 |
FTZ level 7 문제 풀이 (0) | 2023.05.18 |
FTZ level 6 문제 풀이 (0) | 2023.05.18 |