diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 0841cb7..49805af 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -205,12 +205,17 @@ jobs:
# Generate RCC file manually
if (Test-Path $rccPath) {
Write-Host "Generating RCC file..."
+ $rccInput = "src/Res/resources.qrc"
$rccOutput = "GeneratedFiles/qrc_resources.cpp"
- & $rccPath -name resources "resources.qrc" -o $rccOutput
- if ($LASTEXITCODE -eq 0) {
- Write-Host "Successfully generated RCC file: $rccOutput"
+ if (Test-Path $rccInput) {
+ & $rccPath -name resources $rccInput -o $rccOutput
+ if ($LASTEXITCODE -eq 0) {
+ Write-Host "Successfully generated RCC file: $rccOutput"
+ } else {
+ Write-Host "RCC generation failed with exit code: $LASTEXITCODE"
+ }
} else {
- Write-Host "RCC generation failed with exit code: $LASTEXITCODE"
+ Write-Host "RCC input file not found: $rccInput"
}
} else {
Write-Host "RCC tool not found, skipping resource compilation"
@@ -265,12 +270,12 @@ jobs:
Write-Host "VcpkgRoot: $env:VcpkgRoot"
Write-Host "VCPKG_ROOT: $env:VCPKG_ROOT"
- msbuild "Bind.sln" /p:Configuration=Debug /p:Platform=x64 /p:VcpkgEnabled=true /p:VcpkgEnableManifest=true /p:VcpkgUseStatic=false /p:VcpkgTriplet=x64-windows /p:QTDIR="$env:QTDIR" /p:VcpkgRoot="$env:VcpkgRoot"
+ msbuild "../SysCaller.sln" /p:Configuration=Debug /p:Platform=x64 /p:VcpkgEnabled=true /p:VcpkgEnableManifest=true /p:VcpkgUseStatic=false /p:VcpkgTriplet=x64-windows /p:QTDIR="$env:QTDIR" /p:VcpkgRoot="$env:VcpkgRoot" /t:Bind
- name: Copy Vcpkg Dependencies (Debug)
run: |
Write-Host "Copying Vcpkg Dependencies for Debug Build..."
- $outputDir = "x64/Debug"
+ $outputDir = "../Build/Bind/Debug"
$vcpkgBin = "${{ github.workspace }}/vcpkg/installed/x64-windows/bin"
# Copy Vcpkg Dependencies (Qt dependencies will be handled by windeployqt)
@@ -298,10 +303,10 @@ jobs:
Get-ChildItem "GeneratedFiles" -Name | Where-Object { $_ -like "*qrc*" } | ForEach-Object { Write-Host "Found RCC file: $_" }
}
- & $windeployqt "x64/Debug/Bind.exe" --debug --no-compiler-runtime --no-opengl-sw --force
+ & $windeployqt "../Build/Bind/Debug/Bind.exe" --debug --no-compiler-runtime --no-opengl-sw --force
if ($LASTEXITCODE -eq 0) {
Write-Host "Qt deployment completed successfully for Debug build"
- Get-ChildItem "x64/Debug" -Name | Sort-Object
+ Get-ChildItem "../Build/Bind/Debug" -Name | Sort-Object
} else {
Write-Host "windeployqt failed with exit code: $LASTEXITCODE"
}
@@ -317,12 +322,12 @@ jobs:
Write-Host "VcpkgRoot: $env:VcpkgRoot"
Write-Host "VCPKG_ROOT: $env:VCPKG_ROOT"
- msbuild "Bind.sln" /p:Configuration=Release /p:Platform=x64 /p:VcpkgEnabled=true /p:VcpkgEnableManifest=true /p:VcpkgUseStatic=false /p:VcpkgTriplet=x64-windows /p:QTDIR="$env:QTDIR" /p:VcpkgRoot="$env:VcpkgRoot"
+ msbuild "../SysCaller.sln" /p:Configuration=Release /p:Platform=x64 /p:VcpkgEnabled=true /p:VcpkgEnableManifest=true /p:VcpkgUseStatic=false /p:VcpkgTriplet=x64-windows /p:QTDIR="$env:QTDIR" /p:VcpkgRoot="$env:VcpkgRoot" /t:Bind
- name: Copy Vcpkg Dependencies (Release)
run: |
Write-Host "Copying Vcpkg Dependencies for Release Build..."
- $outputDir = "x64/Release"
+ $outputDir = "../Build/Bind/Release"
$vcpkgBin = "${{ github.workspace }}/vcpkg/installed/x64-windows/bin"
# Copy Vcpkg Dependencies (Qt dependencies will be handled by windeployqt)
@@ -345,10 +350,10 @@ jobs:
if (Test-Path $windeployqt) {
Write-Host "Running windeployqt on Release executable..."
- & $windeployqt "x64/Release/Bind.exe" --release --no-compiler-runtime --no-opengl-sw --force
+ & $windeployqt "../Build/Bind/Release/Bind.exe" --release --no-compiler-runtime --no-opengl-sw --force
if ($LASTEXITCODE -eq 0) {
Write-Host "Qt deployment completed successfully for Release build"
- Get-ChildItem "x64/Release" -Name | Sort-Object
+ Get-ChildItem "../Build/Bind/Release" -Name | Sort-Object
} else {
Write-Host "windeployqt failed with exit code: $LASTEXITCODE"
}
@@ -358,18 +363,18 @@ jobs:
- name: Verify Executables Exist
run: |
- if (Test-Path "x64/Release/Bind.exe") {
+ if (Test-Path "../Build/Bind/Release/Bind.exe") {
Write-Host "Bind.exe (Release) Built Successfully!"
- Get-Item "x64/Release/Bind.exe" | Select-Object Name, Length, LastWriteTime
+ Get-Item "../Build/Bind/Release/Bind.exe" | Select-Object Name, Length, LastWriteTime
} else {
Write-Host "Bind.exe (Release) not found!"
Get-ChildItem -Recurse -Name "*.exe" | ForEach-Object { Write-Host "Found: $_" }
exit 1
}
- if (Test-Path "x64/Debug/Bind.exe") {
+ if (Test-Path "../Build/Bind/Debug/Bind.exe") {
Write-Host "Bind.exe (Debug) Built Successfully!"
- Get-Item "x64/Debug/Bind.exe" | Select-Object Name, Length, LastWriteTime
+ Get-Item "../Build/Bind/Debug/Bind.exe" | Select-Object Name, Length, LastWriteTime
} else {
Write-Host "Bind.exe (Debug) not found!"
}
@@ -383,29 +388,29 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: Bind-Release
- path: Bind/x64/Release/
+ path: Build/Bind/Release/
retention-days: 30
- name: Upload Build Artifacts (Debug)
uses: actions/upload-artifact@v4
with:
name: Bind-Debug
- path: Bind/x64/Debug/
+ path: Build/Bind/Debug/
retention-days: 30
- name: Create Release Package
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
run: |
- $version = "v1.3.1-${{ github.run_number }}"
+ $version = "v1.3.2"
$zipName = "Bind-$version.zip"
New-Item -ItemType Directory -Path "release-package" -Force
- Copy-Item "x64/Release/*" "release-package\" -Recurse
+ Copy-Item "../Build/Bind/Release/*" "release-package\" -Recurse
# Create README
- $version = "v1.3.1-${{ github.run_number }}"
- $readmeText = "# SysCaller: Bind - v1.3.1`n`n"
+ $version = "v1.3.2"
+ $readmeText = "# SysCaller: Bind - v1.3.2`n`n"
$readmeText += "Build Date: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss UTC')`n"
$readmeText += "Commit: ${{ github.sha }}`n"
$readmeText += "Platform: Windows x64 (64-bit)`n"
@@ -430,7 +435,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: Release-Package
- path: Bind/Bind-v1.3.1-*.zip
+ path: Bind/Bind-v1.3.2.zip
retention-days: 90
- name: Create GitHub Release
@@ -440,10 +445,10 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
- tag_name: v1.3.1-${{ github.run_number }}
- release_name: "SysCaller: Bind - v1.3.1-${{ github.run_number }}"
+ tag_name: v1.3.2
+ release_name: "SysCaller: Bind - v1.3.2"
body: |
- ## SysCaller: Bind - v1.3.1-${{ github.run_number }}
+ ## SysCaller: Bind - v1.3.2
**Build Date:** ${{ github.event.head_commit.timestamp }}
**Commit:** ${{ github.sha }}
@@ -466,6 +471,6 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: Bind/Bind-v1.3.1-${{ github.run_number }}.zip
- asset_name: Bind-v1.3.1-${{ github.run_number }}.zip
+ asset_path: Bind/Bind-v1.3.2.zip
+ asset_name: Bind-v1.3.2.zip
asset_content_type: application/zip
diff --git a/Bind/Bind.sln b/Bind/Bind.sln
deleted file mode 100644
index b5f2aa1..0000000
--- a/Bind/Bind.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.14.36202.13 d17.14
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bind", "Bind.vcxproj", "{CB747D1D-F2CC-431A-B521-5F818525B584}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Debug|x64.ActiveCfg = Debug|x64
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Debug|x64.Build.0 = Debug|x64
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Debug|x86.ActiveCfg = Debug|Win32
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Debug|x86.Build.0 = Debug|Win32
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Release|x64.ActiveCfg = Release|x64
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Release|x64.Build.0 = Release|x64
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Release|x86.ActiveCfg = Release|Win32
- {CB747D1D-F2CC-431A-B521-5F818525B584}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {3F1738C2-4D41-43BE-BF82-34DE2903C01F}
- EndGlobalSection
-EndGlobal
diff --git a/Bind/Bind.vcxproj b/Bind/Bind.vcxproj
index 49319c2..8b08916 100644
--- a/Bind/Bind.vcxproj
+++ b/Bind/Bind.vcxproj
@@ -1,14 +1,6 @@
-
+
-
- Debug
- Win32
-
-
- Release
- Win32
-
Debug
x64
@@ -29,19 +21,6 @@
Bind
-
- Application
- true
- v143
- Unicode
-
-
- Application
- false
- v143
- true
- Unicode
-
Application
true
@@ -57,18 +36,13 @@
-
- $(QTDIR)
-
-
- $(QTDIR)
-
- $(QTDIR)
+ C:\Qt\5.15.2\msvc2019_64
debug
- $(QTDIR)
+ C:\Qt\5.15.2\msvc2019_64
+ 5.15.2_msvc2019_64
@@ -77,14 +51,6 @@
-
-
-
-
-
-
-
-
@@ -94,40 +60,20 @@
+
+ $(SolutionDir)Build\Bind\$(Configuration)\
+ $(SolutionDir)Build\Bind\int\$(Configuration)\
+
+
+ $(SolutionDir)Build\Bind\$(Configuration)\
+ $(SolutionDir)Build\Bind\int\$(Configuration)\
+
false
false
-
-
- Level3
- true
- WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- true
-
-
- Console
- true
-
-
-
-
- Level3
- true
- true
- true
- WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
- true
- true
-
-
- Console
- true
-
-
Level3
@@ -135,14 +81,14 @@
_DEBUG;UNICODE;_UNICODE;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_DLL;%(PreprocessorDefinitions)
true
stdcpp20
- GeneratedFiles\$(ConfigurationName);GeneratedFiles;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(VcpkgRoot)\installed\x64-windows\include;$(ProjectDir);%(AdditionalIncludeDirectories)
+ GeneratedFiles\$(ConfigurationName);GeneratedFiles;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(VcpkgRoot)\installed\x64-windows\include;$(MSBuildProjectDirectory)\include;%(AdditionalIncludeDirectories)
true
Windows
true
- $(QTDIR)\lib;$(VcpkgRoot)\installed\x64-windows\lib;$(ProjectDir);%(AdditionalLibraryDirectories)
- qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;cmark.lib;pe-parse.lib;%(AdditionalDependencies)
+ $(QTDIR)\lib;$(VcpkgRoot)\installed\x64-windows\lib;%(AdditionalLibraryDirectories)
+ Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;qtmain.lib;cmark.lib;pe-parse.lib;%(AdditionalDependencies)
@@ -154,33 +100,20 @@
NDEBUG;UNICODE;_UNICODE;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_DLL;%(PreprocessorDefinitions)
true
stdcpp20
- GeneratedFiles\$(ConfigurationName);GeneratedFiles;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(VcpkgRoot)\installed\x64-windows\include;$(ProjectDir);%(AdditionalIncludeDirectories)
+ GeneratedFiles\$(ConfigurationName);GeneratedFiles;$(QTDIR)\include;$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;$(VcpkgRoot)\installed\x64-windows\include;$(MSBuildProjectDirectory)\include;%(AdditionalIncludeDirectories)
true
Windows
true
- $(QTDIR)\lib;$(VcpkgRoot)\installed\x64-windows\lib;$(ProjectDir);%(AdditionalLibraryDirectories)
- qtmain.lib;Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;cmark.lib;pe-parse.lib;%(AdditionalDependencies)
+ $(QTDIR)\lib;$(VcpkgRoot)\installed\x64-windows\lib;%(AdditionalLibraryDirectories)
+ Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;qtmain.lib;pe-parse.lib;cmark.lib;%(AdditionalDependencies)
-
-
-
-
-
- %(AdditionalDependencies)
-
+
+ "$(QTDIR)\bin\windeployqt.exe" "$(TargetPath)"
+
-
-
-
-
-
-
-
-
-
@@ -224,6 +157,15 @@
+
+
+
+
+
+
+
+
+
@@ -237,13 +179,12 @@
-
-
-
-
+
+
+
@@ -264,42 +205,42 @@
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
@@ -336,24 +277,24 @@
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
-
+
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
GeneratedFiles\moc_%(Filename).cpp
%(AdditionalDependencies)
-
+
Document
$(QTDIR)\bin\moc.exe "%(FullPath)" -o "GeneratedFiles\moc_%(Filename).cpp"
@@ -430,28 +371,27 @@
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -460,5 +400,4 @@
-
diff --git a/Bind/Bind.vcxproj.filters b/Bind/Bind.vcxproj.filters
deleted file mode 100644
index f14865e..0000000
--- a/Bind/Bind.vcxproj.filters
+++ /dev/null
@@ -1,396 +0,0 @@
-
-
-
-
- {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
- cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
-
-
- {93995380-89BD-4b04-88EB-625FBE52EBFB}
- h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
-
-
- {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
- rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
-
-
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
- Source Files
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
- Resource Files
-
-
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
- Header Files
-
-
-
-
- Resource Files
-
-
-
-
- Resource Files
-
-
-
-
- Resource Files
-
-
-
\ No newline at end of file
diff --git a/Bind/include/Core/Integrity/Compatibility/Compatibility.h b/Bind/include/Core/Integrity/Compatibility/Compatibility.h
index e7c6338..9dcfc09 100644
--- a/Bind/include/Core/Integrity/Compatibility/Compatibility.h
+++ b/Bind/include/Core/Integrity/Compatibility/Compatibility.h
@@ -1,16 +1,14 @@
#pragma once
-#include
-#include
-#include
#include
#include
-#include
-#include
-#include
+#include
+#include
+#include
+#include
+#include
+#include
#include
-#include "include/GUI/Themes/Colors.h"
-#include "include/Core/Utils/Utils.h"
class Compatibility : public QObject {
Q_OBJECT
diff --git a/Bind/include/Core/Integrity/Integrity.h b/Bind/include/Core/Integrity/Integrity.h
new file mode 100644
index 0000000..9d9be02
--- /dev/null
+++ b/Bind/include/Core/Integrity/Integrity.h
@@ -0,0 +1,5 @@
+#pragma once
+
+#include
+#include
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Integrity/Validator/Validator.h b/Bind/include/Core/Integrity/Validator/Validator.h
index 9fab9fb..c10eb4b 100644
--- a/Bind/include/Core/Integrity/Validator/Validator.h
+++ b/Bind/include/Core/Integrity/Validator/Validator.h
@@ -1,18 +1,16 @@
#pragma once
-#include
-#include
+#include
#include
#include
-#include
#include
-#include
-#include
-#include
+#include
+#include
+#include
+#include
+#include
+#include
#include
-#include
-#include "include/GUI/Themes/Colors.h"
-#include "include/Core/Utils/Utils.h"
class Validator : public QObject {
Q_OBJECT
diff --git a/Bind/include/Core/Integrity/Verification/Verification.h b/Bind/include/Core/Integrity/Verification/Verification.h
index f90ec58..5232f26 100644
--- a/Bind/include/Core/Integrity/Verification/Verification.h
+++ b/Bind/include/Core/Integrity/Verification/Verification.h
@@ -1,19 +1,16 @@
#pragma once
-#include
-#include
-#include
-#include
#include
#include
+#include
#include
-#include
-#include
+#include
+#include
+#include
+#include
+#include
+#include
#include
-#include
-#include
-#include "include/GUI/Themes/Colors.h"
-#include "include/Core/Utils/Utils.h"
class Verification : public QObject {
Q_OBJECT
@@ -55,7 +52,7 @@ class Verification : public QObject {
QString returnType;
int parameterCount;
QStringList errors;
- QList> typeDefinitions; // type, source_file
+ QList> typeDefinitions; /* type, source_file */
};
class TypeDefinitionTracker {
@@ -92,4 +89,9 @@ class Verification : public QObject {
uint64_t imageBase;
QMap syscallNumbers;
std::function outputCallback;
+
+ QStringList outputBuffer;
+ static constexpr int OUTPUT_BATCH_SIZE = 20; /* flush buffer every 20 syscalls */
+ int processedCount;
+ void flushOutputBuffer();
};
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Direct/ControlFlow/DirectControlFlow.h b/Bind/include/Core/Obfuscation/Direct/ControlFlow/DirectControlFlow.h
index 8ecb267..29a40de 100644
--- a/Bind/include/Core/Obfuscation/Direct/ControlFlow/DirectControlFlow.h
+++ b/Bind/include/Core/Obfuscation/Direct/ControlFlow/DirectControlFlow.h
@@ -1,10 +1,10 @@
#pragma once
-#include
-#include
#include
-#include
#include
+#include
+#include
+#include
namespace DirectObfuscation {
@@ -37,4 +37,4 @@ namespace DirectObfuscation {
int getControlFlowComplexity();
};
-}
+}
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Direct/Direct.h b/Bind/include/Core/Obfuscation/Direct/Direct.h
new file mode 100644
index 0000000..293bdcf
--- /dev/null
+++ b/Bind/include/Core/Obfuscation/Direct/Direct.h
@@ -0,0 +1,7 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Direct/Encryption/DirectEncryptor.h b/Bind/include/Core/Obfuscation/Direct/Encryption/DirectEncryptor.h
index fa4498d..2d8650c 100644
--- a/Bind/include/Core/Obfuscation/Direct/Encryption/DirectEncryptor.h
+++ b/Bind/include/Core/Obfuscation/Direct/Encryption/DirectEncryptor.h
@@ -1,20 +1,20 @@
#pragma once
-#include
#include
-#include
-#include
#include
+#include
+#include
#include
+#include
namespace DirectObfuscation {
enum class EncryptionMethod {
- BasicXOR = 1, // simple XOR encryption
- MultiKeyXOR = 2, // multi key XOR encryption
- AddXORCombo = 3, // addition + XOR combination
- EnhancedXOR = 4, // enhanced XOR with larger keys
- OffsetShifting = 5 // offset shifting/masking
+ BasicXOR = 1, /* simple XOR encryption */
+ MultiKeyXOR = 2, /* multi key XOR encryption */
+ AddXORCombo = 3, /* addition + XOR combination */
+ EnhancedXOR = 4, /* enhanced XOR with larger keys */
+ OffsetShifting = 5 /* offset shifting/masking */
};
inline QString encryptionMethodToString(EncryptionMethod method) {
@@ -34,7 +34,7 @@ namespace DirectObfuscation {
if (str.contains("add", Qt::CaseInsensitive) || str.contains("combo", Qt::CaseInsensitive)) return EncryptionMethod::AddXORCombo;
if (str.contains("enhanced", Qt::CaseInsensitive)) return EncryptionMethod::EnhancedXOR;
if (str.contains("offset", Qt::CaseInsensitive) || str.contains("shifting", Qt::CaseInsensitive)) return EncryptionMethod::OffsetShifting;
- return EncryptionMethod::BasicXOR; // default
+ return EncryptionMethod::BasicXOR;
}
class Encryptor {
@@ -54,4 +54,4 @@ namespace DirectObfuscation {
void setSettings(QSettings* settings);
};
-}
+}
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Direct/Mapping/DirectStubMapper.h b/Bind/include/Core/Obfuscation/Direct/Mapping/DirectStubMapper.h
index 88da88a..235b1d4 100644
--- a/Bind/include/Core/Obfuscation/Direct/Mapping/DirectStubMapper.h
+++ b/Bind/include/Core/Obfuscation/Direct/Mapping/DirectStubMapper.h
@@ -1,13 +1,13 @@
#pragma once
-#include
#include
-#include
-#include
-#include
#include
+#include
+#include
+#include
#include
-#include "include/GUI/Themes/Colors.h"
+#include
+#include
namespace DirectObfuscation {
@@ -40,4 +40,4 @@ namespace DirectObfuscation {
void setOutputCallback(std::function callback);
};
-}
+}
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Direct/Stub/DirectJunkGenerator.h b/Bind/include/Core/Obfuscation/Direct/Stub/DirectJunkGenerator.h
index f747109..a933f65 100644
--- a/Bind/include/Core/Obfuscation/Direct/Stub/DirectJunkGenerator.h
+++ b/Bind/include/Core/Obfuscation/Direct/Stub/DirectJunkGenerator.h
@@ -1,7 +1,7 @@
#pragma once
-#include
#include
+#include
namespace DirectObfuscation {
diff --git a/Bind/include/Core/Obfuscation/Direct/Stub/DirectStubGenerator.h b/Bind/include/Core/Obfuscation/Direct/Stub/DirectStubGenerator.h
index d422bf9..0e22ce0 100644
--- a/Bind/include/Core/Obfuscation/Direct/Stub/DirectStubGenerator.h
+++ b/Bind/include/Core/Obfuscation/Direct/Stub/DirectStubGenerator.h
@@ -1,10 +1,10 @@
#pragma once
+#include
+#include
#include
#include
-#include
#include
-#include
namespace DirectObfuscation {
@@ -34,4 +34,4 @@ namespace DirectObfuscation {
int getRandomInt(int min, int max);
};
-}
+}
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Indirect/ControlFlow/IndirectControlFlow.h b/Bind/include/Core/Obfuscation/Indirect/ControlFlow/IndirectControlFlow.h
index 35786da..eaa845d 100644
--- a/Bind/include/Core/Obfuscation/Indirect/ControlFlow/IndirectControlFlow.h
+++ b/Bind/include/Core/Obfuscation/Indirect/ControlFlow/IndirectControlFlow.h
@@ -1,18 +1,18 @@
#pragma once
+#include
+#include
#include
#include
#include
-#include
-#include
namespace IndirectObfuscation {
enum class ControlFlowPattern {
- RegisterBased = 0, // register based opaque predicate
- ValueBased = 1, // value based opaque predicate
- FlagBased = 2, // flag based opaque predicate
- MixedJunkCode = 3 // mixed junk code with opaque predicate
+ RegisterBased = 0, /* register based opaque predicate */
+ ValueBased = 1, /* value based opaque predicate */
+ FlagBased = 2, /* flag based opaque predicate */
+ MixedJunkCode = 3 /* mixed junk code with opaque predicate */
};
inline QString controlFlowPatternToString(ControlFlowPattern pattern) {
@@ -29,7 +29,7 @@ namespace IndirectObfuscation {
if (str == "value") return ControlFlowPattern::ValueBased;
if (str == "flag") return ControlFlowPattern::FlagBased;
if (str == "mixed") return ControlFlowPattern::MixedJunkCode;
- return ControlFlowPattern::RegisterBased; // default
+ return ControlFlowPattern::RegisterBased;
}
class ControlFlow {
@@ -42,4 +42,4 @@ namespace IndirectObfuscation {
QString generateControlFlowObfuscation();
};
-}
+}
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Indirect/Encryption/IndirectEncryptor.h b/Bind/include/Core/Obfuscation/Indirect/Encryption/IndirectEncryptor.h
index 40f6041..ce79cf8 100644
--- a/Bind/include/Core/Obfuscation/Indirect/Encryption/IndirectEncryptor.h
+++ b/Bind/include/Core/Obfuscation/Indirect/Encryption/IndirectEncryptor.h
@@ -1,7 +1,7 @@
#pragma once
-#include
#include
+#include
namespace IndirectObfuscation {
diff --git a/Bind/include/Core/Obfuscation/Indirect/Encryptor/IndirectEncryptor.h b/Bind/include/Core/Obfuscation/Indirect/Encryptor/IndirectEncryptor.h
deleted file mode 100644
index 706bbb0..0000000
--- a/Bind/include/Core/Obfuscation/Indirect/Encryptor/IndirectEncryptor.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#pragma once
-
-#include
-#include
-
-namespace IndirectObfuscation {
-
- class Encryptor {
- public:
- static QString generateEncryptedSyscallNumbers();
- };
-}
diff --git a/Bind/include/Core/Obfuscation/Indirect/Indirect.h b/Bind/include/Core/Obfuscation/Indirect/Indirect.h
new file mode 100644
index 0000000..0d53419
--- /dev/null
+++ b/Bind/include/Core/Obfuscation/Indirect/Indirect.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#include
+#include
+#include
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectJunkGenerator.h b/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectJunkGenerator.h
index 3eeb24b..0995434 100644
--- a/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectJunkGenerator.h
+++ b/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectJunkGenerator.h
@@ -1,8 +1,8 @@
#pragma once
+#include
#include
#include
-#include
namespace IndirectObfuscation {
diff --git a/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectStubGenerator.h b/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectStubGenerator.h
index 3d27d7f..d554a7c 100644
--- a/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectStubGenerator.h
+++ b/Bind/include/Core/Obfuscation/Indirect/Stub/IndirectStubGenerator.h
@@ -1,17 +1,17 @@
#pragma once
+#include
#include
#include
-#include
-#include
+#include
namespace IndirectObfuscation {
enum class ResolverCallMethod {
- RegisterPointer = 0, // register pointer call via R10
- StackIndirect = 1, // stack indirect call (16 byte aligned)
- StackScratch = 2, // stack scratch space indirect call
- RegisterShuffle = 3 // register shuffle call via R10
+ RegisterPointer = 0, /* register pointer call via R10 */
+ StackIndirect = 1, /* stack indirect call (16 byte aligned) */
+ StackScratch = 2, /* stack scratch space indirect call */
+ RegisterShuffle = 3 /* register shuffle call via R10 */
};
inline QString resolverCallMethodToString(ResolverCallMethod method) {
@@ -28,7 +28,7 @@ namespace IndirectObfuscation {
if (str == "stack") return ResolverCallMethod::StackIndirect;
if (str == "indirect") return ResolverCallMethod::StackScratch;
if (str == "shuffle") return ResolverCallMethod::RegisterShuffle;
- return ResolverCallMethod::RegisterPointer; // default
+ return ResolverCallMethod::RegisterPointer;
}
class StubGenerator {
diff --git a/Bind/include/Core/Obfuscation/IndirectObfuscation.h b/Bind/include/Core/Obfuscation/IndirectObfuscation.h
index 03c1230..d559584 100644
--- a/Bind/include/Core/Obfuscation/IndirectObfuscation.h
+++ b/Bind/include/Core/Obfuscation/IndirectObfuscation.h
@@ -1,10 +1,10 @@
#pragma once
+#include
#include
#include
#include
-#include
-#include
+#include
class IndirectObfuscationManager {
private:
@@ -24,4 +24,4 @@ class IndirectObfuscationManager {
void setOutputCallback(std::function callback);
bool generateIndirectObfuscation();
bool processIndirectAssemblyFile(const QString& asmPath, const QString& headerPath);
-};
+};
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Obfuscation.h b/Bind/include/Core/Obfuscation/Obfuscation.h
index 181b57c..e9a1a18 100644
--- a/Bind/include/Core/Obfuscation/Obfuscation.h
+++ b/Bind/include/Core/Obfuscation/Obfuscation.h
@@ -1,12 +1,12 @@
#pragma once
-#include
-#include
#include
#include
-#include
#include
-#include "include/GUI/Themes/Colors.h"
+#include
+#include
+#include
+#include
enum class ObfuscationMode {
Normal = 0,
@@ -51,4 +51,4 @@ class Obfuscation {
void setOutputCallback(std::function callback);
static int extractSyscallOffset(const QString& line);
bool generateExports();
-};
+};
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Shared/Shared.h b/Bind/include/Core/Obfuscation/Shared/Shared.h
new file mode 100644
index 0000000..c41d1df
--- /dev/null
+++ b/Bind/include/Core/Obfuscation/Shared/Shared.h
@@ -0,0 +1,3 @@
+#pragma once
+
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Obfuscation/Shared/Stub/NameGenerator.h b/Bind/include/Core/Obfuscation/Shared/Stub/NameGenerator.h
index ffe4b52..b0e0303 100644
--- a/Bind/include/Core/Obfuscation/Shared/Stub/NameGenerator.h
+++ b/Bind/include/Core/Obfuscation/Shared/Stub/NameGenerator.h
@@ -1,8 +1,8 @@
#pragma once
-#include
#include
#include
+#include
namespace SharedObfuscation {
diff --git a/Bind/include/Core/Utils/Common.h b/Bind/include/Core/Utils/Common.h
new file mode 100644
index 0000000..32d2ea5
--- /dev/null
+++ b/Bind/include/Core/Utils/Common.h
@@ -0,0 +1,8 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Utils/Constants.h b/Bind/include/Core/Utils/Constants.h
new file mode 100644
index 0000000..4d5f1f7
--- /dev/null
+++ b/Bind/include/Core/Utils/Constants.h
@@ -0,0 +1,32 @@
+#pragma once
+
+#include
+
+namespace Constants {
+ /* timeout values (milliseconds) */
+ constexpr int THREAD_TERMINATION_TIMEOUT_MS = 5000;
+ constexpr int THREAD_FORCE_TERMINATION_TIMEOUT_MS = 1000;
+
+ constexpr int MAX_FILE_PATH_LENGTH = 260;
+ constexpr int MIN_REQUIRED_PROJECT_ITEMS = 3;
+
+ const QString DEFAULT_NTDLL_PATH = "C:\\Windows\\System32\\ntdll.dll";
+
+ const QString ENV_SYSCALLER_ROOT = "SYSCALLER_ROOT";
+}
+
+/* error code enums */
+enum class ErrorCode : int {
+ Success = 0,
+ GeneralError = -1,
+ FileNotFound = -2,
+ FileAccessDenied = -3,
+ InvalidPath = -4,
+ InvalidSettings = -5,
+ ThreadTimeout = -6,
+ OperationCancelled = -7,
+ ValidationFailed = -8,
+ CompatibilityFailed = -9,
+ VerificationFailed = -10,
+ ObfuscationFailed = -11
+};
\ No newline at end of file
diff --git a/Bind/include/Core/Utils/Dependencies.h b/Bind/include/Core/Utils/Dependencies.h
new file mode 100644
index 0000000..ccd8646
--- /dev/null
+++ b/Bind/include/Core/Utils/Dependencies.h
@@ -0,0 +1,9 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Utils/PathUtils.h b/Bind/include/Core/Utils/PathUtils.h
index 2bd444a..5f3a4a2 100644
--- a/Bind/include/Core/Utils/PathUtils.h
+++ b/Bind/include/Core/Utils/PathUtils.h
@@ -1,10 +1,10 @@
#pragma once
-#include
#include
#include
-#include
#include
+#include
+#include
class PathUtils {
public:
diff --git a/Bind/include/Core/Utils/QtDependencies.h b/Bind/include/Core/Utils/QtDependencies.h
new file mode 100644
index 0000000..64e04cb
--- /dev/null
+++ b/Bind/include/Core/Utils/QtDependencies.h
@@ -0,0 +1,69 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
\ No newline at end of file
diff --git a/Bind/include/Core/Utils/Utils.h b/Bind/include/Core/Utils/Utils.h
index 665bf24..99d3124 100644
--- a/Bind/include/Core/Utils/Utils.h
+++ b/Bind/include/Core/Utils/Utils.h
@@ -1,11 +1,10 @@
#pragma once
-#include
+#include
#include
+#include
#include
-#include
-#include
-#include
+#include
#include
class SyscallExtractor {
diff --git a/Bind/include/Core/Utils/Version.h b/Bind/include/Core/Utils/Version.h
new file mode 100644
index 0000000..1d14386
--- /dev/null
+++ b/Bind/include/Core/Utils/Version.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#define SYSCALLER_VERSION_MAJOR 1
+#define SYSCALLER_VERSION_MINOR 3
+#define SYSCALLER_VERSION_PATCH 2
+
+#define SYSCALLER_VERSION_STRING "1.3.2"
+#define SYSCALLER_VERSION_STRING_FULL "v" SYSCALLER_VERSION_STRING
+
+#define SYSCALLER_APP_NAME "Bind"
+#define SYSCALLER_WINDOW_TITLE SYSCALLER_APP_NAME " - " SYSCALLER_VERSION_STRING_FULL
\ No newline at end of file
diff --git a/Bind/include/GUI/Bars.h b/Bind/include/GUI/Bars.h
new file mode 100644
index 0000000..ff0678f
--- /dev/null
+++ b/Bind/include/GUI/Bars.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#include
+#include
+#include