Mylabs

data code 분석을 위한 ida의 사용법 & Sality.L 본문

RCE

data code 분석을 위한 ida의 사용법 & Sality.L

[Edge] 2009. 4. 27. 23:46
IDA pro 에서 "C" 단축키가 해주는 일~

Sality.L이 3주동안 내 머리를 미치게 만들고 있다...
슬슬 본체와 바닥이 드러나려고 하고있다.. 머지 않아 좋은 결과물이 나오지 않을까 하는 기대심이 한가득이다.

IDA는 디어셈블 툴중에서도 단연 으뜸으로 인정받고 있는 도구이다.
강력한 기능들과 더불어 Hexrays plugin은 IDA를 더욱더 빛나게 해주는 디컴파일 플러그인이다.
만든사람이 천재로 불린다는..ㅋ
이런 강력한 IDA에 대해서 작은 기능( __)ㆀ 하나 소개하려 한다.

악성코드들중에 정상 파일을 감염시켜 숙주를 잡고 그 숙주에 기생을 하는 형태를 "파일 바이러스" 라고 지칭한다. 이 파일 바이러스들은 정상적인 PE의 개념(?)과는 조금 다른점이 있다. 

 - 정상적인 PE들은 보통 각 섹션의 특성에 맞게 코드들이 위치해 있다. 즉, 므슨 말인고 하니..
   .text 섹션 에는 실지로 실행되는 코드들이..
   .data 섹션 에는 코드실행에 있어 쓰이는 각종 데이터들이 위치해 있게 된다.
   물론 여타 다른 섹션들도 그들만의 특성들과 특징들로 데이터들을 담고 있다.

자.. 하지만 파일 바이러스는 그렇지 않다.
자신의 코드로 실행의 흐름을 변경하기 위해, 원래의 정상 코드를 좀 수정을 하게 된다.
수정된 코드는 감염된 시스템이 순차적으로 opcode들을 한줄 한줄 실행하면서 결국엔 바이러스가 하고자 하는 본래의 목적을 위한 코드로 실행의 흐름을 바꾸게 된다.

물론 이 바이러스의 코드들은 여러가지 방법으로 기생하게 된다. 섹션을 한개 더 생성하거나 또는 원래의 섹션을 늘려서 그곳에 코드를 넣거나.. 하는 방법들로 말이다.

이렇게 기생하게 되는 바이러스 코드안에는 수정된 원래의 코드들도 포함되어 있다.
왜?! 제대로 만든 또는 제대로 감염된 파일 바이러스는 자신의 코드를 실행하고도, 숙주파일의 정상 실행을 위해 수정한 코드를 원복시키기 때문이다. 물론 이는 숙주가 실행되어 메모리에서 일어나는 일련의 과정을 말하는 것이다.
코드를 원복시키는 이유는 사용자가 감염의 여부를 쉽게 알아차리지 못하게 하기 위함이다.


서두가 길었다.... 이렇게 바이러스 코드는 기존의 text코드 섹션이 아닌 자신의 코드는 엉뚱한 데이터 섹션의 형태로 기생하게 된다.
물론 ollydbg에서는 코드 섹션이 아닌 다른 부분들도 analysis를 대부분 해준다.
하지만 ida는 code섹션만을 디어셈블 해준다.
데이터로 분석된 코드들을 opcode 로 analysis하고자 한다면 분석을 위한 루틴의 시작 offset으로 이동해서
과감히 "C"를 눌러보자. 다음과 같이 IDA가 분석을 해준다. 물론 2번째 그림의 주석은 안달아 준다.. -0-

[ analysis 되기전의 데이터 형태의 코드 ]
[ analysis 된 코드 ]

'RCE' 카테고리의 다른 글

Ollydbg plugin - OllyFlow / OllyGraph  (2) 2010.05.06
PEview Bug??  (0) 2009.08.26
ollydbg plugin - StrongODv0.2.3  (1) 2009.06.11
ida pro 5.2 bug  (0) 2009.05.19
Stack 의 구조 - Call문의 동작과 스택의 생성  (0) 2009.05.01