Skip to content

address changes in the config_t structure on IDA 93#57

Merged
xorpse merged 8 commits intomasterfrom
update/ida93-license-manager
Feb 20, 2026
Merged

address changes in the config_t structure on IDA 93#57
xorpse merged 8 commits intomasterfrom
update/ida93-license-manager

Conversation

@yeggor
Copy link
Copy Markdown
Contributor

@yeggor yeggor commented Jan 22, 2026

I tested idalib on the recently released IDA 93 Beta 2 (Version 9.3.260119.bd658ba9).

It was not working due to the changes in the structures related to license checking logic.
The changes were minor, related to config_t (similar to previous update).

As we can see from the pseudocode below, with the changes applied, the logic resolves correctly in libida:

  memset(&qerror, 0, sizeof(qerror));
  license_manager = get_license_manager(v6);
  license_res = license_manager->_vtbl->check_license_params(license_manager, 0, 0);
  if ( license_res && license_res->is_ok )
    goto _exit;
  license_location = get_config()->license_location;
  config0 = get_config();
  license_info = config0->license_info;
  if ( (debug & 0x200) != 0 )
  {
    get_license_str(config0->license_info->lid, &qinfo);
    license = qinfo.n ? qinfo.body : &g_qstring_nullstr;
    callui_msg("Attempting to acquire license: %s\n", license);
    if ( qinfo.body )
    {
      qinfo.n = 0;
      qfree(qinfo.body);
    }
  }
  if ( !license_manager->_vtbl->get_or_borrow_license(license_manager, license_location, license_info, 16, &qerror) )
    goto _exit;
  if ( (g_error_debug & 0xFFFFFFFE) == 2 )
  {
    if ( qerror.n )
      body = qerror.body;
    else
      body = &g_qstring_nullstr;
    result = msg("Failed to retrieve license: %s", body);
    goto _exit_with_err;
  }
  callui(ui_process_action);
  if ( !license_manager->_vtbl->check_license_params(license_manager, 0, 0) )
  {
    result = msg("Cannot continue without a valid license");
_exit_with_err:
    __break(1u);
    return result;
  }

The changes have been tested on macos/linux/windows.

Also, starting with version 9.3, hex-rays provides "armlinux" installers, however libraries are not yet available in releases/9.3.0-beta branch: https://github.com/HexRaysSA/ida-sdk/tree/53900700e45498ccff48edadf6b495c9be2532ae/src/lib. But I verified statically that uint8_t _skip_a[0x2a0]; will work for it (structures are matches between x86-64/AArch64).

@yeggor yeggor marked this pull request as ready for review February 13, 2026 22:28
@yeggor
Copy link
Copy Markdown
Contributor Author

yeggor commented Feb 13, 2026

@xorpse I've updated the ida-sdk submodule and tested changes with the 9.3.260213.91fc47de released today (macos/windows/linux-x86). We still can't test it with IDA Pro Linux ARM64 9.3 because libraries were not released: https://github.com/HexRaysSA/ida-sdk/tree/d5db59ab4e9d2ae92038e9520082affd0da6fe20/src/lib.

Linking the issue in ida-sdk: HexRaysSA/ida-sdk#32.

@xorpse
Copy link
Copy Markdown
Member

xorpse commented Feb 14, 2026

I think we can still move to make an initial release--this one would be a new platform anyway, so it's unlikely to affect any current users. I propose to do a quick release with the support we have, then make a follow-up with additional support and #46 once it's ready. After that, we can do a major release with the mutability rework.

@yeggor
Copy link
Copy Markdown
Contributor Author

yeggor commented Feb 14, 2026

Yeah sounds good

@yeggor yeggor requested a review from xorpse February 16, 2026 14:14
@0xdea
Copy link
Copy Markdown
Contributor

0xdea commented Feb 18, 2026

Hi, chiming in to ask if you have any plans for an IDA 9.3 compatibility release?

@xorpse
Copy link
Copy Markdown
Member

xorpse commented Feb 18, 2026

Hi, chiming in to ask if you have any plans for an IDA 9.3 compatibility release?

Yes, following HexRaysSA/ida-sdk#32 (comment) well make a release today or tomorrow.

@xorpse xorpse merged commit 955276c into master Feb 20, 2026
@xorpse xorpse deleted the update/ida93-license-manager branch February 20, 2026 03:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants