부동산, 채권, 주식, 경제흐름 자료를 모아 보는 블로그입니다.

Script Downloader 분석 - 3 ( WINHTTP ) 본문

Analysis

Script Downloader 분석 - 3 ( WINHTTP )

runardor 2016. 3. 31. 23:09

이번장에서는 앞장에서 언급한


1. 파일 생성기능

2. 파일 전송기능

3. 파일 실행기능


1, 2, 3중에 파일전송과 관련된 내용(ADO, WINHTTP, XMLHTTP)을 3,4장에 나누어 다룰 예정입니다.




ADO 개념은 Script Downloader 분석 - 1 ( http://runardor.tistory.com/8 )을 참고하시면 됩니다.



WINHTTP


이름에서 유추가 가능하듯이 WINHTTP는 HTTP 프로토콜을 기반으로 통신하는 객체 입니다.


사용법은 아래와 같습니다.


아래와 같이 WINHTTP 객체를 생성한후 Method를 호출하여 통신을 수행하면됩니다.



아래는 WINHTTP 예제 풀 소스코드로 인터넷에 존재하는 오픈소스를 가져왔습니다.


출처 : http://www.robvanderwoude.com/vbstech_internet_download.php



한글로 주석을 단부분은 설명을 위해 작성되었습니다. ( 실제 예제 소스코드는 영문으로 주석이 달려있습니다. )



위의 소스코드는 다운로드만을 위한 예제입니다. ( Shell 객체를 사용하여 실행하는 부분이 존재하지 않습니다.)



앞장에서 설명드린것과 같이 기본적으로 파일생성을 위한 FSO 객체 생성 및 Method를 사용하는것을 확인할 수 있습니다.



또한 파일전송을 위해 WINHTTP 객체를 사용하여 DATA를 송수신하게 되고 이를 파일에 써주게 됩니다.



WINHTTP의 특징을 살펴보면 아래와 같습니다.


1. HTTP를 기반으로 동작하는 객체이므로 Get, Post 방식으로 요청을 해주어야 합니다

2. Parameter는 평문 형태입니다.

3. 리턴되는 DATA는 Ascii 형태이며, HTTP Body에 포함되어 리턴됩니다.



여기서 추가적으로 자세히 살펴봐야하는 부분은 아래의 코드입니다.


objFile.Write Chr( AscB( MidB( objHTTP.ResponseBody, i, 1 ) ) )


ASCII 형태의 평문 DATA를 1Byte씩 끊어 읽어 해당값을 변환해야만 파일로 쓸 수 있는 특징이 존재합니다.


추후 설명드린 XMLHTTP와는 다른 WINHTTP 고유의 특징이라 볼 수 있습니다.



잠깐!!!!!!


여기서 하나의 궁금증이 들게 됩니다. 


앞장에서 설명드린 ADO 객체는 위의 코드에 존재할까요???


답은 " NO " 입니다.



왜 그럼 ADO 객체 관련 코드가 없을까요?? 


그 이유는 다음 장에서 XMLHTTP를 설명하면서 언급하도록 하겠습니다. ( WINHTTP와 XMLHTTP를 한장에 언급하기 내용이 다소 길어 2개의 장으로 나누었습니다. )






'Analysis' 카테고리의 다른 글

메모리 교체형 악성 코드 분석 - 1  (0) 2016.04.04
Script Downloader 분석 - 4 ( XMLHTTP)  (0) 2016.04.01
Script Downloader 분석 - 2  (0) 2016.03.30
Script Downloader 분석 - 1  (0) 2016.03.30
Comments