| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- codeengn basic 19
- covetknowledge
- codeengn advanced 3
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제 답
- 반복문
- java
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제풀이
- StolenByte
- OEP
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제
- codeengn 13
- codeengn basic 14
- codeengn basic 18
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제풀이
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제 답
- CodeEngn
- 조건문
- upx 언패킹 명령어
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제풀이
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제 답
- Reversing
- codeengn basic 15
- codeengn basic 20
- 리버싱
- codeengn advanced 1
- 프로그래밍 언어
- codeengn basic 16
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제
- break
- codeengn basic 17
- Today
- Total
One's Knowledge
CodeEngn basic 12번 문제 풀이 본문
CodeEngn basic 12
Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다
이때 성공메시지 대신 Key값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다.
문제 : Key값과 + 주소영역을 찾으시오
Ex) 7777777????????

간단하게 Key값을 찾으면 될 것 같다.

성공구문이 보인다. 저기로 가보겠다.

성공구문 윗부분에 분기점을 찾았다.
EAX값과 7A2896BF를 비교하는 것을 볼 수 있다.
브레이크포인트를 걸고 실행하겠다.

Key 값으로 123을 입력하겠다.

실행을 하니 EAX에 7B가 들어간 것을 볼 수 있다.
어셈블리어는 기본 16진수로 표현한다. 7B를 10진수로 하면 123이다. 내가 입력한 Key값을 EAX에 넣었고
7A2896BF와 비교하는 것을 보니 7A2896BF이 키값인 것을 알 수 있다.
7A2896BF를 10진수로 바꾸면 2049480383인 것을 알 수 있다.


이제 HexEdit로 Key값을 메시지박스에 overwrite하려면 성공구문을 Key값으로 바꾸면 된다.
그렇기 때문에 0x0D3B ~ 0x0D62까지를 다 지우고 키값을 입력하여 0x0D3B ~ 0x0D44까지 쓰면된다.
하지만 문자열을 쓰고 마지막에 null값을 써줘야 문자열의 끝을 나타내기 때문에 0x0D45까지 overwrite을 해야한다.
즉, Key값은 2049480383이고 overwrite해야하는 영역은 0x0D3B ~ 0x0D45인 것을 알 수 있다.
답 : 20494803830D3B0D45
'리버싱 > CodeEngn 문제풀이' 카테고리의 다른 글
| CodeEngn basic 14번 문제 풀이 (0) | 2025.06.07 |
|---|---|
| CodeEngn basic 13번 문제 풀이 (0) | 2025.06.07 |
| CodeEngn basic 11번 문제 풀이 (0) | 2020.08.16 |
| CodeEngn basic 10번 문제 풀이 (0) | 2020.08.16 |
| CodeEngn basic 9번 문제 풀이 (0) | 2020.08.13 |