MIPS ikilileri çözümlenirken: ikili veri ayrıştırmak için bir Python kütüphanesi var mı?

oy
10

Bir ikili içinde sembolik fonksiyon ismi ve kaynak kodu satır numarası onaltılık adreslerini çözümlemek için gereken bir yardımcı program üzerinde çalışıyorum. o analiz ikili bir MIPS tabanlı gömülü sistem için olacak olsa yarar, x86 üzerinde Linux üzerinde çalışır. MIPS ikili simgesel hata ayıklama bilgisi için cüce kullanarak, ELF biçimindedir.

Şu anda onaltılık adresleri listesi geçen ve fonksiyon isimleri ve kaynak satır numaraları almak için çıktı ayrıştırma objdump çatal planlıyorum. Ben MIPS ikili desteği ile bir objdump derledik ve çalışıyor.

Bana başka bir işlem forking olmadan Python kodundan doğal şeyler aramak için izin bir paket olmasını tercih ederim. Ben Python.org üzerinde libdwarf, libelf veya libbfd hiçbir söz, ne de dwarfstd.org üzerinde piton herhangi bir söz bulabilirsiniz.

Uygun bir modül yerde mevcut mudur?

Oluştur 05/09/2008 saat 13:44
kaynak kullanıcı
Diğer dillerde...                            


6 cevaplar

oy
3

Hiç bilmiyorum, ama her şeyin başarısız olursa kullanabilirsiniz ctypes doğrudan libdwarf, libelf veya libbfd kullanmak.

Cevap 05/09/2008 saat 14:23
kaynak kullanıcı

oy
4

Sen vermeli Construct bir deneyin. Piton nesneleri içine ikili veri ayrıştırmak için çok yararlıdır.

Için bir örnek bile yoktur elf32 dosya biçimi.

Cevap 04/02/2009 saat 08:19
kaynak kullanıcı

oy
3

Ben kullanarak CÜCE ayrıştırıcı gelişmekte oldum Construct . Şu anda oldukça kaba ve ayrıştırma yavaştır. Ama en azından bildirmek düşündüm. Bu işin biraz, sizin ihtiyaçlarınıza uygun olabilir.

Ben bitbucket barındırılan, Mercurial içinde bir kod var:

Construct çok ilginç bir kütüphane. CÜCE karmaşık bir biçimidir (Ben keşfediyorum gibi) ve sanırım onun sınırlarına Construct iter.

Cevap 29/08/2009 saat 23:48
kaynak kullanıcı

oy
2

hachior ikili veri ayrıştırma için bir başka kütüphanesi

Cevap 11/06/2010 saat 13:23
kaynak kullanıcı

oy
8

Sen den CÜCE kütüphanede isteyebilecek pydevtools :

>>> from bintools.dwarf import DWARF
>>> dwarf = DWARF('test/test')
>>> dwarf.get_loc_by_addr(0x8048475)
('/home/emilmont/Workspace/dbg/test/main.c', 36, 0)
Cevap 05/09/2010 saat 16:29
kaynak kullanıcı

oy
4

Kontrol edin pyelftools - Bunu yapmak amaçlı yeni saf Python kütüphanesi.

Cevap 06/01/2012 saat 05:11
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more