MalwareAnalysis <Lab05.dll>
1. DllMain의 주소는 무엇인가?
- 0x1000D02E
DllMain : DLL의 메인 함수 DLL이 로드될 때 불림(4가지가 정의되어 있음 : dll 로드/언로드, thread 로드/언로드)
2. Imports 윈도우를 이용해 gethostbyname을 탐색해보자. 임포트 위치는 어디인가?
- 0x100163CC
3. gethostbyname을 호출하는 CALL 명령어는 몇 개인가?
- 9개
XREF = 상호참조. 어디서 호출하는지 알려줌
4. 0x10001757에 위치한 gethostbyname 호출을 보면 어떤 DNS 요청이 이뤄지는지 알 수 있는가?
- pics.praticalmalwareanalysis.com
gethostbyname : 서버 이름 또는 도메인(예. www.naver.com)으로부터 주소정보(IP Address)를 얻는다.
주소 정보는 local computer의 /etc/hosts 파일 또는 DNS 서버로 부터 얻는다.
eax에 이름 정보가 있는 것을 확인할 수 있다.
그렇다면 eax는 어디에서 왔을까? 일단 10019040 주소에 있는 데이터를 가져와서(off_10019040)
0D 를 더하고 있다.
1001 9194 + 0D = 1001 91A1
5. 0x10001656에 있는 서브루틴에서 IDA Pro는 지역 변수 몇 개를 인지하고 있는가? 20개
6. 0x10001656에 있는 서브루틴에서 IDA Pro는 파라미터 몇 개를 인지하고 있는가? 1개
7. Strings 윈도우를 이용해 디스어셈블리 내의 문자열 \cmd.exe /c를 찾아보자. 어디에 있는가?
- 0x100101D0
8. \cmd.exe /c를 참조하는 코드 영역에서 무슨 일이 발생하는가?
- 공격자의 실행 명령어를 실행하기 위한 세팅 작업이 일어난다.
ex) \cmd.exe /c notepad : 메모장 프로그램이 끝날 때까지 다른 것을 실행하지 않음(다른 명령어를 받지 않음)
9. 같은 영역 0x100101C8에서 dword_1008E5C4는 경로를 지정하는 전역 변수로 보인다. 악성코드는 어떻게 dword_1008E5C4를 설정하는가? (힌트 : dword_1008E5C4의 상호 참조를 이용하라)
- GetVersion이라는 함수를 통해서 커널버전을 저장한다.
10001767+22 지점에서 write 되고 있다.
10. 0x1000FF58에서 서브루틴으로 수백 라인은 문자열을 비교하기 위한 일련의 memcmp 비교다. robotwork와 문자열 비교가 성공적으로 이뤄지면 무슨 일이 일어나는가? (memcmp가 0을 반환)
- robotwork는 작업 시간을 출력하는 것으로 보인다. 문자열도 만들고 네트워크를 통해 전송한다.
11. PSLIST 익스포트는 무슨 역할을 하는가?
- 프로세스 리스트를 분석
12. 그래프 모드를 이용해 sub_10004E79 상호 참조 그래프를 그려보자. 이 함수에 진입하기 위해 호출하는 API 함수는 무엇인가?
- StartAddress → CreateThread()를 통해 백도어 함수를 진행한다.
해당 API 함수에만 기반을 두고 이 함수를 어떤 이름으로 변경하겠는가?
- my_checkLang
13. DllMain이 직접 호출하는 윈도우 API 함수는 몇 개인가?
- 너무 많다!
두 번째 깊이(depth of 2)에서 몇 개인가?
- 2~30개 일 것으로 추정
14. 0x10001358에서 Sleep 호출이 존재한다.(sleep까지 수밀리초 값을 파라미터로 갖는 API 함수) 코드 후반부를 보면 이 코드가 수행되려면 프로그램이 얼마동안 Sleep 하는가?
- 30초
10019020으로부터 데이터(0x100192AC)를 가져와
0D를 더하고
여기에 있는 아스키 값("30")을
int형(30)으로 바꾸고(atoi)
3E8을 곱한ㄷㅏ.
따라서
30 * 1000 ms = 30 s
'Study > Reversing' 카테고리의 다른 글
Lena 4번 풀이/Rena's Reversing Tutorial 04 (0) | 2021.11.10 |
---|---|
악성코드 주요 행위 분석 (0) | 2021.11.10 |
Lena 3번 풀이/Rena's Reversing Tutorial 03 (0) | 2021.11.03 |
악성코드 분석 (0) | 2021.11.03 |
Lena 2번 풀이/Rena's Reversing Tutorial 02 (0) | 2021.10.27 |