Lab06-03
1. 서브루틴 sub_401040이 수행하는 것은 무엇인가?
위 코드에서 확인할 수 있듯이 sub_401030은 sub_401130이라는 새로운 함수를 호출하고 있다.
2. 서브루틴 sub_401130이 필요로 하는 매개변수는 무엇인가?
서브루틴 sub_401130은 var_8과 argv라는 두 개의 파라미터 값을 받는다는 것을 확인할 수 있다.
argv의 주소는 argv[0]과 동일하기 때문에 프로그램의 이름을 나타낸다고 볼 수 있다.
var_8이라는 인자에는 AL 레지스터 값을 할당한다. 즉, sub_401040의 리턴 값이 var_8이다.
3. 해당 함수(sub_401130)에서 switch문을 사용하여 할 수 있는 기능은 무엇인가?
sub_401130 함수는 switch 구문을 통해 에러메세지 출력, 파일 삭제, 디렉토리 생성, 레지스트리 값 설정, 파일 복사, 100초간 sleep 등의 기능을 한다.
- case 97 : C:\\Temp 디렉토리 생성
- case 98 : C:\\Temp 디렉토리에 IpExistingFileName을 cc.exe라는 이름으로 파일 복사
- case 99 : C:\\Temp\\cc.exe 파일 삭제
- case 100 : HKEY_LOCAL_MACHINE의 Run 레지스트리 오픈, RegSetValueEx API를 이용하여 C:\\Temp\\cc.exe 악성코드를 자동 실행 레지스트리에 등록
- case 101 : 100초간 sleep
- default : 에러메세지 출력
4. 해당 악성 프로그램에 호스트 기반에 대한 지표는 무엇인가?
호스트 기반의 행위는 ① Software\Microsoft\Windows\CurrentVersion\Run 레지스트리 값 변경과 ② C:\Temp\cc.exe 경로의 파일 생성(복사)으로 볼 수 있다.
5. 해당 악성 프로그램의 목적은?
switch 구문을 이용한 파일 생성, 삭제, 복사, 레지스트리 값 변경, sleep 등이 주 목적이다.
Lab06-04
1. Lab 6-3과 비교했을 때 main에서 변경된 부분들은 무엇인가?
Lab 6-3과 비교했을 때 Lab 6-4는 반복문 loop가 추가되었다.
위쪽 블록에서 cmp [ebp+var_C], 1440 부분이 있는데, 총 1440번의 반복문을 수행한다는 의미이고,
이 반복문 안에는 aSuccessParesedC 및 sub_401150 함수가 실행된다.
2. Lab 6-3과 비교했을 때 sub_401040에서 변경된 부분은 무엇인가?
먼저, 메인 함수를 확인해보면 for문이 추가된 것을 확인할 수 있다. 총 1440번의 for문을 실행한다.
파일을 분석하다 보면 HTML 파싱 함수는 sub_401040( ) 함수임을 확인할 수 있다. 하지만, 기존의 함수들과 비교해서 sub_401040( ) 함수는 인자값을 받는다는 점에서 다르다.
sub_401040( ) 함수 내부를 보면 sprintf( ) 함수로 입력된 "Internet Explorer 7.50/pma%d" 문자열은 &szAgent 안에 저장되고, 이 szAgent는 InternetOpenA( ) API의 첫 번째 인자인 User-Agent에 들어가게 된다.
3. 해당 악성 프로그램에서 네트워크 기반에 대한 지표는 무엇인가?
악성코드를 살펴보면 User-Agent를 사용한다는 것을 알 수 있는데 이는 User-Agent의 대표적인 예시인 브라우저를 사용한다는 것과 같은 의미로 이해할 수 있다. 따라서 이는 네트워크 기반 악성코드라고 볼 수 있다.
4. 해당 악성 프로그램의 목적은?
인터넷 연결 여부를 확인하고, User-Agent로 서버에서 브라우저를 감시하여 사용자가 인터넷을 사용하는지를 관리하는 목적이고, 이전 파일과 비슷하게 HTML 파싱도 존재한다.
'2021-2 STUDY > Reversing Study' 카테고리의 다른 글
Week04_DLL Injection, DLL Ejection (0) | 2021.11.13 |
---|---|
Week04_Dreamhack rev-basic-7, rev-basic-8 (0) | 2021.11.13 |
Week03_Dreamhack rev-basic-4, rev-basic-5, rev-basic-6 (0) | 2021.10.02 |
Week03_IAT, EAT (0) | 2021.10.02 |
Week02_패킹&UPX (0) | 2021.09.25 |