#!/usr/bin/python # Simple benchmark for Capstone by disassembling random code. By Nguyen Anh Quynh, 2014 from capstone import * from time import time from random import randint def random_str(size): lst = [str(randint(0, 255)) for _ in xrange(size)] return "".join(lst) def cs(md, data): insns = md.disasm(data, 0) # uncomment below line to speed up this function 200 times! # return for i in insns: if i.address == 0x100000: print i md = Cs(CS_ARCH_X86, CS_MODE_32) md.detail = False # warm up few times for i in xrange(3): data = random_str(128) cs(md, data) # start real benchmark c_t = 0 for i in xrange(10000): code = random_str(128) t1 = time() cs(md, code) c_t += time() - t1 print "Capstone:", c_t, "seconds"