Running IDA 7.x/8.x inside Crossover 21/22/24

For a few versions I had issues running IDA Pro in Crossover with IDAPython enabled. Prior to the starting issues, everything worked fine, e.g. in the IDA 6.x version range. Please note that the setup of IDA Pro also succeeded with 7.x versions, but the program would crash and write a minidump whenever it started (provided it was installed with a Python it could detect).

Finally I got around to fixing the underlying issue (meanwhile I tested it with subsequent versions, see bottom of this post).

The steps are as follows:

  1. Create a Windows 10 64-bit bottle in Crossover
  2. (Optional!) Using “Run Command…” to start Wine’s regedit disable audio for the bottle by creating a key HKEY_CURRENT_USER\Software\Wine\Drivers with an empty REG_SZ (string) value named Audio
  3. Next use “Install” searching for “IDA Pro – Interactive Disassembler” 1 in the first step, picking the IDA installer, e.g. idapronw_*_*.exe, in the second and selecting the prepared bottle in the third, then finishing the installation
    • Follow the steps of the IDA Setup, leaving the defaults until the step following the installation password prompt
    • When it offers “Install Python 3” (the current default), uncheck that checkbox and proceed to the installation step with the progress bar
    • DO NOT be alarmed when after the installation concludes you get to see “The configuration failed with the following output:” complaining “No Python installations were found” — we are going to fix this part soon enough
    • The next step will claim success anyway
  4. (Optional!) For giggles you can now start the freshly installed IDA — it should work fine, but without IDAPython active
  5. (Optional!) Back in Crossover under “Edit Menus” uncheck the “Uninstall IDA …” item as well as the two other items from the start menu, without the IDA version number; only leaving the two items from the Desktop
  6. Next, download the Python 64-bit installer (e.g. python-3.10.1-amd64.exe) and install it into the bottle using “Run Command…”
    • Enable the “Add Python … to PATH” option on the initial setup wizard screen
    • Then click the “Customize installation” button
    • Leaving everything as is on the next page, proceed with “Next”
    • In the “Advanced Options” step check the “Install for all users” checkbox, which will alter the installation path to go into %ProgramFiles%
    • Proceed with the installation

      and wait for it to finish
  7. (Optional!) Back in Crossover under “Edit Menus” for the current bottle, I get rid of the IDLE entry, just leaving the Python, Manuals and Module Docs be
  8. Start the freshly installed IDA (64-bit) — it should work fine, but without IDAPython active
  9. Now comes the crucial final step, starting regedit using “Run Command…”, head to the IDA key (HKEY_CURRENT_USER\Software\Hex-Rays\IDA) and create a REG_SZ (string) value named Python3TargetDLL and containing the full path to the python3.dll inside the bottle, e.g. C:\Program Files\Python310\python3.dll for Python 3.10.x!

    NB: refrain from using python310.dll. Picking it appears to be part of the trouble!

The outcome should look somewhat akin to this:

// Oliver

NB: These instructions were tested with IDA Pro 7.6 SP1 (+ Python 3.8 + Python 3.10.0) and with IDA Pro 7.7 (+ Python 3.10.1) on Crossover 21 … and were tested again with IDA Pro 8.0 SP1 (+ Python 3.10.6) on Crossover 22 and IDA Pro 8.1 and 8.2 (+ 3.10) on Crossover 22.0.1 (does not work with Python 3.11) and IDA Pro 8.3 (+ 3.11) on Crossover 22.1.1 and IDA 8.4 (+ 3.10) on Crossover 24.0.0
PS: Once done, make sure to run /opt/cxoffice/bin/cxassoc --sync --bottle IDA … the outcome should look about like this when editing associations:

The $BOTTLEPATH/cxassoc.conf will contain the following entries:

[.i64]
"Mode" = "default"
"MimeType" = ""
"Description" = "IDA (64-bit) Database"
"AppName" = "The Interactive Disassembler"
"Type" = "Windows"

[.idb]
"Mode" = "default"
"MimeType" = ""
"Description" = "IDA (32-bit) Database"
"AppName" = "The Interactive Disassembler"
"Type" = "Windows"
  1. You could also use “Unlisted Application” here, but picking the above will allow the associations for .idb and .i64 to work []
This entry was posted in EN, Linux, Reversing, Software and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *