티스토리 뷰



실습6-1

1. main이 호출하는 서브루틴만으로 발견한 주요 코드 구조는 무엇인가?

if문으로 되어있으며, 인터넷 상태를 받아와 있터넷이 연결 상태를 받아와 Success: Internet Connection를 출력하거나 Error 1.1: No Internet을 출력한다.



2. 0x40105F에 위치한 서브루틴은 무엇인가?

프로그램을 실행해 보면 위와같이 출력된다. 0x40105F는 프로그램 특성상 유추해 보면 printf 이다.



3. 이 프로그램의 목적은 무엇인가?


InternetGetConnectedState 함수를 이용해 값을 받아와 1 = True (인터넷에 연결) 이면 Success: Internet Connection를 출력하거나 0 = False (인터넷에 연결되어있지 않음)이면 Error 1.1: No Internet을 출력한다.

실습 6-2

1. main 함수가 호출하는 첫 번째 서브루틴은 무슨 오퍼레이션을 수행하는가?

인터넷 연결 상태 확인 



2. 0x40117F 에 위치한 서브루틴은 무엇인가?

문자열 뒤에 서브루틴 호출, Printf로 유추할 수 있다.





3. main 함수가 호출하는 두 번째 서브루틴은 무엇인가?




4. 이 서브루틴에서 사용한 코드 구조는 어떤 유형인가?

InternetReadFile 로 특정 문자을 읽어와 4010E5에서 3C, 21, 2D, 2D (와 비교 



5. 이 프로그램에서 네트워크 기반의 행위 (indicator)가 존재하는가?

InternetOpenA, InternetOpenUrlA, InternetCloseHandle등 API함수 사용

6. 이 악성코드의 목적은 무엇인가?

인터넷 연결 활성여부를 확인하여 http://www.practicalmalwareanalysis.com/cc.htm 웹 페이지를 다운로드 한다.


실습 6-3

1. main 함수 호출과 실습 6-2의 main 함수와 비교하라. main이 호출한 새로운 함수는 무엇인가?
401130 함수(Switch Case 함수)가 새로 호출 됨


2. 새로운 함수는 어떤 인자를 갖는가?

sub_401130(char a1, LPCSTR lpExistingFileName)


3이 함수가 가지는 주요 코드 구조는 무엇인가?

6-1의 사진을 보면 Switch case문이 사용됨을  알 수 있다.

4.이 함수는 무슨 일을 하는가?

디렉토리 생성,  파일 삭제, 레지스트리 값 설정, Sleep (100초) 기능이 있다.

5.이 악성코드에서 호스트 기반의 행위(indicator) 가 존재하는가?

존재한다.




6.이 악성코드의 목적은 무엇인가?

인터넷 연결 확인, 연결 없으면 에러 메시지 출력
연결 되어 있다면 특정 웹페이지 접속, 레지스트리 설정,  100초 슬립

실습 6-4

1. 실습 6-3과 6-4의 main 함수에서 호출한 함수 간의 차이점은 무엇인가?


인터넷 연결 상태를 받아와  다른 함수를 탄다.

2. 어떤 새로운 코드 구조가 main 함수에 추가됐는가?

for문 구조가 추가되었다.



3. 이 실습의 HTML 함수 파싱이 기존 실습과 차이점은 무엇인가?

(좌 : 6-3 , 우: 6-4) 

기존과 달리 인자값을 하나 받아온다.




받아온 인자값은 %d로 출력한다.


4. 프로그램이 얼마나 오래 동작하는가?(인터넷에 연결돼 있다고 가정함)

슬립 60초 (1분 ) *1440 = 1440분 = 24시간 


5. 이 악성코드에서 네트워크 기반의 행위(indicator)가 존재하는가?

존재한다



6. 이 악성코드의 목적은 무엇인가?

인터넷 연결 확인, 연결 없으면 에러 메시지 출력
연결 되어 있다면 특정 웹페이지 접속, 파일삭제, 레트스트리 설정, 100초 슬립 기능.
프로그램은 24시간 동작.


댓글