6번 문제이다. 코드 엔진에는 악성코드 분석에 대해 8문제가 있으니, 이 문제를 풀면 두 문제가 남는다.
이 문제에서는 악성코드 Flow의 일부를 제공해 주는데, pdf 파일로 제공된다.
이렇게 생겼는데, 화질이 좋지 않으니 직접 다운로드한 파일을 참고하자.
문제에서 구하라고 한 것은 Thread Mutex가 무엇인지이다.
그렇다면 먼저 Thread Mutex에 대해 알아야 할 것이다.
구글링 해보면 좋은 자료가 많다.
간략히 이해한대로 설명하면,
여러 개의 쓰레드가 사용되고, 공유 자원이 사용될 때 문제점이 발생한다.
두 개 이상의 쓰레드가 동시에 자원에 접근하게 될 때
하나 이상의 쓰레드의 작업이 제대로 적용되지 않는 문제점이다.
(너무 간략하게 설명했다. 뮤텍스에 대해 좋은 예를 들어 설명해주는 글들이 많으니 그런 글들을 참고하면 좋을 것 같다.)
이렇게 문제가 생기는 이유는 공유 자원을 동시에 접근하기 때문이다.
때문에 뮤텍스를 사용하여 이 자원에 lock을 걸어둠으로써 해결할 수 있다.
그럼 이 Flow Chart에서 Thread Mutex를 찾아보자.
뮤텍스를 생성하는 부분은 위 두 부분이다.
CreateMutexA 함수를 사용하고 있는데, 이 함수에 대해 살펴보자.
https://learn.microsoft.com/ko-kr/windows/win32/api/synchapi/nf-synchapi-createmutexa
HANDLE CreateMutexA(
[in, optional] LPSECURITY_ATTRIBUTES lpMutexAttributes,
[in] BOOL bInitialOwner,
[in, optional] LPCSTR lpName
);
세 번째 인자인 lpName이 뮤텍스 개체의 이름이다.
그럼 위에 Flow Chart에서 생성된 두 개의 뮤텍스 개체의 이름을 알 수 있다.
두 번째 뮤텍스 생성하는 부분은, 바로 위에서 쓰레드를 생성하고 있다.
두 번째 뮤텍스가 Thread Mutex 인가보다.
'Malware Analysis' 카테고리의 다른 글
[CodeEngn] Malware Analysis L08 (0) | 2023.08.06 |
---|---|
[CodeEngn] Malware Analysis L07 (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 |