일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제 답
- 프로그래밍 언어
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제풀이
- CodeEngn
- codeengn 13
- codeengn basic 19
- 리버싱
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제
- 조건문
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제 답
- codeengn basic 20
- covetknowledge
- codeengn basic 17
- codeengn basic 18
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 13장 연습문제 답
- Reversing
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 14장 연습문제풀이
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제
- codeengn basic 15
- StolenByte
- codeengn basic 16
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 10장 연습문제풀이
- 누구나 쉽게 즐기는 c언어 콘서트 개정판 9장 연습문제풀이
- codeengn basic 14
- OEP
- break
- upx 언패킹 명령어
- java
- 반복문
- 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 |