일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CodeEngn
- UTF-16
- 분석 보고서
- JIT
- 서비스프로세스
- 리버싱핵심원리
- Python
- ImageSwitching
- RedLine Stealer
- hxd
- 디버깅
- 리버싱
- x32dbg
- OllyDbg
- 안티디버깅
- dotPeek
- Visual Studio
- Advanced안티디버깅
- Self-Creation
- DebugBlocker
- Dynamic안티디버깅
- PEImageSwitching
- IL코드
- Static안티디버깅
- 서비스디버깅
- UTF-32
- Exe2Aut
- .net
- PEImage
- CP949
- Today
- Total
-榮-
[CodeEngn] Basic RCE L03 (+α All intermodular calls) 본문
● CodeEngn Basic RCE L03 문제
C언어에서의 strcpy 같은 문자열 비교 함수가 비주얼 베이식에서는 어떤 이름인지 찾는 문제입니다.
주어진 파일을 분석하여 비주얼베이직에서의 스트링 비교 함수를 찾아봅시다.
◎ 파일 실행 화면
우측 사진의 [Regcode]에 입력된 문자열과 파일 내부의 문자열을 비교하여 일치할 경우, 성공 MessageBox를 띄우는 것으로 추정됩니다.
"PASSWORT FALSCH !"를 기준으로 분기점을 찾으면 될것 같습니다.
● CodeEngn Basic RCE L03 풀이
앞에서 추측한 "PASSWORT FALSCH !" 문자열을 찾아봅시다.
해당 문자열 위치로 이동하면 해당 화면이 나옵니다.
실패로 떨어지는 분기점을 찾기 위해 화면을 올려보면 성공 문자열과 비교 문자열을 확인할 수 있습니다.
004028BA에 BP[F2]를 걸고 실행[F9]하면 [EBP-58]에 입력받은 문자열("abcd")을 확인할 수 있으며, 입력받은 문자열과 "2G83G35Hs2"문자열을 vbaStrCmp 함수를 통해 문자열 비교하는 것을 확인할 수 있습니다.
● CodeEngn Basic RCE L03 확인
+α 함수를 알고 있다면...
◎ 함수 이름을 알고 있으며, 특정 부분의 함수를 찾을 때
[All intermodular calls]에서 파일에 로딩된 함수들을 확인할 수 있다.
[Destination]을 클릭하여 이름순으로 정렬 후 원하는 함수에서 [우클릭 > Set breakpoint on every call to [함수 이름]]을 클릭하면 모든 [함수 이름]에 BP가 걸린다.
이후 실행[F9]하면
같은 [함수 이름]에서도 찾는 함수의 주소를 찾을 수 있다.
'CodeEngn > Basic' 카테고리의 다른 글
[CodeEngn] Basic RCE L07 (0) | 2021.03.23 |
---|---|
[CodeEngn] Basic RCE L06 (0) | 2021.03.21 |
[CodeEngn] Basic RCE L05 (+α UPX 패킹 상태에서 OEP 찾는 법) (0) | 2021.03.21 |
[CodeEngn] Basic RCE L04 (+α IsDebuggerPresent 우회) (0) | 2021.03.21 |
[CodeEngn] Basic RCE L01 (+α 패치파일 만드는 법) (0) | 2021.03.20 |