본문 바로가기

Malware Analysis

[CodeEngn] Malware Analysis L08

코드 엔진 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