코드 엔진 Malware Analysis 마지막 문제이다.
마지막 문제이니만큼 Flow Chart가 굉장히 길다.
이런 Flow로 코드를 분석하는 건 많이 해보지 않아서,
긴 Flow에 먼저 겁을 먹게 된다.
뭐 간단하게 대충 훑어보자.
문제에서 찾아야 할 것은 다른 악성코드를 실행하는 부분을 찾는 것이다.
'실행'이 키 포인트이다.
다운로더, 드로퍼 등 악성코드에서 다른 악성코드를 실행시키는 것은 흔한 일 같다.
그래서 이 문제를 푸는 것이 꽤 도움이 될 것 같다(악성코드 분석에서).
Flow chart를 볼 때 우리가 볼 수 있는 것은 한정적이다.
문자열 몇 개, 함수 이름 몇 개, Flow(True or False)
훑어보니 다음의 몇 부분이 눈에 띈다.
.inf라고 쓰여있다.
inf는 검색해 보니,
install 설정 파일로, 어떤 프로그램을 설치할 때 필요한 각종 정보(information)가 담긴 파일
라고 한다.
무언가를 설치하려나보다.
여기서는 아무래도 새로운 악성코드 파일을 설치할 것으로 예상된다.
이 부분에서는 Execute라는 키워드가 보인다.
A 함수와 C 함수는 ShellExecuteExA라는 함수가 쓰였기 때문에 의심되고,
B 함수는 ".exe"라는 문자열이 쓰이기 때문에 의심된다.
하지만 B함수는 위의 flow로 false -> false -> B 함수 이런 식으로 두 번의 false를 거쳐 오게 된다.
뭔가 메인 흐름은 아닌 것 같다.
게다가 그냥 ".exe"라는 문자열이 쓰인 거지, 이 파일을 실행한다는 것은 이 flow에서 확신할 순 없다.
때문에 함수 A, C를 더 살펴보자.
C함수는 A함수에서 false일 때 실행된다.
즉, C 함수의 ShellExecuteExA 함수는 A 함수의 ShellExecuteExA 함수가 실패했을 때의 차선책이다.
그러므로 내 생각에는,
A 함수(loc_4025F4)가 악성코드 개발자가 가장 이상적으로 또 의도적으로 새로운 악성코드를 실행시키고자 하는 부분인 것 같다.
'Malware Analysis' 카테고리의 다른 글
[CodeEngn] Malware Analysis L07 (0) | 2023.08.06 |
---|---|
[CodeEngn] Malware Analysis L06 (0) | 2023.08.06 |
[CodeEngn] Malware Analysis L05 (0) | 2023.08.06 |
[CodeEngn] Malware Analysis L04 (0) | 2023.08.06 |
[CodeEngn] Malware Analysis L03 (0) | 2023.08.06 |