
idenLib - 라이브러리 함수 식별 [이 프로젝트는 더 이상 유지보수되지 않습니다]
악성코드나 타사 소프트웨어를 분석할 때 정적으로 링크된 라이브러리를 식별하고 라이브러리 함수가 무엇을 하는지 이해하는 것은 까다로운 작업입니다.
idenLib.exe는 .lib/.obj/.exe 파일에서 라이브러리 시그니처를 생성하는 도구입니다.
idenLib.dp32/idenLib.dp64는 x32dbg/x64dbg 플러그인으로 라이브러리 함수를 식별합니다.
idenLib.py는 IDA Pro 플러그인으로 라이브러리 함수를 식별합니다.
.lib/.obj 파일)을 파싱하여 함수 주소와 함수 이름 목록을 가져옵니다.
시그니처를 zstd로 압축합니다.
시그니처를 SymEx 디렉터리에 저장합니다. 입력 파일 이름이 zlib.lib인 경우 출력은 zlib.lib.sig 또는 zlib.lib.sig64가 됩니다. 이전 실행이나 이전 버전의 라이브러리에서 SymEx 디렉터리에 zlib.lib.sig(64)가 이미 존재하는 경우, 다음 실행에서는 다른 시그니처를 추가합니다. idenLib.exe를 다른 버전의 .lib 파일로 여러 번 실행하면 .sig/sig64 파일에는 모든 고유 함수 시그니처가 포함됩니다.
시그니처 내부 (압축된 상태):

idenLib.exe /path/to/file 또는 idenLib.exe /path/to/directorymain 함수 시그니처 생성: idenLib.exe /path/to/pe -getmain
x32dbg/x64dbg, IDA Pro 플러그인 사용법:SymEx 디렉터리를 x32dbg/x64dbg/IDA Pro 메인 디렉터리 아래에 복사합니다.

main 함수 시그니처 생성:MSVC 14로 컴파일된 main 함수에 대한 시그니처를 생성하려면 해당 컴파일러로 hello world 애플리케이션을 만들고 이 애플리케이션을 idenLib의 입력으로 사용해야 합니다.

main 함수 시그니처 파일은 EntryPointSignatures.sig 및 EntryPointSignatures.sig64입니다.


main 함수 시그니처 관련 참고 사항idenLib은 DIA API를 사용하여 PDB 파일에 저장된 디버그 정보를 탐색합니다. -getmain 매개변수와 함께 idenLib을 실행하려면 msdia140.dll(Microsoft Visual Studio\2017\Community\DIA SDK\bin에 있음)이 regsvr32.exe를 호출하여 COM 구성 요소로 등록되었는지 확인해야 합니다.시그니처를 적용하는 방법은 두 가지가 있습니다: 정확 일치(Exact match)와 자카드 인덱스(Jaccard index)를 사용하는 방법입니다.

C 런타임 라이브러리(CRT)에 대한 자세한 정보