보안/악성코드 분석

악성코드 분석 시 파일 내 문자열 확인 도구 (BinText, Strings) 기능 및 사용법

Security Engineer 2024. 7. 22. 00:30

그림0 - BinText와 String 실행 시 화면

Bin Text 기능 및 사용법

  • Binary 파일에서 ASCII 및 유니코드 등이 문자열 정보를 추출하여 보여주는 분석 도구.
  • 파일 내 사용하는 메시지, URL, DLL, API 등을 확인할 수 있어 악성코드 정적 분석 시 유용하다.
  • 다운로드 URL: https://www.majorgeeks.com/files/details/bintext.html

그림1 - BinText 아이콘

그림1의 아이콘을 더블클릭하여 파일을 실행한다.

그림2 - BinText 실행

BinText 실행 후 Browse를 클릭하여 파일 경로를 불러온 후 Go를 누르거나, 파일을 드래그 앤 드랍하여 분석한다.

그림3 - Lab01-01.exe 파일 분석

 

그림3과 같이 파일을 불러온 후, Text 항목에서 해당 파일의 Strings 값을 확인할 수 있다.

특정 문자열 검색 하기 위해 하단의 검색창에 문자열 입력 후 Find를 눌러 검색한다.

 

그림4 - kernel 문자열 검색

kernel 문자열을 검색 후 Find를 누르면 해당되는 문자열을 찾아준다.

이를 통해 해당 파일에 특정 문자열이 존재하는지, 특정 DLL 파일, API 함수, URL 등을 확인할 수 있다.

 

 

 

strings 기능 및 사용법

 

strings는 설치 후 cmd 창에서 실행해야 한다.

그림5 - cmd 창 관리자 권한으로 실행

window + R 입력 후, cmd 를 입력하여 관리자 권한으로 실행한다.

그림6 - strings 설치 경로로 이동

strings 프로그램이 설치된 폴더의 경로를 복사한 후, cmd 창에 붙여넣고 해당 폴더로 이동한다.

파일 경로: C:\malware\Strings

입력 명령어: cd C:\malware\Strings

ls 명령어를 입력하여 strings.exe 프로그램이 해당 폴더에 있는지 확인할 수 있다.

 

 

그림7 - strings.exe 프로그램 기능 확인

strings.exe를 입력하여 strings 프로그램의 기능을 확인할 수 있다.

 

< Strings 옵션 >

  • -a: 모든 문자열 출력
  • -b: 각 문자열 뒤에 바이트 오프셋 표시
  • -f: 문자열 검색 시 지정한 패턴 사용
  • -n: 최소 길이 지정 (기본값 4)
  • -o: 결과를 표시하는 파일의 오프셋 지정
  • -q: 출력을 조용히 처리
  • -s: 문자열을 검색할 시작 위치 지정

 

그림8 - 문자열 추출 결과

strings -a <분석할 파일 위치>를 입력하여 분석할 파일의 문자열을 나열한다.

 

 

악성코드 정적 분석 시 string(문자열)은 해당 파일의 정보들을 담고 있다.

대표적인 정보로 URL, 도메인, DLL, API 함수 등이 있으며, 이를 통해 해당 파일의 행동을 대략적으로 유추할 수 있다. 정적 분석을 통해 해당 파일의 행동을 유추한 후 동적 분석을 통해 내가 유추한 행동을 실제로 하는지 분석하는 것이 악성코드 분석 방법 중 하나이다.