본문 바로가기

IDA 실습-1 본문

보안/악성코드

IDA 실습-1

Seongjun_You 2022. 9. 5. 04:52

실습 예제

1. DLL entrypoint 주소

2. Imports 윈도우를 이용해 gethostbyname을 탐색

3. gethostbyname을 호출하는 명령어는 개수

4. 0x10001757에 위치한 gethostbyname호출을 통해 어떤 dns 요청이 이루어지는지 확인

5. 0x10001656에 있는 서브루틴에서 지역 변수 개수

6. 0x10001656에 있는 서브루틴에서 파라미터 개수

7. 디스어셈블리 내의 문자열 \cmd.exe /c찾기

8. \cmd.exe /c를 참조하는 코드 영역에서 무슨 일이 발생하는지 확인

9. 악성코드는 어떻게 dword_1008e5c4를 설정하는지 확인

 

1번은 간단하게 functions window에서 dll을 검색해서 ep를 찾는다.

 

 

0x1001516D가 entrypoint 주소이다.

 

 

 

2번은 imports에서 함수 검색이 가능하다.

 

 

3번은 참조하는 영역을 검색하여 찾아준다.

단축키 ctrl + x로도 가능하다.

 

 

 

p는 호출, r은 읽기이다.

p의 개수가 정답이다.

 

4번은 일단 g를 통해 주소를 이동해준다.

함수 형식을 보면 인자 값으로 name을 받는 것을 알 수 있다.

0x10019040의 영역을 확인한다.

 

주소 값이 들어가 있다. 리틀 엔디안 방식이라 거꾸로 적혀있다.

해당 값에 0x0D를 더해 이동해준다.

pics.praticalmalwareanalysis.com에서 요청이 이루어진다.

 

 

5,6번은 같이 풀 수 있다. 단축기 G를 통해 이동해준다.

 

음수는 지역변수, 양수는 파라미터이다.

 

7번은 문자열을 검색해서 찾을 수 있다.

 

 

 

8번은 일단 그래프 형태로 함수의 구조를 보았는데 계단 형식이다.

이는 백도어 프로그램에서 자주 볼 수 있는 형태이다.

 

디렉터리 정보를 통해 분기문이 갈라진다.

 

각 문자열들에 따라 루틴이 달라진다.

이는 공격자가 실행 명령어를 실행하기 위한 세팅 작업으로 생각할 수 있다.

 

 

9번은 참조하는 영역 검색 후 write 하는 곳을 검색한다.

 

sub_10003695함수의 반환 값을 사용하니 해당 함수로 들어가 준다.

 

GetVersionExA를 통해 dword_1008e5c4를 설정한다.

'보안 > 악성코드' 카테고리의 다른 글

악성코드 주요 행위 분석  (0) 2022.09.08
IDA 실습-2  (0) 2022.09.06
기초동적분석  (0) 2022.08.22
기초 정적 분석 실습  (0) 2022.08.08
악성코드 분석 방법  (0) 2022.08.06
Comments