| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- __vectorcall
- ABI
- Rich Header
- image section header
- 프로그래머스
- __fastcall
- Reversing
- x32
- __stdcall
- __cdecl
- Python
- Calling Convention
- stack frame
- 크랙미
- 실행파일
- RVA
- Image dos header
- Dos Stub
- 코드엔진
- pe format
- CodeEngn
- rev
- 리치헤더
- crackme
- x64
- Programmers
- 파이썬
- 32bit
- 리버싱
- 함수 호출 규약
- Today
- Total
kj0on
[RCE] Basic L07 본문
0. 실행환경
0-1. 운영체제 (1)

0-2. 툴 (2)


1. 파일

password : codeengn

2. 프로그램 동작

실행 시 Serial을 입력하는 창과 Check 버튼을 볼 수 있다.

Serial이 일치하지 않는 경우 에러 메시지가 출력된다.
3. Detect It Easy

32비트 실행파일, 델파이로 작성된 프로그램인 것을 알 수 있다.
4. 분석

실행하다 보면 간단한 반복문이 나타난다. dl에 0x02를 넣고 밑에서 dec로 값을 0x01감소한다. 이후 jne로 조건부 분기가 이루어 진다. 따라서 총 2번 반복된다.

연산을 해주는 위치를 보면 앞에서 lstrcat해준 문자열이다. 빨간색 네모칸의 값에 add 연산을 해주는 코드다.

반복문을 모두 실행하고 나면 최종적으로 값에 2가 더해진다. 해당 값은 C 드라이브의 이름에 해당한다. 뒤에 보이는 "4562-ABEX"는 하드코딩된 문자열이다.

다음 동작으로 "L2C-5781" 문자열을 앞에 붙인다.
5. 풀이

"L2C-5781", "4562-ABEX"는 하드코딩된 문자열로 C드라이브 이름에 붙는다. C드라이브 이름을 CodeEngn으로 설정하면 "Code" 부분의 각 아스키 값이 +2가 되면서 "eqfgEngn"이 된다.
자세한 분석 내용은 https://kj0on.tistory.com/8 참고
'Reversing > CodeEngn' 카테고리의 다른 글
| [RCE] Basic L08 (0) | 2025.07.11 |
|---|---|
| [RCE] Basic L06 (0) | 2025.06.29 |
| [RCE] Basic L05 (0) | 2025.06.29 |
| [RCE] Basic L04 (0) | 2025.06.29 |
| [RCE] Basic L03 (0) | 2025.06.28 |