Notice
Recent Posts
Recent Comments
Archives
06-26 18:52
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
관리 메뉴

줴림이 공부하줴림

[CodeEngine] Basic RCE L14 본문

Study/Reversing

[CodeEngine] Basic RCE L14

줴림 2025. 5. 1. 02:22

이번 문제는 'Name이 CodeEngn일 때 Serial을 구하시오"라고 되어 있다. 근데 정답이 여러 개가 나올 수 있으며, 5개의 숫자로 되어 있는 정답을 찾아야 한다고 한다. 심지어 Bruteforce가 필요하다고... 미치겠군!

+) Bruteforce가 무엇인지 기억이 안난다면, 내가 작성한 정처기 실기 내용을 보고 오자.

 

[정보처리기사 실기] Ⅸ. 소프트웨어 개발 보안 구축 (1)

기타 네트워크 공격ARP 스푸핑: 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를

juerrim.tistory.com

 

이번 실행파일은 되게 게임처럼 생겼다. 처음 실행할 때 악성 프로그램이네, 중요 정보가 소실될 수 있네 어쩌네, 이래서 살짝 겁먹었다. 처음 입력 칸이 Name을 입력하는 칸이고, 밑에 있는 공간이 Serial을 입력하는 칸이다.

PEiD에 올려보니까 UPX로 패킹되어 있었다. 패킹을 풀어준 후에 Olly로 열어보자!

 

살짝 내리면 성공 메시지가 보인다. 그러면 그 위에 있는 'CMP EAX, ESI'와 'JNE SHORT 00401353' 부분에서 시리얼이 맞는지 확인하고 메시지를 출력하겠지?! 이 두 부분에 breakpoint를 걸어주고 F8로 하나씩 실행해보았다.

 

임의의 시리얼 번호로 15674을 넣어줬다. 그냥 숫자 패드 아무거나 막 눌렀다는 건 비밀이 아니다. 어쨌든 ESI랑 EAX를 확인해보면, EAX에는 내가 입력한 시리얼 번호가 16진수의 형태로 들어갔다는 걸 알 수 있다. 그리고 ESI에 저장된 값은 129A1.

그럼 시리얼 번호는 129A1의 10진수 형태일 것이다! 내가 직접 계산하기는 귀찮으니까 웹사이트의 16진수 계산기를 돌리면, 76193이 나온다.

이렇게 입력해주면 성공메시지가 출력된다! 생각보다 쉬웠던 문제. Basic은 전반적으로 이런 유형 문제인데, 가끔 가다가 이전 문제같은 까다로운 게 튀어나온단 말이야...

'Study > Reversing' 카테고리의 다른 글

[CodeEngine] Basic RCE L13  (0) 2025.04.30
[CodeEngine] Basic RCE L12  (0) 2025.04.28
[CodeEngine] Basic RCE L11  (0) 2025.04.24
[CodeEngine] Basic RCE L10  (0) 2025.04.23
[CodeEngine] Basic RCE L09  (0) 2025.04.22