View8
Disassembler binary
View8 직렬화 된 V8 Bytecode 객체 (JSC 파일)를 고급 읽기 가능한 코드로 소형화하도록 설계된 정적 분석 도구입니다. 이러한 직렬화 된 객체를 구문 분석하고 분해하기 위해 View8은 패치 된 컴파일 V8 바이너리를 사용합니다. 결과적으로 View8은 JavaScript와 유사한 텍스트 출력을 생성합니다.
9.4.146.24 (노드 v16.x에서 사용)10.2.154.26 (노드 v18.x에서 사용)11.3.244.8 (노드 V20.x에서 사용)컴파일 된 버전은 릴리스 페이지를 방문하십시오.
input_file : 입력 파일 이름.output_file : 출력 파일 이름.--path , -p : 분해 된 이진으로가는 경로 (선택 사항).--disassembled , -d : 입력 파일이 이미 분해되었는지 (선택 사항)를 나타냅니다.--export_format , -e : 내보내기 형식을 지정합니다. 옵션은 v8_opcode , translated 및 decompiled . 여러 옵션을 결합 할 수 있습니다 (선택 사항, 기본값 : decompiled ).V8 Bytecode 파일을 디 컴파일하고 컴파일 된 코드를 내보내려면 다음과 같습니다.
python view8.py input_file output_file 기본적으로 view8 입력 파일의 V8 ByteCode 버전 ( VersionDetector.exe 사용)을 감지하고 Bin 폴더에서 호환 Disassembler 바이너리를 자동으로 검색합니다. 다른 분해기 바이너리를 지정하여 --path (또는 -p ) 옵션을 사용하여 변경할 수 있습니다.
python view8.py input_file output_file --path /path/to/disassembler 분해 프로세스를 건너 뛰고 이미 분해 된 파일을 입력으로 제공하려면 --disassembled (또는 -d ) 플래그를 사용하십시오.
python view8.py input_file output_file --disassembled --export_format (또는 -e ) 옵션을 사용하여 내보내기 형식을 지정하십시오. 여러 형식을 결합 할 수 있습니다.
v8_opcodetranslateddecompiled예를 들어, V8 opcodes와 코피드 코드를 나란히 내보내는 것입니다.
python view8.py input_file output_file -e v8_opcode decompiled 기본적으로 사용 된 형식은 decompiled .
V8 Bytecode 버전은 파일 시작시 해시로 저장됩니다. 다음은 VersionDetector.exe 에 사용할 수있는 옵션입니다.
-h : 버전을 검색하고 해시를 반환합니다.-d : 해시 (Little-Endian)를 검색하고 Brute Force를 사용하여 해당 버전을 반환합니다.-f : 파일을 검색하고 버전을 반환합니다.