Portabelization IDA



Eine ganz kleine Nachricht.

Aus verschiedenen persönlichen Gründen ziehe ich mein Toolkit gerne auf ein Flash-Laufwerk oder eine externe Festplatte. Ein Tool ist IDA 6.8.

Nach der Arbeit mit Systemen mag ich es nicht, wenn es Schwänze in der Registrierung oder in Form von Dateien gibt. Und leider sind die IDA und ihre Module (insbesondere BinnDiff) daran schuld.

Nun, es bestand der Wunsch, einen vollständig tragbaren Komplex zu erhalten.

Nun, im Ausmaß ihres bescheidenen Wissens und Verständnisses des Problems waren drei Lösungen sichtbar:

  1. Wickeln Sie alles in ThinApp oder TurboStudio ein. Das Ergebnis war groß, umständlich und konnte Plugins usw. nur eingeschränkt aktualisieren. Passte nicht.
  2. Schreiben Sie einen Bewohner, der die Änderungen nachverfolgt und nach dem Ende der IDA-Sitzung zurücksetzt. Das Ergebnis war ziemlich groß (mehrere Megabyte) oder erforderte das Vorhandensein von Bibliotheken im System, um ausgeführt zu werden. Beim Ändern der Art der „Schwänze“ musste der Code neu geschrieben und kompiliert werden. Nicht das.
  3. Machen Sie mit den eingebauten Windows-Tools. Darüber - genauer.

Tatsächlich ist es auch ohne Powershell durchaus möglich, Schwänze in Form von Dateien und Registrierungsbilanzen in einer einfachen Windows-Batchdatei zu entfernen. Der Code in meinem Fall kam folgendermaßen heraus:

@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 

Ein Nebeneffekt einer solchen Batchdatei ist ein schwarzes Fenster, das während des IDA-Betriebs hängt. Also habe ich alles im Quick Batch Compiler zusammengestellt , wodurch das Programm vollständig „unsichtbar“ wurde.

Somit stellte sich heraus, dass es möglich war, das Programm mit der kleinsten Dateigröße zu portieren, ohne dass zusätzliche Bibliotheken erforderlich waren, und zwar ausschließlich mit den integrierten Windows-Tools, die seit mehr als 10 Jahren im Betriebssystem enthalten sind. Gleichzeitig ist die Möglichkeit, Plugins, Skripte und IDA-Einstellungen zu ändern, nicht eingeschränkt.

Dieses "Projekt" (sehr laut gesagt) befindet sich auf dem Github an derselben Stelle - der zusammengestellten Datei. Kritik und Ergänzungen werden akzeptiert.

PS: Ich weiß, dass sich ab IDA 7.0 die Pfade und betroffenen Dateien geändert haben. Aber ich benutze 6.8 angesichts der Tatsache, dass einige Plugins nicht unter 7.0 umgeschrieben werden, und im Allgemeinen mochte ich 7.0 nicht. Trotzdem lässt sich das vorgeschlagene Konzept leicht an neue Versionen von IDA anpassen.

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


All Articles