일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리버싱
- CP949
- Visual Studio
- 서비스디버깅
- Advanced안티디버깅
- UTF-32
- 분석 보고서
- RedLine Stealer
- Dynamic안티디버깅
- DebugBlocker
- JIT
- hxd
- Exe2Aut
- Static안티디버깅
- 서비스프로세스
- PEImageSwitching
- PEImage
- IL코드
- dotPeek
- x32dbg
- 디버깅
- CodeEngn
- OllyDbg
- ImageSwitching
- Self-Creation
- 안티디버깅
- UTF-16
- .net
- 리버싱핵심원리
- Python
- Today
- Total
-榮-
[CodeEngn] Basic RCE L11 본문
● CodeEngn Basic RCE L11 문제
◎ 파일 실행 화면
◎ 패킹 및 난독화 여부 확인
[※참고]
CodeEngn Basic RCE L11와 CodeEngn Basic RCE L09의 파일은 같은 파일입니다.
자세한 분석은 CodeEngn Basic RCE L09를 참고하기.
● CodeEngn Basic RCE L11 풀이 및 답
Hardware BP를 걸고 실행[F9]합니다.
실행[F9] 멈춘 코드에서 옮겨진 코드와 JMP 0040100C를 확인할 수 있습니다.
0040100C로 이동하면 위의 NOP 12Byte와 0040100E CALL 0040109F 확인할 수 있습니다.
Stack에서 MessageBoxA의 부족한 파라미터를 확인 할 수 있습니다.
스택의 MessageBoxA 파라미터는 큰 주소부터 작은 순서로 uType, IpCaption, IpText 파라미터입니다.
MessageBoxA 함수 정의(출처:MSDN)
int MessageBoxA(
HWND hWnd,
LPCSTR lpText,
LPCSTR lpCaption,
UINT uType
);
[그림 5]에서 찾은 옮겨진 코드를 [그림 6]의 NOP 부분으로 옮겨 적습니다. (StolenByte 12Byte / NOP 12Byte)
[Dump debugged process]를 클릭하여 DUMP를 뜹니다. (Plugin)
EP를 StolenByte의 시작 부분으로 수정하고 Dump파일을 저장합니다.
생성된 Dump 파일을 디버거에 올려서 확인합니다.
CodeEngn Basic RCE L11의 답은 OEP+StolenByte : 004010006A0068002040006812204000
'CodeEngn > Basic' 카테고리의 다른 글
[CodeEngn] Basic RCE L13 (0) | 2021.03.25 |
---|---|
[CodeEngn] Basic RCE L12 (+α PEView 주소 변환) (0) | 2021.03.24 |
[CodeEngn] Basic RCE L10 (0) | 2021.03.24 |
[CodeEngn] Basic RCE L09 (+α StolenByte 옮기고 덤프 파일 만들기) (0) | 2021.03.23 |
[CodeEngn] Basic RCE L08 (0) | 2021.03.23 |