Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/paul-tew/lifer
ForensicsInformation GatheringDigital ForensicsBinary Analysis
GitHubpaul-tew/lifer

lifer

Windows 링크 파일(바로가기) 검사기

저장소 보기
68912년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

lifer

Windows 바로 가기 파일(링크 파일)을 조사하기 위한 포렌식 도구

개요

'lifer'는 Harry Parsonage의 백서 'The Meaning of Link Files in Forensic Examinations'에서 영감을 받은 Windows 또는 *nix 명령줄 도구로, 여기에서 확인할 수 있습니다. 이 도구는 제가 컴퓨터 포렌식 분석가로 일하면서 링크 파일에서 특정 정보를 추출하여 조사에 도움을 주기 위해 만든 경량 도구로 시작되었습니다. 현재 은퇴했지만 이 도구의 유용성을 확장하고 다른 사람들도 혜택을 볼 수 있도록 공개하려고 합니다.

추출된 정보는 온라인에서 여기에서 찾을 수 있는 Microsoft Open Specification Document 'MS-SHLLNK'를 따릅니다. 현재 작성 시점에서 사양 버전 4.0의 대부분이 구현되었습니다. 향후에는 열리지 않은 점프 목록 파일의 구문 분석을 구현할 예정입니다.

사용 예

Test 디렉터리에 있는 파일의 세부 정보와 사용 방법은 '.\Test\Tests.txt' 파일에 제공되어 있습니다. 다음은 간략한 개요입니다...

도구를 설치한 후 명령줄 셸(예: bash 또는 Powershell)을 열고 './lifer/src' 디렉터리에서 다음을 입력합니다:

root@kitploit:~
lifer -s ./Test/Test1.lnk

다음과 같은 출력이 표시됩니다:

root@kitploit:~
LINK FILE -------------- .\Test\Test1.lnk
{**OPERATING SYSTEM (stat) DATA**}
  Last Accessed:       2017-04-18 20:28:19 (UTC)
  Last Modified:       2017-04-18 20:28:19 (UTC)
  Last Changed:        2017-04-18 20:28:19 (UTC)

{**LINK FILE EMBEDDED DATA**}
  {S_2.1 - ShellLinkHeader}
    Attributes:          0x00000020   FILE_ATTRIBUTE_ARCHIVE
    Creation Time:       2008-09-12 20:27:17 (UTC)
    Access Time:         2008-09-12 20:27:17 (UTC)
    Write Time:          2008-09-12 20:27:17 (UTC)
    Target Size:         0 bytes
  {S_2.3 - LinkInfo}
    {S_2.3.1 - LinkInfo - VolumeID}
      Drive Type:        DRIVE_FIXED
      Drive Serial No:   307A8A81
      Volume Label:      [EMPTY]
      Local Base Path:   C:\test\a.txt
  {S_2.4 - StringData}
    {S_2.4 - StringData - RELATIVE_PATH}
      Relative Path:     .\a.txt
    {S_2.4 - StringData - WORKING_DIR}
      Working Dir:       C:\test
  {S_2.5 - ExtraData}
    {S_2.5.10 - ExtraData - TrackerDataBlock}
      MachineID:         chris-xps
      Droid1:            {94C77840-FA47-46C7-B356-5C2DC6B6D115}
      Droid2:            {7BCD46EC-7F22-11DD-9499-00137216874A}
        UUID Sequence:     153
        UUID Time:         2008-09-10 10:23:17 (UTC)
        UUID Node (MAC):   00:13:72:16:87:4A

참고: 위의 '{OPERATING SYSTEM (stat) DATA}' 제목 섹션의 날짜는 사용자가 자신의 시스템에서 해당 링크 파일을 설치하고 액세스한 날짜에 따라 달라집니다. 그러나 포함된 데이터는 동일합니다.

'-s' 옵션을 생략하면 더 정확한 타임스탬프를 포함한 더 완전한 출력을 얻을 수 있습니다.

링크 파일에 대한 가장 자세한 정보는 '-i' 옵션을 사용하여 얻을 수 있으며, 이 옵션은 idlist 개체에 대한 알려진 세부 정보도 출력합니다. 이 옵션은 '-s' 옵션과 호환되지 않습니다.

디렉터리(폴더) 이름만 전달하면 해당 디렉터리의 모든 링크 파일을 구문 분석할 수 있습니다:

root@kitploit:~
lifer ./src/Test/WinXP

(간결함을 위해 출력은 생략되었습니다.)

여러 링크 파일에 가장 유용한 출력은 탭(또는 쉼표)으로 구분된 목록을 파일로 보내어 나중에 분석을 위해 스프레드시트로 가져올 수 있습니다. 다음과 같이 할 수 있습니다:

root@kitploit:~
lifer -o tsv ./src/Test/WinXP > WinXP.tsv

또는

root@kitploit:~
lifer -so tsv ./src/Test/WinXP > WinXP.tsv

불필요하고 흥미롭지 않은 데이터 중 일부가 삭제된 파일의 경우.

쉼표로 구분된 출력에 대한 경고!!

링크 파일 내의 문자열에는 쉼표가 포함될 수 있습니다. 이는 필드 구분자와 충돌을 일으키기 때문에 문자열 내의 모든 쉼표는 세미콜론으로 대체됩니다(즉, ','가 ';'로 대체됨). 이는 '-o csv' 옵션에만 적용되며 기본 '-o txt' 또는 '-o tsv' 및 '-o xml' 옵션에는 적용되지 않습니다.

릴리스에서 설치

릴리스 페이지를 방문하여 최신 릴리스에서 사용자 기기에 맞는 실행 파일을 선택하여 다운로드합니다. 실행 파일의 이름을 'lifer'(Windows의 경우 'lifer.exe')로 바꿉니다. 실행 파일로 실행할 수 있는 올바른 속성이 있는지 확인하고, 검사하려는 링크 파일이 포함된 폴더에 배치하거나 위치를 PATH 변수에 추가하면 됩니다.

소스에서 설치

가장 먼저 할 일은 시스템/장치에 git이 설치되어 있는지 확인하는 것입니다. 명령줄 셸에서 원하는 프로젝트 루트 디렉터리로 이동하여 다음 명령을 실행합니다:

root@kitploit:~
git clone https://github.com/Paul-Tew/lifer.git

'lifer'라는 새 디렉터리가 생성됩니다.

LINUX 설치 (및 기타 *nix 플랫폼)

(Mac 설치에서도 작동할 수 있지만 확실히 테스트할 자금이 없습니다...) 이 도구는 매우 기본적이므로 종속성은 최소화되어 있습니다. 'gcc' 컴파일러와 관련 'libc' 개발 라이브러리가 설치되어 있는지 확인하면 됩니다. 명령줄 터미널을 시작하고 ./lifer/src 디렉터리로 이동합니다. 다음 명령을 실행합니다:

root@kitploit:~
gcc -Wall ./lifer.c ./liblife/liblife.c ./libbin2hex/libbin2hex.c -o lifer

경고나 오류가 나타나지 않았다면 디렉터리에 'lifer' 실행 파일이 있어야 합니다. 다음 명령으로 확인할 수 있습니다:

root@kitploit:~
ls -la

모두 정상이면, 복제한 git 저장소의 일부로 포함된 Microsoft 문서에 지정된 파일(./Test/ 디렉터리에 있어야 함)로 lifer가 작동하는지 테스트할 수 있습니다. 다음 명령을 실행하면 됩니다:

root@kitploit:~
./lifer ./Test/Test.lnk

다음 명령을 실행하여 디렉터리에 있는 여러 링크 파일에서 lifer가 작동하는지 테스트할 수도 있습니다:

root@kitploit:~
./lifer ./Test/WinXP/

다음 명령으로 OS에 도구를 설치합니다:

root@kitploit:~
sudo install ./lifer /usr/bin/

이렇게 하면 디렉터리 접두사를 지정하지 않고 시스템 어디에서나 lifer를 사용할 수 있습니다(예: ./lifer ./Test/Test.lnk 대신 lifer ./Test/Test.lnk).

WINDOWS 설치

lifer github 프로젝트에는 Visual Studio 2017 프로젝트 솔루션이 포함되어 있으므로 Windows 실행 파일을 만드는 가장 쉬운 방법은 먼저 Visual Studio 2017을 설치하는 것입니다. 여기에서 무료 버전('커뮤니티' 버전)을 사용할 수 있습니다. Visual Studio가 설치되면:

  • 파일->열기->프로젝트/솔루션을 왼쪽 클릭하고 lifer.sln 파일을 찾아 Visual Studio에 솔루션을 로드합니다.
  • 표준 도구 모음에서 솔루션 구성 옵션을 기계와 선호도에 맞게 설정합니다(예: 저는 'x64'와 'Debug'를 사용합니다).
  • '빌드' 메뉴에서 솔루션을 빌드하거나 간단히 키 조합 Ctrl+Shift+B를 사용합니다.
  • 오류가 없으면 프로젝트의 해당 하위 폴더에 'lifer.exe' 실행 파일이 있어야 합니다.
  • 이 시점에서 저는 보통 Powershell 터미널을 열고 실행 파일이 있는 폴더로 이동합니다. 저는 다음 명령을 실행합니다:
root@kitploit:~
cd "F:\\lifer\src\x64\Debug\"
  • 그런 다음 다음 명령으로 실행 파일을 테스트합니다:
root@kitploit:~
.\lifer.exe ..\..\Test\Test1.lnk

Visual Studio를 설치하지 않고 Windows에서 lifer를 만들 수도 있지만 여기에서 제공되는 Visual C++ 빌드 도구를 다운로드하여 설치해야 합니다. 설치가 완료되면 ./src/ 디렉터리에서 다음 명령을 실행하여 lifer를 빌드할 수 있습니다:

root@kitploit:~
CL lifer.c .\liblife\liblife.c .\Win\dirent.c .\Win\getopt.c .\libbin2hex\libbin2hex.c

감사의 말

'lifer'는 원래 Linux/GNU 전용 도구였으며, 디렉터리 탐색 및 GNU와 동일한 방식으로 명령줄 옵션 구문 분석의 주요 장애물에 대한 해결책을 찾기 전까지는 Windows로 이식하기 어려웠습니다. 이를 위해 다음 두 프로젝트에 깊이 감사드립니다:

  1. dirent Kevlin Henney
  2. getopt Ludvik Jerabek

출력 해석

사용자는 결과에 의미를 부여하기 전에 백서를 읽을 것을 권장합니다. 출력이 무엇을 나타내는지 완전히 이해하지 않고는 이 도구에 결과를 귀속시켜서는 안 됩니다. 이는 특히 법정에서 결정을 위한 사실 문제에 적용됩니다. 이러한 경우 사용자는 앞서 언급한 두 문서를 완전히 이해하고 Windows 및 기타 OS가 이러한 파일의 생성, 이동, 삭제를 어떻게 처리하는지 포괄적으로 이해해야 합니다. 또한 'lifer'가 데이터를 해석하고 표시한 방법에 대한 실무 지식이 필요합니다(이는 코드를 읽고 이해해야 함을 의미합니다).

비공식 면책 조항

저는 독학한 프로그래머에 불과하므로 코드에 많은 오류와 '함정'이 있을 것이 분명합니다. 이에 따라 이 도구가 시스템에 해를 끼치지 않을 것이라는 어떠한 약속도 하지 않습니다. 기계를 망가뜨리지 않도록 열심히 노력했지만 지옥으로 가는 길은 선의로 포장되어 있습니다...

공식 면책 조항

본 자료는 상품성, 특정 목적에의 적합성, 비침해에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 어떠한 종류의 명시적 또는 묵시적 보증 없이 "있는 그대로" 제공됩니다. 일부 관할권에서는 묵시적 보증의 배제를 허용하지 않으므로 위의 배제 사항이 귀하에게 적용되지 않을 수 있습니다. 어떠한 경우에도 저는 귀하가 본 자료를 사용함으로 인해 발생하는 직접적, 간접적, 특별 또는 기타 결과적 손해(이에 국한되지 않음: 이익 손실, 업무 중단, 정보 처리 시스템 또는 기타 시스템의 프로그램 또는 데이터 손실 등)에 대해 책임을 지지 않습니다. 설사 그러한 손해의 가능성에 대해 명시적으로 통보받은 경우에도 마찬가지입니다.

Paul Tew - 2020년 3월

도구 다운로드