
Un tout petit message.
Pour un certain nombre de raisons personnelles, j'aime faire glisser ma boîte à outils sur un lecteur flash ou un disque dur externe. Un outil est IDA 6.8.
Après avoir travaillé avec des systèmes, je n'aime pas quand il y a des queues dans le registre ou sous forme de fichiers. Et malheureusement, l'IDA et ses modules (en particulier BinnDiff) en sont coupables.
Eh bien, il y avait un désir d'obtenir un complexe entièrement portable.
Eh bien, dans la mesure de leur connaissance et compréhension modestes du problème, trois solutions étaient visibles:
- Enveloppez tout dans ThinApp ou TurboStudio. Le résultat était grand, lourd, avec une capacité limitée à mettre à jour les plugins, etc. Ne correspondait pas.
- Écrivez à un résident qui suit les modifications et les annule après la fin de la session IDA. Le résultat était assez important (plusieurs mégaoctets) ou nécessitait la présence de bibliothèques dans le système pour fonctionner. Lors de la modification de la nature des «queues», il était nécessaire de réécrire et de compiler le code. Pas ça.
- Faites avec les outils Windows intégrés. À ce sujet - plus en détail.
En fait, il est tout à fait possible d'éliminer les queues sous forme de fichiers et d'équilibres de registre dans un simple fichier de commandes Windows même sans Powershell. Le code dans mon cas est sorti comme ceci:
@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
Un effet secondaire d'un tel fichier de commandes est une fenêtre noire qui se bloque pendant l'opération IDA. J'ai donc tout rassemblé dans le
compilateur Quick Batch , par conséquent le programme est devenu complètement «invisible».
Ainsi, il s'est avéré possible de porter le programme en utilisant la plus petite taille de fichier sans avoir besoin de bibliothèques supplémentaires, en utilisant exclusivement les outils Windows intégrés qui sont dans le système d'exploitation depuis plus de 10 ans. Dans le même temps, la possibilité de modifier les plugins, les scripts et les paramètres IDA n'est pas limitée.
Ce "projet" (dit très fort) est sur le
github, au même endroit - le fichier assemblé. La critique et les ajouts sont acceptés.
PS: je sais qu'à partir d'IDA 7.0, les chemins et les fichiers concernés ont changé. Mais j'utilise 6.8 étant donné que certains plugins ne sont pas réécrits sous 7.0, et en général je n'aimais pas 7.0. Néanmoins, le concept proposé s’adapte facilement aux nouvelles versions d’IDA.