티스토리 뷰
Challenges : Basic 12
Author : Basse 2002
Korean :
Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다
이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음
0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다.
문제 : Key값과 + 주소영역을 찾으시오
Ex) 7777777????????
English :
You will see a success message after finding the key.
If you would want the Key itself to replace the success message in the MessageBox,
open up a Hex Editor and overwrite the key value in the offset range 0x???? ~ 0x????.
Q : find the key value and the offset range and write the solution in this format : key????????
(first ???? for the start and the next 4 ?s for the end).
1) 일단 가장 먼저 PEid 로 패킹 여부 확인
패킹 X
2) 이제 올리디버거로 한번 까보자.
cmp, jmp 부분을 집중적으로 확인하고, 메시지창 띄워주는쪽을 확실하게 확인하자.
내가 여기서 키값을 123으로 저장하였는데, 여에 0000007B로 EAX 값이 설정된것을 알수 있다. 그리고,분기점은 CMP -> JNZ 구간으로 확인된다.
이제여기서 EAX값만 잘 처리해주면 올바른 문자열만 수정해주면 된다.
3) 가장 먼저 해야할부분은
GetDlgItemInt 부분에서 값을 처리해주는 부분이다. 여기에 있는값들을 가져와서 이제 cmp 부분에서 값을 비교하는부분인데, 이쪽부분에 cmp cmp exa, 값을 비교하는 값을 가져와서 HEX->값을 DEC 값으로 변환시켜주면 그 값이 키값이 되는것을 알 수 있다. 결국 위에서 GetDlgItem에서 얻어진 값을 활용하여 그값으로 cmp 에서 키값끼리 비교하는걸 알고 있으면 된다.
'Security' 카테고리의 다른 글
[리버싱] Code Engine -14 문제 풀이 (0) | 2018.04.04 |
---|---|
[리버싱] Code Engine 13- 문제 풀이 (0) | 2018.04.03 |
[리버싱] Code Engine 11 - 문제 풀이 (0) | 2018.03.25 |
[리버싱] Code Engine 10 - 문제 풀이 (0) | 2018.03.25 |
[리버싱] Code Engine 9 문제 풀이 (0) | 2018.03.25 |
- Total
- Today
- Yesterday
- TensorFlow
- 코드엔진
- BFS
- programming
- 초보자를 위한 C언어 300제
- 감자개발자
- C langauge
- 노드
- db
- 머신러닝
- C언어
- 알고리즘
- 텐서플로우
- node.js
- 개발하는 관광이
- 백준알고리즘
- 스프링
- Android
- 감자코딩
- 리버싱
- Controller
- 프로그래밍
- 복습
- Spring
- Algorigm
- 학교
- 안드로이드
- 백준
- node
- MVC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |