Pentesting Tools, Tutorial, and Information Technology

Minggu, 14 Januari 2018

pycrate: Python library Untuk Memudahkan Pengembangan Encoders Dan Decoders



Pycrate merupakan perangkat lunak dari pada satu perpustakaan tunggal. Ini terdiri dari beberapa subdirektori, masing-masing memberikan layanan khusus.

Komponen

pycrate_core
  inti dari library.

  • utils menyediakan fungsi dasar untuk memanipulasi integers, byte dan bit.
  • charpy menyediakan kelas Charpy untuk menangani dengan mudah konsumsi bit-stream.
  • elt dan base menyediakan beberapa kelas untuk membantu saat membangun struktur data yang kompleks.
  • repr menyediakan fungsi sederhana untuk membantu contoh representasi dari modul elt dan base.
Beberapa fitur yang paling berguna disediakan oleh fungsi pack_val() dari modul utils, dan kelas Charpy dari modul charpy. Mereka membantu untuk menangani dengan mudah dengan mengemas dan membongkar byte, dan integers(signed/unsigned, little/big endian) dengan cara yang selaras dan tidak tetap. Semua bidang disediakan dalam bit, sehingga memudahkan penanganan struktur yang tidak tetap.

pycrate_ether
  modul yang disediakan di sini menerapkan protokol & format Ethernet dan IP.
  • Ethernet dengan struktur untuk header Ethernet dan VLAN.
  • ARP cukup sediakan struktur untuk ARP.
  • IP dengan struktur untuk IPv4, IPv6, ICMP, UDP dan TCP.
  • PCAP dengan struktur untuk header PCAP global, dan header rekaman (record header).

pycrate_media
  modul disini menerapkan berbagai format multimedia.
  • JPEG dengan struktur rinci yang digunakan dalam format JPEG.
  • GIF dengan struktur rinci yang digunakan dalam format GIF.
  • BMP dengan struktur yang digunakan dalam format BMP.
  • TIFF dengan struktur rinci yang digunakan dalam format TIFF.
  • PNG dengan struktur dasar yang digunakan dalam format PNG.
  • MPEG4 dengan struktur dasar yang digunakan dalam format file MPEG4.
  • MP3 dengan struktur rinci yang digunakan dalam format MP3, termasuk tag ID3v1 dan ID3v2.
Sebagian besar kelas di sini menerapkan resep lengkap untuk mengurai semua format tersebut dalam single shot, dengan menggunakan metode from_char().

pycrate_asn1c
  Semua modul di sini hanya berfungsi untuk mengumpulkan spesifikasi ASN.1.
  • asnobj yang merupakan kelas saat menguraikan definisi ASN.1 apa pun.
  • generator yang menyediakan dua generator berbeda untuk menghasilkan file sumber dari objek ASN.1 yang diproses dengan Python: PycrateGenerator yang menghasilkan file sumber yang akan digunakan dengan pycrate ASN.1 runtime (dalam pycrate_asn1rt), dan JSONDepGraphGenerator yang menghasilkan file json yang berisi dependensi objek (yang maka bisa dilihat secara dinamis berkat D3).
  • proc yang merupakan modul tingkat atas untuk compiler. misalnya, fungsi compile_text() yang mengumpulkan serangkaian modul ASN.1 menjadi objek Python.
Kompilator ini mendukung sebagian besar fitur bahasa ASN.1, termasuk parameterisasi, objek kelas, dan rangkaian (terutama berguna saat bekerja dengan kendala tabel). Namun, hanya ada sedikit batasan, yang terbesar adalah kebutuhan akan bagian kiri dari penugasan ASN.1 :: = berada pada satu jalur tunggal. Dan juga, old-school makro ASN.1 tidak didukung; Oleh karena itu, compiler tidak bisa mengurai SNMP MIBs.

pycrate_asn1dir
  Subdirektori ini berisi beberapa spesifikasi ASN.1 yang didukung dan dikompilasi untuk pycrate. sangat sedikit spesifikasi yang telah diubah agar bisa bekerja dengan pycrate.
  • Q.775, di mana AllPackagesAS yang dikomentari.
  • Q.773 dan Q.775, di mana kendala TCInvokeIdSet dimodifikasi agar lebih mudah digunakan sebagai seperangkat nilai.
pycrate_asn1rt

Subdirektori ini berisi runtime ASN.1, yang dimuat dan digunakan oleh spesifikasi ASN.1 yang dikompilasi dengan compiler di pycrate_asn1c. Ini mendukung peraturan pengkodean PER, dan peraturan pengkodean BER, CER dan DER.

pycrate_csn1

Subdirektori ini berisi penerjemah CSN.1 ke Python di file trans.py, dan runtime CSN.1 berada di file csnobj.py, ini berfungsi untuk mengkodekan dan mendekode struktur CSN.1 yang diterjemahkan ke objek Python.

pycrate_csn1dir

Subdirektori ini berisi beberapa struktur CSN.1 yang diambil dari spesifikasi 3GPP (dalam file .csn), dan diterjemahkan ke objek Python.

pycrate_mobile
  Subdirektori ini mengimplementasikan sebagian besar format protokol 3GPP NAS:
  • GSMTAP format header gsmtap.
  • MCC_MNC kamus untuk pencarian MCC dan MNC.
  • NAS menyediakan dua fungsi untuk mengurai semua pesan NAS mobile uplink dan downlink.
  • NASLTE  menyediakan dua fungsi untuk mengurai semua pesan NAS mobile uplink & downlink.
  • PPP struktur untuk protokol NCP dan LCP yang digunakan untuk pendirian koneksi PPP.
  • TS23038 struktur dan rutinitas untuk pengkodean SMS.
  • TS23040 struktur untuk protokol transport SMS.
  • TS24007 struktur dasar dari spesifikasi TS 24.007, digunakan kembali di sebagian besar protokol NAS
  • TS24008_CC struktur untuk pesan kontrol panggilan dari TS 24.008
  • TS24008_GMM struktur untuk pesan manajemen mobilitas GPRS dari TS 24.008
  • TS24008_IE struktur untuk banyak elemen informasi dari TS 24.008
  • TS24008_MM struktur untuk pesan manajemen mobilitas dari TS 24.008
  • TS24008_SM struktur pesan manajemen sesi GPRS dari TS 24.008
  • TS24011_PPSMS struktur untuk protokol point-to-point SMS
  • TS24080_SS struktur untuk protokol Layanan Tambahan, membungkus beberapa objek MAP ASN.1
  • TS24301_EMM struktur untuk pesan manajemen mobilitas EPS dari TS 24.301
  • TS24301_ESM struktur untuk pesan manajemen mobilitas EPS dari TS 24.301
  • TS24301_IE struktur untuk banyak elemen informasi dari TS 24.301

pycrate_corenet

Subdirektori ini menerapkan server pensinyalan yang mendukung antarmuka IUH (termasuk HNBAP dan RUA/RANAP) untuk berinteraksi dengan femtocell 3G, dan cukup banyak tumpukan IuCS dan IuPS untuk mendukung keterikatan dan mobilitas ponsel yang terhubung melalui femtocells.


Instalasi

Sistem operasi dan versi Python
Perpustakaan ini dirancang untuk bekerja dengan Python2 (2.7) dan Python3 (3.4, 3.5, atau yang lebih baru), dari penerapan Python resmi, ini juga mendukung mesin Python alternatif seperti pypy atau nuitka. ini berarti secara teratur diuji baik di Linux dan Windows.

Dependencies

Saat ini tidak ada. Hanya builtin Python dan beberapa modul internal Python (misal: os, sistem, re) diperlukan untuk sebagian besar fitur. Bagian pycrate_corenet membutuhkan pysctp dan CryptoMobile.

 Instalasi Otomatis

Script instalasi tersedia. ini akan menginstal perpustakaan dalam direktori paket Python anda:
git clone https://github.com/ANSSI-FR/pycrate.git
python setup.py install
Hal ini untuk menguji library sebelum menginstalnya (ini akan membuat dua direktori lokal ./test_asn/ dan ./pycrate.egg-info/ yang bisa anda hapus sesudahnya):
python setup.py test
atau untuk membangun library tanpa menginstalnya di sistem:
python setup.py build
Hal ini juga untuk mengkompilasi ulang semua modul ASN.1, ini akan memakan waktu beberapa menit (tapi jika saya tidak melakukan kesalahan, semua modul ASN.1 yang tersedia di //ycrate_asn1dir/ seharusnya telah dikompilasi dengan versi kompilator terbaru):
python -m pycrate_asn1c.proc

Wiki Github

Tidak ada komentar:

Posting Komentar