일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hxd
- 서비스디버깅
- IL코드
- OllyDbg
- 디버깅
- RedLine Stealer
- UTF-32
- 안티디버깅
- Dynamic안티디버깅
- UTF-16
- Visual Studio
- 서비스프로세스
- 리버싱핵심원리
- JIT
- CP949
- 분석 보고서
- Static안티디버깅
- DebugBlocker
- Advanced안티디버깅
- .net
- ImageSwitching
- Exe2Aut
- dotPeek
- PEImageSwitching
- PEImage
- CodeEngn
- 리버싱
- x32dbg
- Python
- Self-Creation
- Today
- Total
-榮-
[CodeEngn] Advance RCE L04 본문
● CodeEngn Advance RCE L04 문제
◎ 파일 실행 화면
◎ 패킹 및 난독화 여부 확인
● CodeEngn Advance RCE L04 풀이
[그림 1]에서 본 실패 문자열("Error!")을 찾기 위해 [Search for > All referenced text strings]를 확인했습니다.
All referenced text strings에는 문자열이 보이지 않았고, [Search for > All intermodular calls]도 같았습니다.
패커가 없으며, 문자열도 모듈도 안 보이는 것을 보면 암호화되어있다고 추측할 수 있습니다.
Step Over[F8]로 진행하다 보면 반복문이 나옵니다. 이 반복문은 [00401006]부터 [004011A7]까지 25h를 XOR 하는 코드입니다. 즉 이 반복문은 코드를 복호화하는 코드입니다.
반복문이 종료되면 [00401006]부터 [004011A7]까지 변경된 것을 확인할 수 있습니다.
복호화된 내용이 코드인 것을 볼 수 있습니다. 복호화를 했다지만 코드가 제대로 확인되지 않으므로 OEP를 00401006으로 하고 덤프를 떠주겠습니다.
[※참고]
덤프 파일 생성은 CodeEngn Basic RCE L09의 "StolenByte를 제자리로 옮기고 덤프 파일 만들기"
생성된 덤프 파일을 디버거에 올리면 [그림 8]과 같은 오류가 발생합니다. [그림 8]의 오류를 해결하기 위해 Rebuild 해줍니다.
Rebuild 한 파일을 디버거에 올립니다.
이제 코드가 제대로 확인되니 [그림 1]에서 본 실패 문자열("Error!")을 찾기 위해 [Search for > All referenced text strings]를 확인했습니다.
실패 문자열 주소로 이동하면 분기점(0040117B)을 바로 확인할 수 있습니다.
코드를 보면 00401172가 분기 조건으로 IstrcmpA 함수로 입력받은 Serial과 입력받은 Name으로 만든 Serial을 비교한다는 것을 알 수 있습니다.
IstrcmpA 함수 전까지 실행시키면 [00403104]에 입력받은 Name("CodeEngn")으로 만들어진 Serial을 확인할 수 있습니다.
[※참고]
Name을 사용한 Serial 생성 방법은 CodeEngn Advance RCE L04 Serial 생성 분석을 참고해 주세요.
● CodeEngn Advance RCE L04 확인
+α OllyDbg 'Ctrl + A'
풀이 [그림 7]에서 덤프를 뜨고 Rebuild 했지만 Advance RCE L04의 상황에서는 OllyDbg의 'Ctrl + A'(코드 재분석) 기능을 사용하면 바로 [그림 9]의 화면을 볼 수 있다.
'CodeEngn > Advance' 카테고리의 다른 글
[CodeEngn] Advance RCE L05 (0) | 2021.04.02 |
---|---|
[CodeEngn] Advance RCE L04 Serial 생성 분석 (0) | 2021.04.02 |
[CodeEngn] Advance RCE L03 Serial 생성 분석 (0) | 2021.03.31 |
[CodeEngn] Advance RCE L03 (0) | 2021.03.31 |
[CodeEngn] Advance RCE L01 (0) | 2021.03.31 |