
x86-64 PE용 bin2bin 코드 가상화 도구
제가 가장 좋아하는 게임 중 하나의 이름을 딴 "nocturne"은 x86-64 PE 코드 가상화(virtualizer) 및 바이너리 재작성 도구입니다.
Nocturne 가상화 도구를 사용하려면 core/에 있는 "nocturne_sdk.hpp"를 프로젝트에 복사하고 포함하십시오.
#include "nocturne_sdk.hpp"
VIRTUALIZE int secret(int x) {
if (x % 2 == 0) {
return x / 2;
} else {
return x * 3 + 1;
}
}
VIRTUALIZE_MARK(secret);
그런 다음 cli 실행 파일을 실행합니다.
cli.exe -i <input.exe> -o <output.exe>
예시:
cli.exe -i example.exe -o example_protected.exe
기본적으로 CLI는 auto 모드를 사용합니다.
또는 명시적으로:
cli.exe -i <input.exe> -o <output.exe> --mode auto
예시:
cli.exe -i example.exe -o example_protected.exe --mode auto
마커를 스캔하려면:
cli.exe -i <input.exe> -o <output.exe> --mode markers
예시:
cli.exe -i example.exe -o example_protected.exe --mode markers
또는 SDK 없이 바이너리의 특정 세그먼트를 가상화하려면:
cli.exe -i <input.exe> -o <output.exe> --mode rva <start_rva> <end_rva>
예시:
cli.exe -i calc.exe -o calc_vmp.exe --mode rva 0x1600 0x1864
가상화 전:

가상화 후:
난독화된 디스패처 루프:

LIEF
Zydis
argparse
무엇보다도 이 프로젝트는 대부분 POC 프로젝트입니다. 너무 안정적일 것으로 기대하지 마십시오. 그렇지만 시간이 지남에 따라 더 많은 기능/수정 사항을 점진적으로 추가할 예정입니다.
구현을 원하는 기능/핸들러가 있으면 이슈를 열어주시기 바랍니다. 모든 기여를 환영합니다.
이 프로젝트는 소스 공개(source-available) 방식이며 오픈소스가 아닙니다.
소스 코드는 PolyForm Noncommercial License 1.0.0에 따라 제공됩니다.
비상업적 목적으로 이 소프트웨어를 사용, 연구, 수정 및 공유할 수 있으며 라이선스 조건이 적용됩니다.
상업적 사용, 기업 사용, 내부 회사 사용, 생산 비즈니스 사용, 호스팅 서비스, 유료 제품, 클라이언트 작업, 컨설팅 작업 또는 조직 차원의 배포는 별도의 서면 라이선스 없이는 허용되지 않습니다.
상업 또는 기업 라이선스에 대해서는 다음으로 문의하십시오: [email protected] / @nodiuus