ESET Research mengumumkan IPyIDA 2.0, sebuah plugin Python yang mengintegrasikan IPython dan Jupyter Notebook ke dalam IDA
IDA Pro dari Hex-Rays mungkin merupakan alat paling populer saat ini untuk perangkat lunak rekayasa balik. Bagi para peneliti ESET, alat ini adalah disassembler favorit dan menginspirasi pengembangannya IPyIDA plugin yang menyematkan file Kernel IPython ke IDA Pro. Di bawah pengembangan berkelanjutan sejak 2014, dengan senang hati kami mengumumkan rilis versi 2.0. IPyIDA melayani tujuan yang sama dengan yang disebut plugin lain IDA IPython, tetapi dengan twist: sedangkan IDA IPython hanya mendukung Windows, IPyIDA mendukung macOS, Linux, dan Windows.
Jika Anda sudah terbiasa dengan IDA Pro dan IPython, lewati ke bagian terakhir dari artikel ini di IPyIDA. Jika Anda tidak terbiasa dengan IPython, lewati ke bagian tengah. Terakhir, jika Anda menghargai pengenalan singkat tentang IDA Pro, baca terus.
Apa itu IDA Pro?
IDA Pro adalah disassembler yang menerjemahkan kode mesin menjadi kode rakitan. Setelah memuat file, IDA Pro membongkarnya dan menyimpan analisisnya dalam file database. IDA Pro menyediakan berbagai jendela ke dalam database, masing-masing secara unik membantu peneliti menemukan dan lebih memahami kode minat.
Mari kita lihat beberapa jendela ini dengan memuat file File MathLibrary.dll, yang dapat dibangun dengan Microsoft tutorial membuat file DLL.
Jendela keluaran
Jendela Keluaran menampilkan pesan tentang status analisis file, pesan kesalahan untuk operasi yang diminta pengguna, dan keluaran dari beberapa plugin. Gambar 1 menunjukkan jendela Keluaran setelah pemuatan pertama MathLibrary.dll.
Di bagian bawah jendela ini terdapat kolom input yang menerima perintah. Gambar 2 menunjukkan dua penyedia bahasa perintah default yang disertakan dengan IDA sejak versi 7.3: IDC untuk perintah yang ditulis dalam bahasa mirip-C asli IDA dan Plugin IDAPython untuk perintah yang ditulis dengan Python.
Jendela Tampilan IDA
Jendela Tampilan IDA, juga dikenal sebagai jendela pembongkaran, memiliki dua format tampilan: tampilan grafik dan tampilan teks. Tampilan grafik memvisualisasikan aliran program dengan membagi fungsi menjadi blok dengan satu entri dan satu titik keluar. Gambar 3 menunjukkan tampilan grafik.
Tampilan teks memberikan tampilan linier dari pembongkaran yang menampilkan alamat virtual, kode rakitan, dan komentar. Gambar 4 menunjukkan tampilan teks.
Selain ini dan banyak jendela lain yang disediakan IDA, IDA memungkinkan Anda menulis plugin khusus yang memperluas fiturnya dan menyelesaikan masalah rekayasa balik praktis. Mari beralih ke IPython dan beberapa fitur menarik yang ditawarkannya kepada insinyur balik yang menggunakan skrip Python di IDA.
Sekilas tentang IPython
Sementara IDAPython melayani kebutuhan dasar untuk menjalankan skrip dan perintah Python di IDA, penggemar Python telah dicengkeram oleh IPython demam. IPython adalah toolkit yang menawarkan pengalaman yang lebih interaktif dengan Python. IPython menggunakan model dua proses yang terdiri dari kernel dan klien. Kernel adalah proses yang menerima perintah dari klien, mengeksekusinya, dan mengembalikan hasilnya. Klien dapat berupa konsol interaktif seperti Konsol Jupyter, Konsol Jupyter Qt, atau Notebook Jupyter.
Sifat interaktif dari klien ini berasal dari sejumlah fitur yang mereka tambahkan ke shell Python klasik. Gambar 5 menunjukkan penggunaan blok kode multiline untuk mendefinisikan fungsi di IPython.
Perhatikan penyorotan sintaks bilangan bulat, kata kunci, fungsi bawaan, dan string.
Dengan menekan Tab key, IPython menyediakan daftar atribut, objek, atau fungsi relevan yang dapat melengkapi kode. Gambar 6 menunjukkan fungsi daftar penyelesaian tab yang relevan dengan objek string.
Penyelesaian tab lebih kaya jika Jedi diinstal.
IPython juga menyediakan fungsi magic, yaitu fungsi yang biasanya disebut dengan a % or %% awalan dan ambil argumen dengan sintaks gaya baris perintah. Gambar 7 menunjukkan % waktu fungsi ajaib, yang mengatur waktu eksekusi ekspresi Python.
Dengan menggunakan! karakter di awal baris perintah, konsol IPython meneruskan perintah ke shell sistem yang mendasarinya untuk dijalankan. Misalnya, perintah populer adalah biji, yang menginstal dan mengelola paket dari Indeks Paket Python (PyPi). Gambar 8 menunjukkan !pip perintah dijalankan dari IPython.
IPython menyediakan lebih banyak fitur interaktif yang dapat dijelajahi di dokumentasi resmi.
IPyIDA: Membawa IPython ke IDA
Dengan dirilisnya IPyIDA 2.0, penulisan skrip Python di IDA menjadi lebih bersahabat karena keuntungan sebagai berikut:
- Dukungan untuk IDA di Windows, Linux, dan macOS
- Skrip instalasi untuk pengaturan yang mudah, bahkan dalam file lingkungan virtual
- Konsol Qt Jupyter berjalan di jendela IDA
- Kernel IPython yang dapat terhubung ke ujung depan, seperti Konsol Jupyter, dari luar IDA.
- Proksi kernel Jupyter untuk mendukung pembukaan Notebook Jupyter yang menghubungkan kembali ke kernel IPython dengan %Buka_notebook fungsi sihir
Gambar 9 menunjukkan proses membuka Notebook Jupyter dari IPyIDA.
Gambar 10 menunjukkan Konsol Jupyter berjalan di sesi terminal di luar IDA yang terhubung ke kernel IPython di IDA.
Pilihan Jupyter Qt Console untuk IPyIDA menghadirkan fitur interaktif tambahan ke konsol IPython tradisional, seperti grafik sebaris, penyimpanan dan pencetakan sesi saat ini, dan penyorotan sintaks penuh. Ini diilustrasikan dalam dokumentasi resmi untuk Jupyter Qt Console.
IPyIDA bahkan menyediakan fitur interaktifnya sendiri yang terinspirasi oleh IDA. Gambar 11 menunjukkan bahwa Ctrl-klik (Cmd-klik pada macOS) pada alamat atau nama variabel di konsol IPython akan mengalihkan tampilan ke alamat virtual di jendela pembongkaran.
Gambar 12 menunjukkan hex dump untuk array byte dengan konten non-ASCII.
Jika Anda baru mengenal IDA Pro, IPyIDA sangat membantu untuk membiasakan diri dengan API IDA. Jika Anda seorang veteran, IPyIDA membuat skrip Python jauh lebih mudah, dan dengan demikian waktu yang dihabiskan untuk rekayasa balik semoga lebih fokus dan bermanfaat.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Sumber: https://www.welivesecurity.com/2023/01/12/introducing-ipyida-python-plugin-reverse-engineering-toolkit/
- 1
- 10
- 11
- 2014
- 7
- 9
- a
- Tentang Kami
- Menerima
- tambahan
- Tambahan
- alamat
- alamat
- keuntungan
- Setelah
- Membantu
- memungkinkan
- sudah
- analisis
- dan
- Mengumumkan
- Mengumumkan
- Lain
- menghargai
- argumen
- susunan
- artikel
- Majelis
- menarik
- atribut
- kembali
- dasar
- karena
- menjadi
- Awal
- makhluk
- Lebih baik
- Memblokir
- Blok
- Bawah
- Membawa
- Membawa
- dibangun di
- built-in
- bernama
- karakter
- pilihan
- klasik
- klien
- klien
- kode
- komentar
- lengkap
- penyelesaian
- Terhubung
- Menghubungkan
- menghubungkan
- Terdiri dari
- konsul
- Konten
- kontinu
- membuat
- terbaru
- adat
- Basis Data
- Default
- Pengembangan
- Display
- menampilkan
- dokumentasi
- membuang
- setiap
- mudah
- berakhir
- Teknik
- Insinyur
- peminat
- masuk
- kesalahan
- Bahkan
- contoh
- Laksanakan
- eksekusi
- Exit
- pengalaman
- Dieksplorasi
- memperpanjang
- akrab
- Favorit
- Fitur
- beberapa
- bidang
- Angka
- File
- File
- Akhirnya
- Menemukan
- Pertama
- aliran
- terfokus
- berikut
- ramah
- dari
- depan
- penuh
- fungsi
- fungsi
- gif
- memberikan
- Sekilas
- grafik
- grafis
- membantu
- HEX
- menyoroti
- Mudah-mudahan
- tuan rumah
- HTML
- HTTPS
- besar
- IDC
- in
- memasukkan
- terinspirasi
- Mengintegrasikan
- interaktif
- bunga
- memperkenalkan
- Pengantar
- IT
- melompat
- kunci
- dikenal
- bahasa
- baris
- linux
- Daftar
- daftar
- pemuatan
- melihat
- mesin
- macos
- sihir
- MEMBUAT
- mengelola
- banyak
- max-width
- pesan
- Microsoft
- model
- lebih
- paling
- Paling Populer
- nama
- asli
- Alam
- kebutuhan
- New
- buku catatan
- obyek
- objek
- Penawaran
- pembukaan
- Operasi
- Lainnya
- di luar
- sendiri
- paket
- paket
- melewati
- plato
- Kecerdasan Data Plato
- Data Plato
- senang
- Plugin
- plugin
- Titik
- Populer
- Praktis
- per
- mungkin
- masalah
- proses
- program
- penyedia
- menyediakan
- wakil
- tujuan
- Ular sanca
- QT
- Baca
- menerima
- melepaskan
- relevan
- penelitian
- peneliti
- peneliti
- Hasil
- Pengembalian
- membalikkan
- Run
- berjalan
- penghematan
- script
- melayani
- Sidang
- penyiapan
- Kulit
- dikirimkan
- Pertunjukkan
- mirip
- sejak
- tunggal
- Perangkat lunak
- MEMECAHKAN
- beberapa
- menghabiskan
- Status
- toko
- seperti itu
- mendukung
- Mendukung
- sintaksis
- sistem
- Mengambil
- terminal
- Grafik
- waktu
- kali
- untuk
- hari ini
- alat
- toolkit
- tradisional
- MENGHIDUPKAN
- twist
- khas
- bawah
- pokok
- memahami
- tidak biasa
- menggunakan
- berbagai
- versi
- veteran
- View
- maya
- yang
- SIAPA
- lebar
- Windows
- akan
- menulis
- penulisan
- tertulis
- Kamu
- Anda
- zephyrnet.dll