study/악성코드 분석

WannaCrypto 웜 동작 함수 찾기 (2)

lucykorea414 2024. 2. 22. 19:02
728x90

저번 글에 이어,

워너크립토의 메인함수... sub_407BD0을 분석해봅쉬당

 

 

더블 클릭

 

들어오자마자 beginthreadex 가 보이는데 이건 쓰레드를 만드는 함수

출처: https://learn.microsoft.com/ko-kr/cpp/c-runtime-library/reference/beginthread-beginthreadex?view=msvc-170

ㅎㅎ

 

 

쓰레드를 만들때 당연히 start_address 가 있어야함

 

 

워너크립토에서는 start_address가 loc_407720 으로 확인됨!

 

더블클릭~

 

여기 안에도 beginthreadex가 보임!!!!

 

그 위에 있는 sub_409160을 더블클릭~

 

여기서 GetAdapterInfo 라는 함수가 보이는데, 이 함수가 중요함!!

 

출처: https://learn.microsoft.com/ko-kr/windows/win32/iphlp/managing-network-adapters-using-getadaptersinfo

 

네트워크 어댑터를 식별하는 함수이다!

 

여기서 어댑터 드라이버에 대한 정보를 가지고 오고 이후에 네트워크 어댑터의 ip, subnet, gateway 주소 등을 가져오게 됨

 

-> 이거를 직접 확인해보기 위해서 직접 실행해보자!! (패치 해야함)


패치: 네트워크 어댑터 정보 확인

함수의 시작 부분 위치인 409160 을 스페이스바 눌러서 확인하고, 올리디버거로 그 위치 따라가보자

 

똑같이 되어있는걸 볼 수 있음!!

 

지금 보면 409160 의 헥스가 83EC 14 로 되어있는데 이부분을 CCEC 14로 변경하자 (ctrl+E 눌러서 edit)

변경 전                                                        ->                                                        변경 후

 

Keep size 체크 풀면

 

요렇게 패치가 됩니당

 

그럼 얘를 copy to executable > Selection 누르고

 

 

새로운 창 떴으면 마우스 오른쪽 클릭 눌러서 파일 저장해줄게용

 

C 드라이브에 같은 이름(a.exe)로 저장해줍니다

 

얘를 아이다로 다시 분석을 해보면 CC 패치 해준 부분이 저렇게 int 3로 보인다!!

 

728x90