использование дизассемблирования кодов операций
В основном я хочу разобрать кучу кодов операций с помощью cpython.
У меня есть следующие коды операций:
data = b"\xdb\xda\xbb\x04\xd7\x03\xf9\xd9\x74\x24\xf4\x5f\x2b\xc9\xb1\x56\x31\x5f\x18\x03\x5f\x18\x83\xc7\x00\x35\xf6\x05\xe0\x3b\xf9\xf5\xf0\x5b\x73\x10\xc1\x5b\xe7\x50\x71\x6c\x63\x34\x7d\x07\x21\xad\xf6\x65\xee\xc2\xbf\xc0\xc8\xed\x40\x78\x28\x6f\xc2\x83\x7d\x4f\xfb\x4b\x70\x8e\x3c\xb1\x79\xc2\x95\xbd\x2c\xf3\x92\x88\xec\x78\xe8\x1d\x75\x9c\xb8\x1c\x54\x33\xb3\x46\x76\xb5\x10\xf3\x3f\xad\x75\x3e\x89\x46\x4d\xb4\x08\x8f\x9c\x35\xa6\xee\x11\xc4\xb6\x37\x95\x37\xcd\x41\xe6\xca\xd6\x95\x95\x10\x52\x0e\x3d\xd2\xc4\xea\xbc\x37\x92\x79\xb2\xfc\xd0\x26\xd6\x03\x34\x5d\xe2\x88\xbb\xb2\x63\xca\x9f\x16\x28\x88\xbe\x0f\x94\x7f\xbe\x50\x77\xdf\x1a\x1a\x95\x34\x17\x41\xf1\xf9\x1a\x7a\x01\x96\x2d\x09\x33\x39\x86\x85\x7f\xb2\x00\x51\xf6\xd4\xb2\x8d\xb0\xb5\x4c\x2e\xc0\x9c\x8a\x7a\x90\xb6\x3b\x03\x7b\x47\xc3\xd6\x11\x4d\x53\xd3\xe5\x51\xc2\x8b\xe7\x51\x15\x10\x6e\xb7\x45\xf8\x20\x68\x26\xa8\x80\xd8\xce\xa2\x0f\x06\xee\xcc\xda\x2f\x85\x22\xb2\x18\x32\xda\x9f\xd3\xa3\x23\x0a\x9e\xe4\xa8\xbe\x5e\xaa\x58\xcb\x4c\xdb\x3e\x33\x8d\x1c\xab\x33\xe7\x18\x7d\x64\x9f\x22\x58\x42\x00\xdc\x8f\xd1\x47\x22\x4e\xe3\x3c\x15\xc4\x4b\x2b\x5a\x08\x4b\xab\x0c\x42\x4b\xc3\xe8\x36\x18\xf6\xf6\xe2\x0d\xab\x62\x0d\x67\x1f\x24\x65\x85\x46\x02\x2a\x76\xad\x10\x2d\x88\x33\x3f\x96\xe0\xcb\x7f\x26\xf0\xa1\x7f\x76\x98\x3e\xaf\x79\x68\xbe\x7a\xd2\xe0\x35\xeb\x90\x91\x4a\x26\x74\x0f\x4a\xc5\xad\xa0\x31\xa6\x52\x41\xc6\xae\x36\x42\xc6\xce\x48\x7f\x10\xf7\x3e\xbe\xa0\x4c\x30\xf5\x85\xe5\xdb\xf5\x9a\xf6\xc9"
Хотелось бы это разобрать. Я пробовал использовать, но иногда Cs не может разобрать все коды операций, т.е.
\xf0
или
\xf0\x5b\x73\x10
. Вот как я использую модуль:
md = Cs(CS_ARCH_X86, CS_MODE_64)
md.detail = True
for i in md.disasm(data, dataLength):
print(i)
Итак, я подумал, что
Cs
не так уж и умно все разбирать. Иначе скажите, пожалуйста, что здесь не так?
Я огляделся, пытаясь найти альтернативный лучший модуль Python, который мог бы разбирать коды операций, и первые результаты были с использованием модуля. Читая документацию, я не нашел примера, чтобы разобрать кучу кодов операций. Все, что я нашел, это разобрать функцию. Может кто подскажет как разобрать с помощью
dis
? или есть модуль разборки лучше.