Ich habe ein Universitätsprojekt, in dem ich binäre Dateien disasemble bin. Deshalb habe ich Capstone ausprobiert. Ich habe Wochen mit Java versucht, aber es hat nicht funktioniert, seit gestern habe ich mir ein wenig Python beigebracht. Um die Binary zu las ich versucht:Capstone Zerlegen von Binärdatei in Python
file = open('binary_file')
content = file.readlines()
von diesem Link: Lesen Binärdatei (.out) in Python und zerlegen mit Capstone und den Anweisungen von capstone zu zerlegen http://www.capstone-engine.org/lang_python.html
Ich habe die Lösungen aus einer Online Disassembler und das Ergebnis ist etwas mehr als 13000 Zeilen. Wenn ich meins starte, bekomme ich nur eins (0x1000: sc 0x2b). Ich kann den Fehler nicht finden, weil es in meinen Augen in Ordnung ist, aber ich habe keinen Plan von Python oder Capstone.
Übrigens funktioniert der Testcode von der Capstone Seite gut, also ist nichts falsch mit der Installation, die ich denke.
Code:
from capstone import *
file = open('C:/...sth', 'rb')
content = file.read()
ergebnism = open("C:/.../ergebnis.txt", "w")
mi = Cs(CS_ARCH_MIPS, CS_MODE_MIPS32)
for i in mi.disasm(content, 0x1000):
print("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))
#for (address, size, mnemonic, op_str) in mi.disasm_lite(content,0x1000):
# print("0x%x:\t%s\t%s" %(address, mnemonic, op_str))
ergebnism.write("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))
ergebnism.write("\n")
ergebnism.close()
file2 = open('C:/...erdb', 'rb')
content2 = file2.read()
ergebnisp = open("C:/.../ergebnisp.txt", "w")
pp = Cs(CS_ARCH_PPC, CS_MODE_64)
for i in pp.disasm(content, 0x1000):
print("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))
#for (address, size, mnemonic, op_str) in pp.disasm_lite(content2, 0x1000):
#print("0x%x:\t%s\t%s" %(address, mnemonic, op_str))
ergebnisp.write("0x%x:\t%s\t%s" %(i.address, i.mnemonic, i.op_str))
ergebnisp.write("\n")
ergebnisp.close()
Ja, wirklich toll. Danke, dass Sie meinen Text zweimal richtig gelesen haben, aber ich habe immer noch keine Antwort auf die Frage und morgen muss ich sie senden. Und ich weiß nicht, wie man die Korrektur annimmt, aber das ist gegenwärtig wirklich nicht in meinem Interesse – AzadefiaS