Portabelisasi IDA



Pesan kecil.

Untuk sejumlah alasan pribadi, saya suka menyeret toolkit saya ke flash drive atau hard drive eksternal. Satu alat adalah IDA 6.8.

Setelah bekerja dengan sistem, saya tidak suka ketika ada ekor di registri atau dalam bentuk file. Dan sayangnya, IDA dan modul-modulnya (khususnya, BinnDiff) bersalah karenanya.

Nah, ada keinginan untuk mendapatkan kompleks yang sepenuhnya portabel.

Sejauh pengetahuan mereka yang sederhana dan pemahaman masalah, tiga solusi terlihat:

  1. Bungkus semuanya dalam ThinApp atau TurboStudio. Hasilnya besar, rumit, dengan kemampuan terbatas untuk memperbarui plugin, dll. Tidak cocok.
  2. Tulis penduduk yang melacak perubahan dan mengembalikannya setelah sesi IDA berakhir. Hasilnya cukup besar (beberapa megabyte) atau mengharuskan keberadaan perpustakaan di sistem untuk berjalan. Ketika mengubah sifat "ekor", perlu untuk menulis ulang dan mengkompilasi kode. Bukan itu.
  3. Lakukan dengan alat Windows bawaan. Tentang itu - lebih terinci.

Bahkan, sangat mungkin untuk menghilangkan ekor dalam bentuk file dan saldo dalam registri dalam file batch Windows yang sederhana bahkan tanpa Powershell. Kode dalam kasus saya keluar seperti ini:

@ECHO Off rem    rem   IDA      set xOS=x64& If "%PROCESSOR_ARCHITECTURE%"=="x86" (If Not Defined PROCESSOR_ARCHITEW6432 Set xOS=x86) rem        set param=%~1 rem        -      IDA? xcopy /E /I /C /Y /Q /H /R "%appdata%\zynamics" ".\Backup\zynamics" xcopy /E /I /C /Y /Q /H /R "%appdata%\Hex-Rays" ".\Backup\Hex-Rays" xcopy /E /I /C /Y /Q /H /R "%appdata%\IDA Pro" ".\Backup\IDA Pro" rem  ,    call :removedir "%appdata%\zynamics" call :removedir "%appdata%\Hex-Rays" call :removedir "%appdata%\IDA Pro" rem         xcopy /E /I /C /Y /Q /H /R ".\BinDiff\INI" "%appdata%\" xcopy /E /I /C /Y /Q /H /R ".\Hex-Rays" "%appdata%\" xcopy /E /I /C /Y /Q /H /R ".\Hex-Rays\IDA Pro" "%appdata%\IDA Pro" rem    IDA reg export HKEY_CURRENT_USER\Software\Hex-Rays backup.reg /y rem ...     reg import settings.reg rem  ,       rem    IDA   ,  32  Windows x64 if "%param%"=="32" goto x32 if "%param%"=="64" goto x64 if "%param:~1%"=="32" goto x32 if "%param:~1%"=="64" goto x64 if "%xOS%"=="x64" goto x64 if "%xOS%"=="x32" goto x32 rem  IDA x32     ,    :x32 start /wait idaq.exe goto end rem  IDA x64     ,    :x64 start /wait idaq64.exe goto end rem     :removedir del /F /Q /S %1 > nul rmdir /s /q %1 exit /b rem    :end rem       reg export HKEY_CURRENT_USER\Software\Hex-Rays settings.reg /y rem ...        xcopy /E /I /C /Y /Q /H /R "%appdata%\zynamics\*" ".\BinDiff\INI\zynamics" xcopy /E /I /C /Y /Q /H /R "%appdata%\Hex-Rays\*" ".\Hex-Rays" xcopy /E /I /C /Y /Q /H /R "%appdata%\IDA Pro" ".\Hex-Rays\IDA Pro" rem    reg delete HKEY_CURRENT_USER\Software\Hex-Rays /f rem ...   ,      reg import backup.reg rem    del /F /Q backup.reg call :removedir "%appdata%\zynamics" call :removedir "%appdata%\Hex-Rays" call :removedir "%appdata%\IDA Pro" rem     ,     xcopy /E /I /C /Y /Q /H /R ".\Backup\*" "%appdata%\" rem ...     call :removedir Backup 

Efek samping dari file batch tersebut adalah jendela hitam yang hang selama operasi IDA. Jadi saya memasukkan semuanya ke dalam Quick Batch Compiler , sebagai hasilnya program tersebut menjadi "tidak terlihat".

Dengan demikian, ternyata memungkinkan untuk port program menggunakan ukuran file terkecil tanpa perlu perpustakaan tambahan, secara eksklusif menggunakan alat Windows built-in yang telah di sistem operasi selama lebih dari 10 tahun di luar kotak. Pada saat yang sama, kemampuan untuk mengubah pengaturan plugin, skrip dan IDA tidak terbatas.

"Proyek" ini (kata sangat keras) ada di github, di tempat yang sama - file yang dirakit. Kritik dan tambahan diterima.

PS: Saya tahu bahwa mulai dengan IDA 7.0 jalur dan file yang terpengaruh telah berubah. Tapi saya menggunakan 6.8 mengingat fakta bahwa beberapa plugin tidak ditulis ulang di bawah 7.0, dan secara umum saya tidak suka 7.0. Namun demikian, konsep yang diusulkan mudah disesuaikan dengan versi baru IDA.

Source: https://habr.com/ru/post/id438652/


All Articles