
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:
- Bungkus semuanya dalam ThinApp atau TurboStudio. Hasilnya besar, rumit, dengan kemampuan terbatas untuk memperbarui plugin, dll. Tidak cocok.
- 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.
- 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.