본문 바로가기

IDA 실습-2 본문

보안/악성코드

IDA 실습-2

Seongjun_You 2022. 9. 6. 20:24

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
Comments