IDA 실습-2 본문
10. 0x1000ff58에서 서브루틴으로 수백 라인은 문자열을 비교하기 위한 일련의 memcmp비교다.
robotwork와 문자열 비교가 성공적으로 이뤄지면 무슨 일이 일어날까
세 개의 레지스터 값을 사용하는 모습이다.
11 PLIST 익스포트는 무슨 역할을 하는가
플랫폼 id와 버전을 확인한다.
12 그래프 모드를 이용해 sub_10004E79 상호 참조 그래프를 그려보자.
이 함수에 진입하기 위해 호출하는 API 함수는 무엇인가?
해당 API 함수에만 기반을 두고 이 함수를 어떤 이름으로 변경하겠는가?.
사용자 언어 정보를 공격자에게 전송한다고 추측할수있다.
그 기능에 맞게 함수 이름도 변경해주었다.
13 DllMain 이 직접 호출하는 윈도우 API 함수는 몇 개인가? 두 번째 깊이(depth of 2)에서 몇 개인가?
API함수는 4개이다.
strncpy, _strnicmp, CreateThread, strlen
14. 0x10001358에서 Sleep 호출이 존재한다.
(sleep까지 수 밀리초 값을 파라미터로 갖는 API 함수) 코드 후반부를 보면
이 코드가 수행되려면 프로그램이 얼마 동안 sleep 하는가?
주소 값이 들어가 있는데 0x0D를 더하면 30이 나온다.
해당 30을 atoi로 정수형으로 바꾸고
1000을 곱해주면 30000이 나온다.
30000ms는 30초이다.
15. 0x10001701에서 소켓을 호출한다. 세 가지 파라미터는 무엇인가?
세 개의 값을 push 한다.
검색해보면 domain, type, protocol의 인자 값이다.
16. 소켓과 IDA Pro에서 명명한 심볼 상수 기능을 이용하여
이 파라미터를 좀 더유용하게 할 수 있겠는가? 변경 후 파라미터는 무엇인가.
ALT+M 으로 Description설정 후 ctrl + M으로 확인 가능
17 명령어 opcode 의 0xED 의 사용법을 찾아보자.
이 명령어는 VMware 탐지를 수행하는 VMXh 매직 문자열로 사용한다.
이 악성코드는 이를 이용하고 있는가? VMware 을 탐지하는 다른 증거가 있는가?
alt +b 로 검색
R을 누르면 문자열로 전환된다.
해당 함수의 참조 영역 확인
문자열이 존재한다.
vm이 실행 중인지 확인을 하는 코드이다.
18 0x1001d988로 점프한 후 문자 복호화
제공한 파이썬 스크립트를 사용해야 하는데 에러 발생
파이썬 스크립트는 이곳에서 실행 가능
문자열을 이쁘게 보고 싶으면?
드래그 후 A를 누른다.
파이썬 스크립트를 보면
각 문자를 0x55으로 xor연산하는데
다시 복호화하고 싶으면 똑같이 0x55으로 xor 해준다.
'보안 > 악성코드' 카테고리의 다른 글
연습 샘플 분석 - 1 (2) | 2022.09.09 |
---|---|
악성코드 주요 행위 분석 (0) | 2022.09.08 |
IDA 실습-1 (0) | 2022.09.05 |
기초동적분석 (0) | 2022.08.22 |
기초 정적 분석 실습 (0) | 2022.08.08 |