24 lines
		
	
	
		
			502 B
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			502 B
		
	
	
	
		
			Python
		
	
	
| #! /usr/bin/env python3
 | |
| from capstone import Cs, CS_ARCH_X86, CS_MODE_64
 | |
| import json
 | |
| 
 | |
| capstone = Cs(CS_ARCH_X86, CS_MODE_64)
 | |
| 
 | |
| 
 | |
| def disasm(shellcode: bytes) -> list:
 | |
|     opcodes = list()
 | |
| 
 | |
|     for opcode in capstone.disasm(shellcode, 0):
 | |
|         opcodes.append([opcode.mnemonic, opcode.op_str])
 | |
| 
 | |
|     return opcodes
 | |
| 
 | |
| 
 | |
| def objdump(shellcode: bytes) -> str:
 | |
|     opcodes = str()
 | |
| 
 | |
|     for opcode in capstone.disasm(shellcode, 0):
 | |
|         opcodes += f'{opcode.mnemonic}\t{opcode.op_str}\n'
 | |
| 
 | |
|     return opcodes
 |