Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
4cd9cd1
CMake build
tomrus88 Mar 28, 2024
28439ea
Fix
tomrus88 Mar 28, 2024
074e22e
Fix
tomrus88 Mar 28, 2024
397bc97
Fix
tomrus88 Mar 28, 2024
26e16ca
Fix
tomrus88 Mar 28, 2024
523c1f6
Fix
tomrus88 Mar 28, 2024
90bdab2
Fix
tomrus88 Mar 28, 2024
ab45e2d
Fix
tomrus88 Mar 28, 2024
832fb14
Fix
tomrus88 Mar 28, 2024
e2f72c9
Fix
tomrus88 Mar 28, 2024
fab2354
Fix
tomrus88 Mar 28, 2024
90c8278
Fix
tomrus88 Mar 28, 2024
bc32671
Fix
tomrus88 Mar 28, 2024
5f7e187
Fix
tomrus88 Mar 28, 2024
428c663
Fix
tomrus88 Mar 28, 2024
05dbdac
Fix
tomrus88 Mar 28, 2024
f3f3d76
Fix
tomrus88 Mar 28, 2024
59cc132
Fix
tomrus88 Mar 28, 2024
090a518
Fix
tomrus88 Mar 28, 2024
b503535
Fix
tomrus88 Mar 28, 2024
61bcfaa
Fix
tomrus88 Mar 28, 2024
c75e57e
Fix
tomrus88 Mar 28, 2024
866da7d
Fix
tomrus88 Mar 29, 2024
ecb2549
Fix
tomrus88 Mar 29, 2024
aef3dea
Fix
tomrus88 Mar 29, 2024
20d0af8
Fix
tomrus88 Mar 29, 2024
be49071
Fix
tomrus88 Mar 29, 2024
97bda69
Fix
tomrus88 Mar 29, 2024
e942fc3
Fix
tomrus88 Mar 29, 2024
0aa652d
Fix
tomrus88 Mar 29, 2024
5a8617a
Fix
tomrus88 Mar 29, 2024
2b296a2
Fix
tomrus88 Mar 29, 2024
3e9fe84
Fix
tomrus88 Mar 29, 2024
5ba3ab5
Fix
tomrus88 Mar 29, 2024
b4f4c09
Fix
tomrus88 Mar 29, 2024
9b30fc6
Fix
tomrus88 Mar 29, 2024
7663d0f
Fix
tomrus88 Mar 29, 2024
5dc1005
Fix
tomrus88 Mar 29, 2024
41d549a
Fix
tomrus88 Mar 29, 2024
7bb69f6
Fix
tomrus88 Mar 30, 2024
4948924
Fix
tomrus88 Mar 30, 2024
5bb96d4
Fix
tomrus88 Mar 30, 2024
2dacdad
Fix
tomrus88 Mar 30, 2024
77b756c
Fix
tomrus88 Mar 30, 2024
1025ca6
Fix
tomrus88 Mar 30, 2024
c2d9d3a
Fix
tomrus88 Mar 30, 2024
e0dc3fb
Fix
tomrus88 Mar 30, 2024
9766e84
Fix
tomrus88 Mar 30, 2024
e2e19b5
Fix
tomrus88 Mar 30, 2024
2939eb2
Fix
tomrus88 Mar 30, 2024
cb0d5d3
Fix
tomrus88 Mar 30, 2024
8769e96
Fix
tomrus88 Mar 30, 2024
fb2897e
Fix
tomrus88 Mar 30, 2024
8fe77e9
Fix
tomrus88 Mar 30, 2024
2e86b61
Fix
tomrus88 Apr 1, 2024
3cd8787
Fix
tomrus88 Apr 1, 2024
af96781
Fix
tomrus88 Apr 1, 2024
06298cd
Fix
tomrus88 Apr 1, 2024
e2319ec
Allow providing multiple server certificates
tomrus88 Aug 13, 2024
c4ad573
Change to IDA 9.0 SDK
tomrus88 Aug 13, 2024
4783630
Fix
tomrus88 Aug 13, 2024
044add0
Fix
tomrus88 Aug 13, 2024
b96ef4f
Fix
tomrus88 Aug 13, 2024
da1d996
Optimize
tomrus88 Aug 14, 2024
5b024b2
Fix
tomrus88 Aug 14, 2024
bf9956e
Fix
tomrus88 Aug 14, 2024
ce10127
Update deps
tomrus88 Aug 14, 2024
6c690d5
Fix
tomrus88 Aug 14, 2024
8a180e0
Fix
tomrus88 Aug 14, 2024
0f46398
Fix
tomrus88 Aug 14, 2024
407eb7b
Fix
tomrus88 Aug 14, 2024
294e069
Fix
tomrus88 Aug 14, 2024
87a9133
Fix
tomrus88 Aug 14, 2024
1770bdd
Fix
tomrus88 Aug 14, 2024
27f72ce
Fix
tomrus88 Aug 14, 2024
927cecc
Fix
tomrus88 Aug 14, 2024
b75c1a7
Fix
tomrus88 Aug 14, 2024
3391edb
Fix
tomrus88 Aug 14, 2024
2c7c2d3
Fix
tomrus88 Aug 14, 2024
e51b965
Fix
tomrus88 Aug 14, 2024
8b11126
Fix
tomrus88 Aug 14, 2024
4ecc6d8
Fix
tomrus88 Aug 14, 2024
9e57b78
Fix
tomrus88 Aug 14, 2024
4f9ded1
Fix
tomrus88 Aug 14, 2024
ff7caaf
Fix
tomrus88 Aug 14, 2024
6a2ac42
Fix
tomrus88 Aug 14, 2024
9a0ec36
Fix
tomrus88 Aug 14, 2024
782ac40
Fix
tomrus88 Aug 14, 2024
dc5d21d
Fix
tomrus88 Aug 14, 2024
35da333
Fix
tomrus88 Aug 14, 2024
1df8338
Fix
tomrus88 Aug 14, 2024
a75d1f4
Fix
tomrus88 Aug 14, 2024
5fe4954
Fix
tomrus88 Aug 14, 2024
1327af7
Fix
tomrus88 Aug 14, 2024
2e9401f
Fix
tomrus88 Aug 14, 2024
9aae7e0
Fix
tomrus88 Aug 14, 2024
034aebb
Fix
tomrus88 Aug 14, 2024
5a29749
Fix
tomrus88 Aug 14, 2024
ab57bf9
Fix
tomrus88 Aug 14, 2024
87dc7fa
Fix
tomrus88 Aug 14, 2024
8a1eecb
Fix
tomrus88 Aug 14, 2024
da04440
Fix
tomrus88 Aug 14, 2024
3b8e6f4
Fix
tomrus88 Aug 14, 2024
6feddad
Fix
tomrus88 Aug 14, 2024
be37f50
del
tomrus88 Aug 14, 2024
86c2ca9
Fix
tomrus88 Aug 16, 2024
1f5cad0
Fix
tomrus88 Aug 16, 2024
66c7e16
Fix
tomrus88 Aug 16, 2024
943a25b
- Fix build with old IDA SDK's
tomrus88 Aug 30, 2024
61d434a
Update README.md
tomrus88 Sep 2, 2024
b1231e3
Update plthook
tomrus88 Sep 3, 2024
aabfdcc
Temp fix
tomrus88 Sep 3, 2024
e7dff65
Revert "Temp fix"
tomrus88 Sep 3, 2024
0768f9a
Fix
tomrus88 Sep 6, 2024
d81c5f8
Delete ida 9.0 beta 2 hacks
tomrus88 Oct 2, 2024
6d12bef
Test
tomrus88 Oct 20, 2024
d64de2f
Fix
tomrus88 Oct 20, 2024
c108892
Fix
tomrus88 Jan 15, 2025
758e6f6
Add https://github.com/tomrus88/OpenLumina/pull/5
tomrus88 May 9, 2025
0b6f508
Fix
tomrus88 May 10, 2025
f09bdac
Fix
tomrus88 May 10, 2025
412b345
Fix
tomrus88 Dec 23, 2025
4d5872b
- Add build workflow
tomrus88 Dec 23, 2025
279765d
Change branch
tomrus88 Dec 23, 2025
4165140
Fix
tomrus88 Dec 23, 2025
7c80ea2
Merge branch 'main' of github.com:tomrus88/OpenLumina into cmake-build
tomrus88 Dec 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: build

on:
push:
branches: [ "cmake-build" ]
tags:
- "v*"
pull_request:
branches: [ "cmake-build" ]

permissions: read-all

concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
permissions:
# for upload to release
contents: write
name: IDA ${{ matrix.ida.version }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.runner }}
strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false
matrix:
os:
- runner: ubuntu-latest
name: linux
mask: "*.so"
- runner: windows-latest
name: windows
mask: "Release/*.dll"
- runner: macos-latest
name: macos
mask: "*.dylib"
ida:
- version: "9.2"
ver: "92"

steps:
- name: Setup MSBuild
if: matrix.os.name == 'windows'
uses: microsoft/setup-msbuild@v1.1

- name: Setup Visual Studio 2022
if: matrix.os.name == 'windows'
uses: ilammy/msvc-dev-cmd@v1
with:
vsversion: 2022

- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
submodules: "recursive"

- name: Download IDA SDK ${{ matrix.ida.version }}
shell: bash
run: |
git clone https://github.com/HexRaysSA/ida-sdk.git ida-sdk
cd ida-sdk
git checkout v${{ matrix.ida.version }}
cd ..

- name: Setup CMake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.28.x'

- name: Build
shell: bash
run: |
cmake -D IDASDK_VER=${{ matrix.ida.ver }} -D IDASDK_DIR="${{ github.workspace }}/ida-sdk/src" -DCMAKE_BUILD_TYPE=Release -DIdaSdk_ROOT_DIR="${{ github.workspace }}/ida-sdk/src" -DIDA_90_STABLE=1 -B build
cmake --build build --config Release

- name: Collect artifacts
shell: bash
run: |
mkdir -p artifacts
cp -v ./build/${{ matrix.os.mask }} artifacts/
cp -v ida-plugin.json artifacts/

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: openlumina-ida${{ matrix.ida.version }}-${{ matrix.os.name }}
path: artifacts/*
if-no-files-found: error

release:
if: startsWith(github.ref, 'refs/tags/v')
needs: build
runs-on: ubuntu-latest
permissions:
contents: write
name: release for IDA ${{ matrix.ida.version }}
strategy:
fail-fast: false
matrix:
ida:
- version: "9.2"
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: openlumina-ida${{ matrix.ida.version }}-*
merge-multiple: true

- name: Create archive
shell: bash
run: |
cd artifacts
zip -r ../openlumina-ida${{ matrix.ida.version }}.zip *
cd ..
mv openlumina-ida${{ matrix.ida.version }}.zip artifacts/

- name: Upload release assets
uses: softprops/action-gh-release@v2
with:
files: artifacts/*.zip
fail_on_unmatched_files: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.vs/*
OpenLumina/x64/*
OpenLumina/*.user
out/*
x64/*
95 changes: 95 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
cmake_minimum_required(VERSION 3.27)

if (APPLE)
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE)
endif()

project(openlumina C CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if (WIN32)
#set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-fPIC")
#set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-fPIC")
elseif (APPLE)
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-fPIC")
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-fPIC")
elseif (UNIX)
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-fPIC")
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-fPIC")
else()
message(STATUS "Unknown platform!")
endif()

if (CMAKE_BUILD_TYPE MATCHES Release)
message(STATUS "Force CMAKE_INSTALL_DO_STRIP in Release")
set(CMAKE_INSTALL_DO_STRIP ON)
else()
set(CMAKE_INSTALL_DO_STRIP OFF)
endif()

list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

#if (UNIX OR APPLE)
# find_package(OpenSSL REQUIRED)
# if (OPENSSL_FOUND)
# include_directories(${OPENSSL_INCLUDE_DIR})
# message(STATUS "Found OpenSSL ${OPENSSL_VERSION} at ${OPENSSL_INCLUDE_DIR}")
# else()
# message(STATUS "OpenSSL Not Found")
# endif()
#endif()
find_package(IdaSdk REQUIRED)

include_directories(${PROJECT_SOURCE_DIR})

if (WIN32)
set(PLATFORM_SUFFIX "win32")
elseif (APPLE)
set(PLATFORM_SUFFIX "osx")
elseif (UNIX)
set(PLATFORM_SUFFIX "elf")
endif()

set(plthooksrc
"OpenLumina/plthook/plthook_${PLATFORM_SUFFIX}.c"
"OpenLumina/plthook/plthook.h"
)

add_library(PltHookLib STATIC ${plthooksrc})
set_target_properties(PltHookLib PROPERTIES LINKER_LANGUAGE C)

set(src
"OpenLumina/framework.h"
"OpenLumina/pch.cpp"
"OpenLumina/pch.h"
"OpenLumina/plugin_ctx.h"
"OpenLumina/OpenLumina.cpp"
"OpenLumina/OpenLumina.h"
)

if (IDA_90_STABLE)
message(STATUS "Compiling for IDA 9.0")
add_ida_plugin(OpenLumina NOEA32 ${PROJECT_SOURCE_DIR}/OpenLumina/OpenLumina.cpp)
else()
add_ida_plugin(OpenLumina ${PROJECT_SOURCE_DIR}/OpenLumina/OpenLumina.cpp)
endif()

set_ida_target_properties(OpenLumina PROPERTIES CXX_STANDARD 20)
if (UNIX OR APPLE)
set_ida_target_properties(OpenLumina PROPERTIES LINK_FLAGS_RELEASE -s)
endif()
ida_target_include_directories(OpenLumina PRIVATE ${IdaSdk_INCLUDE_DIRS})

add_ida_library(OpenLuminaLib ${src})

if (WIN32)
ida_target_link_libraries(OpenLumina crypt32.lib)
endif()
#if (UNIX OR APPLE)
# ida_target_link_libraries(OpenLumina OpenSSL::SSL)
#endif()
ida_target_link_libraries(OpenLumina PltHookLib)
ida_target_link_libraries(OpenLumina OpenLuminaLib)
26 changes: 26 additions & 0 deletions CMakeSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DIdaSdk_ROOT_DIR=e:/ida90/idasdk90/ -DIDA_90_STABLE=1",
"buildCommandArgs": "",
"ctestCommandArgs": ""
},
{
"name": "x64-Release",
"generator": "Ninja",
"configurationType": "Release",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DIdaSdk_ROOT_DIR=e:/ida90/idasdk90/ -DIDA_90_STABLE=1",
"buildCommandArgs": "",
"ctestCommandArgs": ""
}
]
}
Loading