
Collare adalah alat untuk rekayasa balik kolaboratif yang bertujuan untuk memungkinkan tim yang perlu menggunakan lebih dari satu alat selama proyek untuk berkolaborasi tanpa perlu berbagi file di lokasi terpisah. Ini juga berisi manajemen pengguna yang sangat sederhana dan karena itu dapat digunakan untuk server multi-proyek di mana tim yang berbeda bekerja pada proyek yang berbeda. Back-end alat ini adalah Flask app sederhana dengan nginx di depannya berjalan di Docker yang bekerja dengan file dan manifes berbasis JSON yang menyimpan data yang relevan. Front-end adalah alat GUI berbasis PYQT dengan antarmuka sederhana yang memungkinkan mengelola proyek dan bekerja dengan file biner dan database rekayasa terbalik yang sesuai. Sampai sekarang alat ini mendukung Binary Ninja , Cutter (Rizin) , Ghidra , Hopper Dissassembler , IDA , JEB dan Android Studio (Decompiled by JADX) . Implementasi diabstraksikan dari cara kerja alat -alat ini sebanyak mungkin untuk menghindari masalah dengan perubahan API apa pun dan dengan demikian tidak berintegrasi langsung ke dalam alat -alat tersebut dalam bentuk plugin (kecuali untuk plugin migrasi data yang dijelaskan di bawah). Pekerjaan ini didasarkan murni pada mengelola file yang diproduksi oleh alat-alat ini (secara harfiah hanya berdasarkan ekstensi file yang terkenal) dan operasi check-out gaya SVN sederhana dan operasi check-in .
Raih rilis biner terbaru dari repositori ini atau klon repo dan jalankan sudo python3 setup.py install di linux atau gunakan baris perintah pada windows dan jalankan python3 setup.py install . Di Linux ini akan menginstal alat ke PATH dan Anda akan dapat menjalankannya hanya dengan perintah collare . Pada Windows ini akan menempatkan file ke dalam C:Users<USERNAME>AppDataLocalProgramsPython<PYTHON_VERSION>Scriptscollare.exe (tergantung pada bagaimana Anda menginstal python).
Untuk UIS Desktop Berbasis GNOME Anda dapat menggunakan file desktop berikut (jalur ke file dapat bervariasi berdasarkan versi Collare dan Python):
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=CollaRE
Exec=/usr/local/bin/collare
Icon=/usr/local/lib/python3.8/dist-packages/collare-1.2-py3.8.egg/collare/icons/collare.png
Terminal=false
Untuk mengaktifkan dukungan untuk pemotong, tambahkan Cutter file ke jalur Anda (saat Anda membuka cmd / Cutter penulisan terminal harus memulai aplikasi). Saat menyimpan proyek Cutter (Rizin), Anda harus menambahkan .rzdb secara manual. Jangan hapus ekstensi yang sudah dimiliki file ( exe atau so misalnya).
Untuk mengaktifkan dukungan untuk biner ninja, tambahkan file binaryninja ke jalur Anda (saat Anda membuka cmd / terminal binaryninja harus memulai aplikasi). Binary Ninja menghapus ekstensi file secara default, namun alat ini menyumbang ini sehingga tidak perlu mengembalikan ekstensi file asli secara manual. Menyimpan proyek seperti di jalur default sudah cukup untuk berhasil mendorong database bndb lokal.
Untuk mengaktifkan dukungan untuk Hopper Disassembler, tambahkan file Hopper ke jalur Anda (saat Anda membuka cmd / terminal Writing Hopper harus memulai aplikasi). Hopper menghapus ekstensi file secara default, namun alat ini akun untuk ini sehingga tidak perlu mengembalikan ekstensi file asli secara manual. Menyimpan proyek hanya dengan Ctrl+S sudah cukup untuk berhasil mendorong database hop lokal.
Untuk mengaktifkan dukungan untuk JEB, tambahkan file jeb ke jalur Anda (saat Anda membuka cmd / Penulisan terminal jeb harus memulai aplikasi). Ini dapat dilakukan dengan mengganti nama file skrip runner default untuk OS Anda ke jeb (untuk Windows ini sebenarnya adalah jeb.bat ).
Untuk mengaktifkan dukungan untuk alat IDA, tambahkan file ida64 dan ida ke jalur Anda (saat Anda membuka cmd / Penulisan terminal ida64 / ida harus memulai aplikasi).
Untuk mengaktifkan dukungan untuk alat ini, tambahkan file ghidraRun dan analyzeHeadless ( .bat untuk windows) ke jalur Anda (saat Anda membuka cmd / penulisan terminal ghidraRun harus memulai aplikasi). Perhatikan bahwa analyzeHeadless di Folder support di Direktori Root Ghidra, jadi pastikan untuk menyesuaikan PATH untuk mengakomodasi kedua file. Proses menginisialisasi database dengan GHIDRA sedikit lebih rumit karena tidak mungkin Ghidra akan memproses file tanpa membuat proyek. Jadi untuk dapat mendorong database GHIDRA (disebut sebagai ghdb ) Anda akan diminta untuk membuat proyek secara manual setiap kali pemrosesan otomatis gagal (pada dasarnya setiap kali file yang Anda proses bukan ELF/PE) dan kemudian tentukan jalur ke file gpr (maaf untuk itu).
Karena file APK dan JAR sering ditemui selama upaya rekayasa terbalik, alat Collare juga mendukung bekerja dengan jenis file ini. Untuk mengaktifkan dukungan untuk alat-alat ini, perlu untuk memastikan bahwa file android-studio dan jadx keduanya berada di jalur (ketika Anda membuka cmd / terminal menulis android-studio / jadx harus memulai aplikasi). Alat JADX digunakan untuk melakukan dekompilasi file JAR/APK dan studio Android digunakan untuk membuka file yang dihasilkan. Perhatikan bahwa penggunaan Android Studio adalah opsional karena Anda dapat alias alat lain yang menangani proyek lulusan di bawah perintah android-studio (seperti Intellij Idea).
Setelah menggunakan sisi server seperti yang disebutkan dalam file ReadMe sendiri, perlu untuk mendistribusikan file sertifikat yang digunakan ke semua pengguna aplikasi serta menggunakan akun admin default dengan kata sandi admin untuk membuat akun pengguna lain (jangan lupa mengubah kata sandi pengguna admin ) melalui tab Admin . Ketika pengguna dikonfigurasi, siapa pun dapat membuat proyek mereka sendiri dan mulai bekerja dengan alat itu sendiri.
Untuk membuat pengguna proyek harus terlebih dahulu mengotentikasi ke server jarak jauh dengan memasukkan URL, kredensial dan memberikan sertifikat untuk memvalidasi identitas server. Setelah itu, status akan berubah menjadi Connected dan dimungkinkan untuk memilih atau menghapus proyek yang ada atau membuat proyek baru dengan hanya memasukkan nama (karakter alfanumerik dan _ saja) dan memilih pengguna yang akan berpartisipasi dalam proyek (dapat diubah nanti di tab Admin ). Perhatikan bahwa pengguna yang membuat proyek ditambahkan secara otomatis ke daftar pengguna sehingga Anda tidak perlu memilih diri sendiri.

Setelah Anda berada di tab Project View Anda dapat membuat folder baru (karakter alfanumerik dan _ saja, maaf) dan gunakan drag dan lepas untuk mengunggah file (atau folder).

Karena alat saat ini tidak memiliki plugin atau kait asli yang akan memungkinkan unggahan otomatis ketika proyek disimpan, diperlukan bahwa dorongan file DB lokal dipicu secara manual setelah membuat database yang diinginkan. Ini dapat dilakukan dengan mengklik kanan pada file biner yang diunggah dan memilih alat rzdb ingin Anda ikuti. Jangan ubah jalur dan nama file . Setelah melakukan ini dan menutup Disassembler, Anda dapat mengklik kanan pada nama biner dan pilih opsi Push Local DBs . Ini akan mengunggah database lokal dan mulai sekarang saat Anda ingin bekerja dengan file DB yang perlu Anda lakukan Check-out . Perhatikan bahwa setiap biner dapat diproses di semua alat secara terpisah tetapi hanya satu file dB per biner dan alat yang dapat ada.

Ketika Anda hanya ingin memeriksa file, Anda dapat mengklik kanan file DB yang diinginkan dan memilih opsi opsi Open File (atau cukup klik dua kali). Jika file diperiksa kepada Anda, ini akan membuka file lokal dan Anda dapat dengan bebas melakukan perubahan apa pun pada file DB. Setelah selesai (atau ketika Anda hanya ingin mendorong perubahan) Anda dapat memilih opsi Check-in . Ini akan mengunggah perubahan ke server dan meminta Anda apakah Anda ingin menyimpan file untuk perubahan lebih lanjut. Jika Anda ingin membuang perubahan lokal Anda, pilih opsi Undo Check-out dari menu konteks. Ini akan membuang perubahan Anda dan memungkinkan Anda untuk melanjutkan dengan file dari server. Membuka file tanpa melakukan operasi Check-out terlebih dahulu akan membukanya dalam mode read-only palsu (Anda dapat melakukan perubahan pada file DB tetapi itu akan hilang saat Anda check-out atau membuka file).

Alat ini juga mendukung versi file DB dengan cara yang dihitung setiap tindakan Check-in sebagai versi baru dari file DB. Anda akan diminta untuk memasukkan komentar untuk versi yang digunakan untuk memberikan lebih banyak konteks pada perubahan yang diterapkan dalam versi itu. Maka dimungkinkan untuk membuka atau memeriksa versi file sebelumnya dan mengerjakannya.

Folder plugin di dalam repositori ini berisi plugin untuk alat yang didukung yang memungkinkan Anda untuk berbagi komentar dan nama fungsi antara alat jika Anda bekerja pada satu biner dengan banyak alat. Ikuti instruksi pemasangan plugin standar untuk alat yang Anda minati. Setiap plugin menawarkan Import dan fungsi Export . Ketika Anda berencana untuk membagikan data antara alat selalu memastikan bahwa Anda Import data terlebih dahulu untuk menghindari penggantian nama yang sudah diganti namanya oleh orang lain. Jika plugin dilengkapi dengan beberapa tangkapan, itu disebutkan dalam file readme dari plugin yang diberikan. Perhatikan bahwa plugin dimaksudkan untuk memigrasi data ke alat lain daripada untuk kolaborasi simultan banyak orang.
