티스토리 뷰
Challenges : Basic 15
Author : uBc - bRiANbuSY
Korean :
Name이 CodeEngn일때 Serial을 구하시오
English :
Find the Serial when the Name is CodeEngn
1) PEID로 현재 패킹 상태 확인
Borland Delphi 4.0 - 5.0 이렇게 패킹 된것을 확인할 수 있다.
별다른 패킹이 없는것을 확인하였으니
2) 이제 올리디버거로 확인해보자,
올리디버거로 확인하다보면, search for 기능을 활용하여 사용된 함수와, String값을 확인하여
메시지를 찾아보자, 성공하였을때,
3) 이렇게 성공하였을때 메시지 주변을 찾아보면, 분기문을 찾을 수 있는데, 이것이 큰 힌트가 된다. ID값은 CodeEngn 이고, password값은 그 분기문 부분을 찾아보면 찾아볼 수 있다.
여기서, 입력창에 아이디와 비밀번호를 입력하다보면, 그 시리얼값이 무슨값으로 쓰여지는지 알수 있다. 분기문에 BP 를 걸어서, EAX 값과 CMP되는 값이 무슨값인지 유추할 수 있다
CMP EAX,D[0045B844] 이런식으로 비교문이 사용되고 있는데 ,현재 이 EAX값은 우리가 임의로 입력한 12345 의 값이 된다. 따라서, D[0045B844]의 주소를 찾게되면 그 비교되는 값을 찾을수 있다. 결과적으로 시리얼 값을 의미한다.
보통 HEX값으로 어셈블리어에서 처리하므로,계산기에서 DEC값을 찾아서 처리하면 된다.
생각보다 쉬운문제였으나, 삽질을 펐다.
'Security' 카테고리의 다른 글
[리버싱] Code Engine - 17 문제 풀이 (0) | 2018.04.04 |
---|---|
[리버싱] Code Engine - 16 문제 풀이 (0) | 2018.04.04 |
[리버싱] Code Engine -14 문제 풀이 (0) | 2018.04.04 |
[리버싱] Code Engine 13- 문제 풀이 (0) | 2018.04.03 |
[리버싱] Code Engine 12 - 문제 풀이 (0) | 2018.03.25 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코드엔진
- Spring
- Android
- MVC
- 백준
- db
- programming
- 감자코딩
- 노드
- 스프링
- node
- 감자개발자
- 안드로이드
- 머신러닝
- 학교
- Algorigm
- 백준알고리즘
- 프로그래밍
- 복습
- 리버싱
- TensorFlow
- BFS
- node.js
- Controller
- C언어
- 텐서플로우
- 알고리즘
- 초보자를 위한 C언어 300제
- C langauge
- 개발하는 관광이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함