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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sharem — SHAREM은 쉘코드 분석 프레임워크로, 45,000개 이상의 WinAPI와 사실상 모든 Windows 시스템 콜을 에뮬레이션할 수 있습니다. 또한 자체 맞춤형 디스어셈블러를 포함하고 있으며, 인코딩된 쉘코드의 디난독화된 디스어셈블리를 보여주거나 에뮬레이션 데이터를 통합하여 디스어셈블리를 향상시키는 등 많은 혁신적인 기능을 제공합니다. | Kitploit
도구/GitHubGitHub/bw3ll/sharem
Dynamic Analysis (Sandboxing)Reverse EngineeringShellcodeDebuggersFuzzingMalware AnalysisBinary AnalysisAI Security
GitHubbw3ll/sharem

sharem

SHAREM은 쉘코드 분석 프레임워크로, 45,000개 이상의 WinAPI와 사실상 모든 Windows 시스템 콜을 에뮬레이션할 수 있습니다. 또한 자체 맞춤형 디스어셈블러를 포함하고 있으며, 인코딩된 쉘코드의 디난독화된 디스어셈블리를 보여주거나 에뮬레이션 데이터를 통합하여 디스어셈블리를 향상시키는 등 많은 혁신적인 기능을 제공합니다.

저장소 보기
491685개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SHAREM

SHAREM에 오신 것을 환영합니다!

SHAREM은 DEFCON 31의 "Game-Changing Advances in Windows Shellcode Analysis"와 Black Hat USA Arsenal에서 발표되었습니다. Max Kersten이 제공하는 companion Ghidra 플러그인이 (별도로) Trellix를 통해 공개되었습니다. 따라서 원한다면 SHAREM의 기능을 Ghidra로 확장할 수 있습니다.

SHAREM은 궁극적인 Windows 셸코드 도구로 설계되었으며, 45,000개 이상의 WinAPI 에뮬레이션, 거의 모든 사용자 모드 Windows 시스템 콜을 지원하며, 수많은 새로운 기능을 제공합니다. SHAREM은 에뮬레이터, 디스어셈블러, 시간 초월 디버깅(timeless debugging), 무차별 난독 해제(brute-force deobfuscation) 등 다양한 기능을 포함합니다. SHAREM의 에뮬레이터는 완전한 구조체(또는 구조체 내부의 구조체)도 표시할 수 있으며, 인코딩된 셸코드가 스스로 난독 해제되도록 할 수 있습니다. SHAREM은 분석된 모든 WinAPI 및 Windows 시스템 콜의 출력을 기록하고, 각각을 여러 카테고리와 하위 카테고리로 분류합니다. SHAREM의 완전한 코드 커버리지(complete code coverage)는 도달 불가능한 기능도 발견할 수 있게 해줍니다.

SHAREM의 디스어셈블러는 발견된 함수를 디스어셈블리에 통합하여 각각에 레이블을 지정할 수 있습니다. 또한 SHAREM은 인코딩된 셸코드의 복호화된 형태를 디스어셈블러에 표시하므로, 셸코드를 디버깅할 필요가 없습니다.

SHAREM Wiki를 만들었으며, 여기에는 SHAREM 사용에 대한 몇 가지 안내 정보가 제공되지만, 현재 문서화되지 않은 상당 부분과 기능이 있습니다. SHAREM은 2년에 걸쳐 여러 사람이 함께 개발했습니다. SHAREM의 디스어셈블러는 주요 디스어셈블러보다 훨씬 정확합니다. 또한 SHAREM은 에뮬레이션 데이터를 디스어셈블러에 통합하여 거의 완벽에 가까운 디스어셈블리를 얻을 수 있습니다.

SHAREM이 막 출시되었기 때문에 여기의 문서가 다소 부족하다는 점을 양해 부탁드립니다. 앞으로 몇 주 안에 GitHub에 더 많은 정보를 업데이트하겠습니다.

SHAREM이 처음이시라면, 일부 기능을 보여주는 간단한 데모 비디오를 확인해보세요. 이미지를 클릭하면 데모를 볼 수 있습니다: 동영상 보기

최근 업데이트

2026년 3월: SHAREM은 시작 시 최대 61개의 DLL을 로드했지만, 최신 업데이트로 이제 369개의 DLL과 45538개의 고유 WinAPI를 지원할 수 있습니다. 또한 DLL은 필요에 따라 요청 시 로드됩니다. Windows 내부 기능(모듈 목록, flink, blink 등)은 LoadLibraryA 등을 통해 추가 DLL을 로드해야 하는 경우 자동으로 업데이트됩니다. 기능 개선을 위한 수많은 다른 업데이트도 있었습니다. 설치 문제에 대해 제게 보고된 몇 가지 문제를 해결하기 위한 변경 사항이 적용되었습니다.

2026년 3월 22일: 루프 탈출 로직이 더 세분화되어 개선되었습니다. 이 부분은 대부분 다시 작성되고 재테스트되었습니다. 이 기능을 사용하기로 결정한 경우, 일반적으로 config.cfg의 기본값을 변경하지 않는 것을 권장합니다.

2024/2025년: SHAREM은 선택적으로 AI를 사용하여 결과를 분석할 수 있으며, OpenAI 키(사용자 제공)가 필요합니다. SHAREM은 최근 AI 발전 이전에 만들어졌으며, AI 사용은 SHAREM의 초기 분석이 완료된 후에만 발생합니다. 이 선택적 기능을 통해 발견된 내용을 검토하고 MITRE ATT&CK 프레임워크 등에 적용할 수 있습니다.

설치 지침

Windows

SHAREM은 로컬 Python 패키지로 설치되므로, 다른 프로젝트에서 액세스할 수 있습니다. 이를 통해 SHAREM의 일부를 가져올 수 있습니다. 따라서 패키지로 설치해야 합니다. 참고: 일부 설치 문제에 대한 보고를 들었습니다. 최근 변경 사항으로 이 문제가 해결되기를 바랍니다.

  1. SHAREM 설치를 위해서는 Git이 필요합니다. https://git-scm.com/download/win 에서 설치할 수 있습니다. 설치 후 컴퓨터를 다시 시작하고 SHAREM 설치를 계속하십시오. Git은 Windows SSDeep 설치를 자동화하기 위한 것입니다. 직접 수행하는 경우 .bat 파일을 수정하여 SSDeep을 제외할 수도 있습니다. 수동으로 설치하면 Git이 필요하지 않습니다. 참고: Windows의 경우, 이전 버전의 설치 문제를 해결한 Bw3ll 계정의 SSDeep 포크로 이동 중입니다. 이 버전과 이전 버전은 모두 SSDeep의 래퍼였습니다.

  2. .bat 파일을 실행하십시오. setup.py 파일을 호출합니다. Python을 호출하는 방식에 따라 대체 .bat 파일을 호출하거나 비표준 방식을 사용하는 경우 약간 수정해야 할 수도 있습니다.

  3. 다음을 수행하십시오: py -m pip list 또는 python3 -m pip list를 실행하여 SHAREM이 로컬 패키지로 설치되었는지 확인하십시오. 작동하려면 패키지로 설치되어야 합니다. 만약 보이지 않으면 패키지로 설치되지 않은 것이며, SHAREM이 작동하지 않습니다. .bat 파일을 사용하고 있는지, 그리고 installers 디렉토리에서 Windows 명령 프롬프트로 실행하고 있는지 확인하십시오. 작동하지 않으면 오류 메시지를 확인하십시오. 오류가 있으면 수정을 시도하십시오. 몇 번 시도해보십시오. 그래도 작동하지 않으면 이슈를 열고 이 모든 정보를 포함시켜 주시면 문제를 파악하는 데 도움이 됩니다. 일반적으로는 필요하지 않지만 가끔 필요할 수 있습니다. 한 번 제거했다가 다시 설치하기로 결정한 경우 설치 스크립트를 다시 실행해야 할 수 있습니다. py -m pip list를 실행했을 때 sharem이 나타나면 로컬 패키지로 올바르게 설치된 것입니다.

SHAREM이 설치된 후, 처음으로 셸코드를 실행할 때는 sharem_cli 폴더 안에 있어야 합니다. 예를 들어, 해당 디렉토리에서 py main.py -r32 shellcode.bin을 실행할 수 있습니다. 셸코드가 없어도 괜찮습니다. 제가 별도 리포지토리에서 호스팅하는 shellcode samples 리포지토리에서 몇 가지 샘플을 찾을 수 있습니다.

참고: Windows에서 셸코드 에뮬레이션을 처음 시도하면 Windows DLL을 수집하고 인플레이션(inflate)하려고 시도합니다. 이 과정은 셸코드를 처음 에뮬레이션하려고 할 때 자동으로 시작됩니다. DLL을 복사하여 복사된(그리고 나중에 인플레이션된) DLL을 SHAREM 디렉토리로 이동합니다. 추가 단계가 있지만, 이 전체 초기 과정은 몇 분이 걸리거나 매우 오래된 CPU의 경우 10-15분까지 걸릴 수 있습니다. 완료된 후에는 다시 수행할 필요가 없습니다. 이 작업은 32비트 및 64비트 셸코드 각각에 대해 별도로 수행해야 합니다. sharem/sharem/sharem/sharem/DLLs/x86으로 이동하면 DLL이 천천히 나타나는 것을 볼 수 있습니다. 이 DLL은 OS에서 가져와서 OS가 수행할 작업을 에뮬레이션하도록 수정되어 이 디렉토리에 저장됩니다. 약 60개 이상이 있을 것입니다. 그 정도의 DLL이 보이고 더 이상 저장되는 DLL이 없으면 아마도 멈춘 것일 수 있습니다. Enter를 다시 누르십시오. 그래도 실패하면 다시 시작하고 에뮬레이션을 다시 시도하십시오. DLL이 저장되면 다시 할 필요가 없습니다. CPU 속도에 따라 처음에만 기다리는 시간이 걸릴 수 있습니다. 완료되면 다양한 WinAPI 또는 Windows 시스템 콜의 열거와 같은 에뮬레이션 결과가 표시되어야 합니다.

파일 확장자가 .txt로 끝나면 셸코드가 순수 16진수가 아닌 16진수의 ASCII 표현이라고 가정하고 그렇게 해석합니다. 이는 온라인에서 찾은 것과 함께 작동합니다. 16진수의 ASCII 표현을 사용하는 경우 파일 이름이 .txt로 끝나야 합니다.

Linux

  1. chmod +x linux_installer.sh 설치 프로그램 실행 권한 부여
  2. sudo ./linux_installer.sh 설치 프로그램 실행
  3. DLL 파일 추가

Windows DLL 파일을 추가해야 합니다. 현재 Linux 사용자를 위한 별도 다운로드는 제공되지 않습니다. 현재로서는 Windows를 통해 설치하여 수집해야 합니다. (참고: 이 DLL은 SHAREM에 의해 반드시 인플레이션되어야 합니다. 인플레이션되지 않은 DLL은 사용할 수 없습니다. 대부분은 적절한 양만큼 인플레이션되지 않으면 실패할 것입니다.) 추후 몇 주 안에 별도 다운로드를 제공할 수도 있습니다. 하지만 그때까지는 Windows 단계를 따라 생성한 후 Linux로 이동하여 sharem\sharem\sharem\DLLs\x64 및 sharem\sharem\sharem\DLLs\x86에 배치할 수 있습니다. 또한 foundDLLAddresses32.json과 FoundDLLAddresses64.json이 필요하며, 이 파일들은 sharem\sharem\sharem에 있어야 합니다.

OpenAI

2024년에 SHAREM은 OpenAI 지원을 추가하여 AI를 활용하여 일부 분석 작업을 자동화할 수 있습니다. 이 기능은 메인 메뉴에서 A - "leverage AI"를 통해 활성화할 수 있습니다. 이를 위해서는 OpenAI 키가 있어야 하며, config.cfg 파일(sharem/sharem/sharem/sharem/config.cfg에 위치)에 입력해야 합니다. 또한 AI를 활용하려면 먼저 셸코드를 에뮬레이션해야 합니다. 현재 이것이 AI를 사용하는 유일한 방법입니다(헤드리스 방식으로는 작동하지 않음). 하지만 누군가 헤드리스 방식이 필요하다면 이슈를 열어주십시오. config를 통해 선택할 수 있는 또 다른 옵션으로 지원을 추가하겠습니다. 이미 SHAREM을 설치했고 업데이트된 버전을 받은 경우, 수동으로 OpenAI를 설치할 수 있습니다(예: pip install openai). 초기 설치 스크립트 실행 시 활성화되는 setup.py 파일의 requirements에도 추가했습니다.

Ghidra 스크립트

Max Kersten의 훌륭한 Ghidra 스크립트(2023년 8월 Black Hat 및 DEFCON에서 발표)는 다음에서 찾을 수 있습니다: https://github.com/advanced-threat-research/GhidraScripts/blob/main/Sharem.java Max의 일부 지침은 다음에 있습니다: https://github.com/advanced-threat-research/GhidraScripts/ 이 Ghidra 플러그인은 Trellix 제공입니다! SHAREM을 계속 사용해야 합니다. 이 플러그인은 SHAREM이 생성한 JSON 출력을 가져와 Ghidra에 유용한 형식으로 변환합니다. Max 자신에 대한 더 많은 정보는 https://maxkersten.nl/에서 확인할 수 있습니다.

문서

문서는 SHAREM Wiki에서 확인할 수 있으며, SHAREM 사용에 대한 몇 가지 안내 정보를 제공하지만, 현재 문서화되지 않은 상당 부분과 기능이 있습니다.

업데이트

  • 2022년 9월 29일: numpy와 관련하여 setup.py를 아주 약간 업데이트했습니다. 최신 Python 버전을 사용하는 일부 사용자에게 영향을 줄 수 있습니다.
  • 2022년 11월 25일: 오래 기다렸습니다만, ShellWasp 스타일의 시스템 콜을 지원하기 위해 몇 가지 변경을 했습니다. 이전에 시스템 콜 지원을 구현했지만, ShellWasp 스타일은 작동하지 않았고 하드코딩된 SSN(시스템 콜 값)만 작동했습니다. OSMajorVersion, OSMinorVersion, OSBuild가 32비트 및 64비트용으로 초기화되었습니다. 사용자가 config 또는 UI에 설정한 OS 버전은 내부적으로 반영됩니다. 예를 들어 Windows 10 20H2를 선택하면 올바른 값이 채워져 ShellWasp 기술이 작동할 수 있습니다. 이 샘플 출력에서 확인할 수 있습니다. 현재 ShellWasp 기술 에뮬레이션은 Windows 7, 10, 11만 지원합니다.
  • 2022년 11월 29일: Windows 10 및 11용 새로운 OSBuild 22H2에 대한 에뮬레이션 지원을 추가했습니다. 이는 Windows 시스템 콜 에뮬레이션에만 관련됩니다. 많은 사소한 버그 수정 및 품질 개선이 있었습니다. SHAREM이 셸코드(주요 초점)에 사용될 때와 PE 파일 분석에 사용될 때의 기능 구분이 개선되었습니다.
  • 2022년 12월 1일: bins/ASCII 출력의 기본 파일 위치를 logs로 변경했습니다. 이 명령으로 난독 해제된 bins/ASCII를 출력할 수 있는 기능을 추가했습니다. 난독 해제된 ASCII가 로그에 추가되었습니다. bin의 ASCII도 로그에서 누락된 것으로 보였는데, 이 부분이 수정되었습니다.
  • 2022년 12월 29일: 선택적 스택 시간 초월 디버깅 기능을 추가했습니다. 이전에는 시간 초월 디버깅이 실행된 명령어와 전후의 레지스터 값만 캡처했습니다. 이제 ESP에서 +/- 0xA0를 볼 수 있습니다. 불행히도 다소 느립니다. 이 기능은 별도로 활성화해야 합니다. 또한 루프 탈출로 인해 잘못된 결과를 초래하는 몇 가지 버그를 발견했으며, 이로 인해 일부 경우 에뮬레이션이 조기 종료될 수 있었습니다. 이를 수정했습니다. 이제 SHAREM이 루프를 탈출할 때 출력하여, 루프를 빠져나간 후 어디로 가는지 표시합니다.
  • 2023년 1월 4일: 완전한 코드 커버리지를 크게 개선하여 성능을 향상시켰습니다. 또한 UI 또는 config 파일을 통해 고급 사용자가 사례별로 조정할 수 있는 여러 선택적 기능을 노출했습니다. 자세한 내용은 완전한 코드 커버리지 위키 페이지를 참조하십시오.
  • 2023년 1월 5일: 에뮬레이터 메뉴에서 완전한 코드 커버리지 하위 메뉴로 가는 키보드 단축키를 추가했습니다. 어제 업데이트를 이미 다운로드한 분들을 위해, 단축키는 문자 "o"입니다.
  • 2023년 1월 16일: 생성되는 디스어셈블리 JSON 파일에 세 개의 새 필드를 추가했습니다. 이 JSON을 사용하지 않는 분들에게는 이 업데이트가 필요하지 않습니다(이는 비표준 SHAREM 사용 방식입니다).
  • 2023년 8월 3일: 약 30개의 추가 DLL에서 약 5000-6000개의 API가 추가되었습니다. 이를 지원하는 다른 개선 사항도 있었습니다.
  • 2024/2025년: SHAREM은 선택적으로 AI를 사용하여 결과를 분석할 수 있으며, OpenAI 키(사용자 제공)가 필요합니다. SHAREM은 최근 AI 발전 이전에 만들어졌으며, AI 사용은 SHAREM의 초기 분석이 완료된 후에만 발생합니다. 이 선택적 기능을 통해 발견된 내용을 검토하고 MITRE ATT&CK 프레임워크 등에 적용할 수 있습니다.
  • 2026년 3월: SHAREM은 시작 시 최대 61개의 DLL을 로드했지만, 최신 업데이트로 이제 369개의 DLL과 45538개의 고유 WinAPI를 지원할 수 있습니다. 기능 개선을 위한 수많은 다른 업데이트도 있었습니다. 설치 문제에 대해 제게 보고된 몇 가지 문제를 해결하기 위한 변경 사항이 적용되었습니다.
  • 2026년 3월 22일: 루프 탈출 로직이 더 세분화되어 개선되었습니다.

스크린샷

SHAREM은 다양한 기능을 가진 매우 강력한 프레임워크이며, 일부는 잘 문서화되어 있고 일부는 그렇지 않습니다. 이 섹션에서는 그중 몇 가지 기능을 소개합니다.

SHAREM은 인코딩된 셸코드를 에뮬레이션을 통해 난독 해제할 수 있습니다. 모든 WinAPI 또는 시스템 콜 정보를 캡처할 뿐만 아니라, 디스어셈블러에서 보기로 선택하면 복호화된 형태의 셸코드를 보여줍니다:

이미지

SHAREM은 12,000개 이상의 WinAPI 함수를 열거할 수 있을 뿐만 아니라, 거의 모든 사용자 모드 Windows 시스템 콜도 열거할 수 있습니다. 또한 일부 함수의 경우 구조체 정보를 표시합니다. 레지스트리를 다루는 경우 레지스트리 정보를 추출하여 Registry Manager에 추가합니다:

이미지

SHAREM은 또한 UrldownloadToFileA를 통해 파일을 다운로드할 수 있는 기능이 있습니다(파일이 존재하는 경우). 이 파일들은 디스크에 저장되지 않고 에뮬레이터의 메모리로 다운로드됩니다. 성공하면 해시를 캡처합니다. 또한 제한된 의사 파일 시스템(pseudo file system)이 있어, 파일이 하나로 다운로드되었다가 다른 이름으로 변경되는 등의 상관 관계를 볼 수 있습니다. 필요한 다운로드를 사용할 수 없으면 단순히 성공한 다운로드로 시뮬레이션됩니다. 실시간 다운로드는 config에서 활성화하거나 비활성화할 수 있는 옵션입니다.

이미지

공동 저자 및 기여자

Dr. Bramwell Brizendine, Austin Babcock, Jake Hince, Shelby VandenHoek, Sascha Walker, Evan Read, Dylan Park, Kade Brost, James Tate Forcella, William Lochte, Hunter Murphy, Tarek Abdelmotaleb.

감사의 말

이 연구와 일부 공동 저자는 NSA 보조금 H98230-20-1-0326의 지원을 받았습니다.

도구 다운로드