본문 바로가기

[REVERSING]/▶악성코드분석

320 DarkSeoulDropper 분석중 access violation 오류 문제해결

올해 금융권을 마비시켰던 악성코드인 DarkSeoulDropper를 분석중이었다.

아무탈없이 순조롭고 재미있게 분석중이였다. 그러나 0040230B주소에서 Access violation 오류가 났다.

이오류로 더이상 진행을 할 수가 없었다..

그래서 몇몇 지인분들께 도움을 청했으나 아무문제 없다고한다.

멘붕이다.. 난 왜그런거지? olly부터 immunity, ida까지 다돌려봤으나 결과는 마찬가지다.

도저히 안되겠다 인터넷에 분석완료 하셨다는 분들 블로그에 댓글로 도움을 요청했으나 언제 답변이 올지 알수없는상태다.

그래서 막연히 검색을 해서 오류에대해 검색결과 몇가지 힌트를 발견했다.

 

일단은 OS예외처리를 하기전에 간단히 예외 에 대해 알아보고 넘어갑시다.

1. EXCEPTION_ACCESS_VIOLATION(C0000005)

존재하지 않거나 권한없는 메모리 영역에 접근을할때 발생되는 예외(가장흔한)이다.

2.MOV DWORD PTR D5:[0], 1

- 메모리 주소 0은 할당된 영역이 아니다.

3.ADD DWORD PTR D5:[401000], 1

- Text섹션의 시작주소 401000은 READ 속성만을 가지고있다(write 속성없음)

4.XOR DWORD PTR DS:[800000000], 1234

- 메모리 주소 80000000은 Kernel 영역이라서 User 모드에서는 접근할수없다.

 

※힌트참조:http://cafe.naver.com/ehdl24eek/13505

 

 

힌트를 보니 답이 보인듯하다.

힌트의 2번 Text섹션의 시작주소 401000은 READ 속성만을 가지고있다(wRITE 속성없음) 이거라고 확신한다.

딱보면 CL값을 sourcce 레지스터에 XOR하여 값을 변경해야하는데 변경을 하지 못하는상태다.

즉 값을 변경한다는것은 WRITE한다는것이다.

 

 

 004195E9번지에 결과를 저장하려고할때 에러가 났다.

바로 PEVIEW를 열고 주소를 찾아보았다.

역시나 .RSRC 섹션의 BIN 0081 0412값의 첫번째 주소값이다.

이값을 변경하려고했는데 오류가났다.

 

 

예상했던대로 RSRC섹션에 읽기권한만 있고 쓰기권한은 없었다.

답을 점점 찾은것같아 마음이 조금 편안해지고있는것 같다.

저기에 80000000 WRITE 권한만 주면 될거같은데 될거같은데 그러나 방법을 어떻게 해야할지 생각이 안난다.

또다시 멘붕을 맞이하고 갑자기 머릿속에 떠오른 그.. 파.....이....썬 이었다.

그렇다 파이썬이다 내가 심심해서 인터넷으로 깔짝깔짝 배워서 써먹었던 언어다. 처음 접하고 굉장히 매력을 느꼈다. 내가 상상하고 생각한 그대로 결과물을 만들어준다.

쉽고 빠르다 그래서 c/c++보다 더좋으다 개인적으로.. 무튼..

혹시나 하는마음에 또다시검색 파이썬으로 PE를 컨트롤할수있는 모듈이 분명히 존재할것이라고 나는 굳게 믿었다.

아니 믿어야했다 지금 떠오르는 생각은 이방법밖에 없었다.

그리하여 찾은 모듈 바로 PEFILE!! 이다.

모듈을 찾고 대강 IDLE로 사용방법을 익히고 모듈을 분석해서 코드를 짰다.

 

 

50줄이 안된다.....

 

 

코드를 완성하고 py2exe로 실행파일로 만들고....

 

 실행해봤다..

투근한 맘으로 input filename 에 변경할 대상 실행파일을 입력하고, input the change section에 변경 대상 섹션을 입력한다.

그리고 추가할 권한번호를 입력하면 내가 짠루틴대로 실행하고 변경을 완료한 실행파일 re_dark.exe로 만들어준다.

 

 

짜잔~!! 보았는가~ 한치의 오차도없이 rsrc section의 characteristics 값 80000000이 추가되었다.

그리고 마지막 지푸라기를 잡고 올리를 실행하고 변경된 실행파일을 실행하고 access violation오류가 발생했던 곳까지가서 마지막 finish!!

step over하였다. 결과는 미션 클리어다 됬다 성공했다 해낸것이다. 크크크크크크 가슴이 후련하다. 뭔가 맺혀있던게 한방에 날려버린기분이다 ㅋㅋ

이제 이걸 응용해서 코드분석할때 내가 원하는 pe데이터들을 검색하는 프로그램도 만들 수 있을것같다.