mirror of
https://github.com/Milxnor/Cobalt.git
synced 2026-01-13 18:42:22 +01:00
main
This commit is contained in:
387
- Copy.gitignore
387
- Copy.gitignore
@@ -1,387 +0,0 @@
|
|||||||
## Ignore Visual Studio temporary files, build results, and
|
|
||||||
## files generated by popular Visual Studio add-ons.
|
|
||||||
##
|
|
||||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
|
||||||
|
|
||||||
# User-specific files
|
|
||||||
*.rsuser
|
|
||||||
*.suo
|
|
||||||
*.user
|
|
||||||
*.userosscache
|
|
||||||
*.sln.docstates
|
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
|
||||||
*.userprefs
|
|
||||||
|
|
||||||
# Mono auto generated files
|
|
||||||
mono_crash.*
|
|
||||||
|
|
||||||
# Build results
|
|
||||||
[Dd]ebug/
|
|
||||||
[Dd]ebugPublic/
|
|
||||||
[Rr]elease/
|
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
|
||||||
x86/
|
|
||||||
[Ww][Ii][Nn]32/
|
|
||||||
[Aa][Rr][Mm]/
|
|
||||||
[Aa][Rr][Mm]64/
|
|
||||||
bld/
|
|
||||||
[Bb]in/
|
|
||||||
[Oo]bj/
|
|
||||||
[Oo]ut/
|
|
||||||
[Ll]og/
|
|
||||||
[Ll]ogs/
|
|
||||||
|
|
||||||
# Visual Studio 2015/2017 cache/options directory
|
|
||||||
.vs/
|
|
||||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
|
||||||
#wwwroot/
|
|
||||||
|
|
||||||
# Visual Studio 2017 auto generated files
|
|
||||||
Generated\ Files/
|
|
||||||
|
|
||||||
# MSTest test Results
|
|
||||||
[Tt]est[Rr]esult*/
|
|
||||||
[Bb]uild[Ll]og.*
|
|
||||||
|
|
||||||
# NUnit
|
|
||||||
*.VisualState.xml
|
|
||||||
TestResult.xml
|
|
||||||
nunit-*.xml
|
|
||||||
|
|
||||||
# Build Results of an ATL Project
|
|
||||||
[Dd]ebugPS/
|
|
||||||
[Rr]eleasePS/
|
|
||||||
dlldata.c
|
|
||||||
|
|
||||||
# Benchmark Results
|
|
||||||
BenchmarkDotNet.Artifacts/
|
|
||||||
|
|
||||||
# .NET Core
|
|
||||||
project.lock.json
|
|
||||||
project.fragment.lock.json
|
|
||||||
artifacts/
|
|
||||||
|
|
||||||
# ASP.NET Scaffolding
|
|
||||||
ScaffoldingReadMe.txt
|
|
||||||
|
|
||||||
# StyleCop
|
|
||||||
StyleCopReport.xml
|
|
||||||
|
|
||||||
# Files built by Visual Studio
|
|
||||||
*_i.c
|
|
||||||
*_p.c
|
|
||||||
*_h.h
|
|
||||||
*.ilk
|
|
||||||
*.meta
|
|
||||||
*.obj
|
|
||||||
*.iobj
|
|
||||||
*.pch
|
|
||||||
*.pdb
|
|
||||||
*.ipdb
|
|
||||||
*.pgc
|
|
||||||
*.pgd
|
|
||||||
*.rsp
|
|
||||||
*.sbr
|
|
||||||
*.tlb
|
|
||||||
*.tli
|
|
||||||
*.tlh
|
|
||||||
*.tmp
|
|
||||||
*.tmp_proj
|
|
||||||
*_wpftmp.csproj
|
|
||||||
*.log
|
|
||||||
*.vspscc
|
|
||||||
*.vssscc
|
|
||||||
.builds
|
|
||||||
*.pidb
|
|
||||||
*.svclog
|
|
||||||
*.scc
|
|
||||||
|
|
||||||
# Chutzpah Test files
|
|
||||||
_Chutzpah*
|
|
||||||
|
|
||||||
# Visual C++ cache files
|
|
||||||
ipch/
|
|
||||||
*.aps
|
|
||||||
*.ncb
|
|
||||||
*.opendb
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
*.cachefile
|
|
||||||
*.VC.db
|
|
||||||
*.VC.VC.opendb
|
|
||||||
|
|
||||||
# Visual Studio profiler
|
|
||||||
*.psess
|
|
||||||
*.vsp
|
|
||||||
*.vspx
|
|
||||||
*.sap
|
|
||||||
|
|
||||||
# Visual Studio Trace Files
|
|
||||||
*.e2e
|
|
||||||
|
|
||||||
# TFS 2012 Local Workspace
|
|
||||||
$tf/
|
|
||||||
|
|
||||||
# Guidance Automation Toolkit
|
|
||||||
*.gpState
|
|
||||||
|
|
||||||
# ReSharper is a .NET coding add-in
|
|
||||||
_ReSharper*/
|
|
||||||
*.[Rr]e[Ss]harper
|
|
||||||
*.DotSettings.user
|
|
||||||
|
|
||||||
# TeamCity is a build add-in
|
|
||||||
_TeamCity*
|
|
||||||
|
|
||||||
# DotCover is a Code Coverage Tool
|
|
||||||
*.dotCover
|
|
||||||
|
|
||||||
# AxoCover is a Code Coverage Tool
|
|
||||||
.axoCover/*
|
|
||||||
!.axoCover/settings.json
|
|
||||||
|
|
||||||
# Coverlet is a free, cross platform Code Coverage Tool
|
|
||||||
coverage*.json
|
|
||||||
coverage*.xml
|
|
||||||
coverage*.info
|
|
||||||
|
|
||||||
# Visual Studio code coverage results
|
|
||||||
*.coverage
|
|
||||||
*.coveragexml
|
|
||||||
|
|
||||||
# NCrunch
|
|
||||||
_NCrunch_*
|
|
||||||
.*crunch*.local.xml
|
|
||||||
nCrunchTemp_*
|
|
||||||
|
|
||||||
# MightyMoose
|
|
||||||
*.mm.*
|
|
||||||
AutoTest.Net/
|
|
||||||
|
|
||||||
# Web workbench (sass)
|
|
||||||
.sass-cache/
|
|
||||||
|
|
||||||
# Installshield output folder
|
|
||||||
[Ee]xpress/
|
|
||||||
|
|
||||||
# DocProject is a documentation generator add-in
|
|
||||||
DocProject/buildhelp/
|
|
||||||
DocProject/Help/*.HxT
|
|
||||||
DocProject/Help/*.HxC
|
|
||||||
DocProject/Help/*.hhc
|
|
||||||
DocProject/Help/*.hhk
|
|
||||||
DocProject/Help/*.hhp
|
|
||||||
DocProject/Help/Html2
|
|
||||||
DocProject/Help/html
|
|
||||||
|
|
||||||
# Click-Once directory
|
|
||||||
publish/
|
|
||||||
|
|
||||||
# Publish Web Output
|
|
||||||
*.[Pp]ublish.xml
|
|
||||||
*.azurePubxml
|
|
||||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
|
||||||
# but database connection strings (with potential passwords) will be unencrypted
|
|
||||||
*.pubxml
|
|
||||||
*.publishproj
|
|
||||||
|
|
||||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
|
||||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
|
||||||
# in these scripts will be unencrypted
|
|
||||||
PublishScripts/
|
|
||||||
|
|
||||||
# NuGet Packages
|
|
||||||
*.nupkg
|
|
||||||
# NuGet Symbol Packages
|
|
||||||
*.snupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
|
||||||
**/[Pp]ackages/*
|
|
||||||
# except build/, which is used as an MSBuild target.
|
|
||||||
!**/[Pp]ackages/build/
|
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
|
||||||
#!**/[Pp]ackages/repositories.config
|
|
||||||
# NuGet v3's project.json files produces more ignorable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Microsoft Azure Build Output
|
|
||||||
csx/
|
|
||||||
*.build.csdef
|
|
||||||
|
|
||||||
# Microsoft Azure Emulator
|
|
||||||
ecf/
|
|
||||||
rcf/
|
|
||||||
|
|
||||||
# Windows Store app package directories and files
|
|
||||||
AppPackages/
|
|
||||||
BundleArtifacts/
|
|
||||||
Package.StoreAssociation.xml
|
|
||||||
_pkginfo.txt
|
|
||||||
*.appx
|
|
||||||
*.appxbundle
|
|
||||||
*.appxupload
|
|
||||||
|
|
||||||
# Visual Studio cache files
|
|
||||||
# files ending in .cache can be ignored
|
|
||||||
*.[Cc]ache
|
|
||||||
# but keep track of directories ending in .cache
|
|
||||||
!?*.[Cc]ache/
|
|
||||||
|
|
||||||
# Others
|
|
||||||
ClientBin/
|
|
||||||
~$*
|
|
||||||
*~
|
|
||||||
*.dbmdl
|
|
||||||
*.dbproj.schemaview
|
|
||||||
*.jfm
|
|
||||||
*.pfx
|
|
||||||
*.publishsettings
|
|
||||||
orleans.codegen.cs
|
|
||||||
|
|
||||||
# Including strong name files can present a security risk
|
|
||||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
|
||||||
#*.snk
|
|
||||||
|
|
||||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
|
||||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
|
||||||
#bower_components/
|
|
||||||
|
|
||||||
# RIA/Silverlight projects
|
|
||||||
Generated_Code/
|
|
||||||
|
|
||||||
# Backup & report files from converting an old project file
|
|
||||||
# to a newer Visual Studio version. Backup files are not needed,
|
|
||||||
# because we have git ;-)
|
|
||||||
_UpgradeReport_Files/
|
|
||||||
Backup*/
|
|
||||||
UpgradeLog*.XML
|
|
||||||
UpgradeLog*.htm
|
|
||||||
ServiceFabricBackup/
|
|
||||||
*.rptproj.bak
|
|
||||||
|
|
||||||
# SQL Server files
|
|
||||||
*.mdf
|
|
||||||
*.ldf
|
|
||||||
*.ndf
|
|
||||||
|
|
||||||
# Business Intelligence projects
|
|
||||||
*.rdl.data
|
|
||||||
*.bim.layout
|
|
||||||
*.bim_*.settings
|
|
||||||
*.rptproj.rsuser
|
|
||||||
*- [Bb]ackup.rdl
|
|
||||||
*- [Bb]ackup ([0-9]).rdl
|
|
||||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
|
||||||
|
|
||||||
# Microsoft Fakes
|
|
||||||
FakesAssemblies/
|
|
||||||
|
|
||||||
# GhostDoc plugin setting file
|
|
||||||
*.GhostDoc.xml
|
|
||||||
|
|
||||||
# Node.js Tools for Visual Studio
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
node_modules/
|
|
||||||
|
|
||||||
# Visual Studio 6 build log
|
|
||||||
*.plg
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace options file
|
|
||||||
*.opt
|
|
||||||
|
|
||||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
|
||||||
*.vbw
|
|
||||||
|
|
||||||
# Visual Studio LightSwitch build output
|
|
||||||
**/*.HTMLClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/ModelManifest.xml
|
|
||||||
**/*.Server/GeneratedArtifacts
|
|
||||||
**/*.Server/ModelManifest.xml
|
|
||||||
_Pvt_Extensions
|
|
||||||
|
|
||||||
# Paket dependency manager
|
|
||||||
.paket/paket.exe
|
|
||||||
paket-files/
|
|
||||||
|
|
||||||
# FAKE - F# Make
|
|
||||||
.fake/
|
|
||||||
|
|
||||||
# CodeRush personal settings
|
|
||||||
.cr/personal
|
|
||||||
|
|
||||||
# Python Tools for Visual Studio (PTVS)
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
|
|
||||||
# Cake - Uncomment if you are using it
|
|
||||||
# tools/**
|
|
||||||
# !tools/packages.config
|
|
||||||
|
|
||||||
# Tabs Studio
|
|
||||||
*.tss
|
|
||||||
|
|
||||||
# Telerik's JustMock configuration file
|
|
||||||
*.jmconfig
|
|
||||||
|
|
||||||
# BizTalk build output
|
|
||||||
*.btp.cs
|
|
||||||
*.btm.cs
|
|
||||||
*.odx.cs
|
|
||||||
*.xsd.cs
|
|
||||||
|
|
||||||
# OpenCover UI analysis results
|
|
||||||
OpenCover/
|
|
||||||
|
|
||||||
# Azure Stream Analytics local run output
|
|
||||||
ASALocalRun/
|
|
||||||
|
|
||||||
# MSBuild Binary and Structured Log
|
|
||||||
*.binlog
|
|
||||||
|
|
||||||
# NVidia Nsight GPU debugger configuration file
|
|
||||||
*.nvuser
|
|
||||||
|
|
||||||
# MFractors (Xamarin productivity tool) working folder
|
|
||||||
.mfractor/
|
|
||||||
|
|
||||||
# Local History for Visual Studio
|
|
||||||
.localhistory/
|
|
||||||
|
|
||||||
# BeatPulse healthcheck temp database
|
|
||||||
healthchecksdb
|
|
||||||
|
|
||||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
|
||||||
MigrationBackup/
|
|
||||||
|
|
||||||
# Ionide (cross platform F# VS Code tools) working folder
|
|
||||||
.ionide/
|
|
||||||
|
|
||||||
# Fody - auto-generated XML schema
|
|
||||||
FodyWeavers.xsd
|
|
||||||
.vs/Cobalt/v17/Browse.VC.db
|
|
||||||
.vs/Cobalt/v17/.suo
|
|
||||||
.vs/Cobalt/v17/fileList.bin
|
|
||||||
.vs/Cobalt/v17/ipch/AutoPCH/389a1fa1f6dcd16f/DLLMAIN.ipch
|
|
||||||
.vs/Cobalt/v17/ipch/AutoPCH/6b05e7771d6ded15/UTIL.ipch
|
|
||||||
Cobalt/x64/Release/Cobalt.tlog/CL.read.1.tlog
|
|
||||||
Cobalt/x64/Release/Cobalt.tlog/link.read.1.tlog
|
|
||||||
Cobalt/x64/Release/Cobalt.tlog/CL.write.1.tlog
|
|
||||||
Cobalte/x64/Release/vc143.pdb
|
|
||||||
x64/Release/Cobalt.pdb
|
|
||||||
Cobalt/x64/Release/Cobalt.log
|
|
||||||
Cobalt/x64/Release/Cobalt.ipdb
|
|
||||||
Cobalt/x64/Release/Cobalt.iobj
|
|
||||||
.vs/Cobalt/v17/Browse.VC.db
|
|
||||||
.vs/Cobalt/v17/.suo
|
|
||||||
.vs/Cobalt/v17/.suo
|
|
||||||
*.db
|
|
||||||
*.bin
|
|
||||||
*.ipch
|
|
||||||
*.ipdb
|
|
||||||
*.iobj
|
|
||||||
*.tlog
|
|
||||||
*.ifc
|
|
||||||
*.pdb
|
|
||||||
165
Cobalt/Cobalt.vcxproj
Normal file
165
Cobalt/Cobalt.vcxproj
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
<ProjectConfiguration Include="Debug|Win32">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|Win32">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>Win32</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Debug|x64">
|
||||||
|
<Configuration>Debug</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
<ProjectConfiguration Include="Release|x64">
|
||||||
|
<Configuration>Release</Configuration>
|
||||||
|
<Platform>x64</Platform>
|
||||||
|
</ProjectConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Label="Globals">
|
||||||
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<ProjectGuid>{355fb80e-3008-430e-a074-cdb93819396f}</ProjectGuid>
|
||||||
|
<RootNamespace>Cobalt</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>v143</PlatformToolset>
|
||||||
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||||
|
<ImportGroup Label="ExtensionSettings">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="Shared">
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Label="UserMacros" />
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;_DEBUG;COBALT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>WIN32;NDEBUG;COBALT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>_DEBUG;COBALT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||||
|
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
|
<PreprocessorDefinitions>NDEBUG;COBALT_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
<ConformanceMode>true</ConformanceMode>
|
||||||
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||||
|
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||||
|
<EnableUAC>false</EnableUAC>
|
||||||
|
</Link>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="dllmain.cpp" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="curlhook.h" />
|
||||||
|
<ClInclude Include="curldefinitions.h" />
|
||||||
|
<ClInclude Include="exithook.h" />
|
||||||
|
<ClInclude Include="memcury.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
<Import Project="..\packages\Detours.4.0.1\build\native\Detours.targets" Condition="Exists('..\packages\Detours.4.0.1\build\native\Detours.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\Detours.4.0.1\build\native\Detours.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Detours.4.0.1\build\native\Detours.targets'))" />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
||||||
39
Cobalt/Cobalt.vcxproj.filters
Normal file
39
Cobalt/Cobalt.vcxproj.filters
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ItemGroup>
|
||||||
|
<Filter Include="Source Files">
|
||||||
|
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||||
|
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Header Files">
|
||||||
|
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||||
|
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Resource Files">
|
||||||
|
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||||
|
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||||
|
</Filter>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="dllmain.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="curldefinitions.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="curlhook.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="memcury.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="exithook.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
2
Cobalt/README.md
Normal file
2
Cobalt/README.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Cobalt
|
||||||
|
SSL Bypass for Fortnite
|
||||||
146
Cobalt/curldefinitions.h
Normal file
146
Cobalt/curldefinitions.h
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
//got these definitions from reversing curl
|
||||||
|
#define CURLOPT_URL 0x2712
|
||||||
|
#define CURLOPT_NOPROXY 0x27C1
|
||||||
|
#define CURLOPT_SSL_VERIFYPEER 0x40
|
||||||
|
#define CURLOPT_SSL_VERIFYHOST 0x51
|
||||||
|
#define CURLOPT_PINNEDPUBLICKEY 0x27F6
|
||||||
|
#define CURLOPT_POSTFIELDS 0x271F
|
||||||
|
|
||||||
|
//got from curl includes
|
||||||
|
typedef enum {
|
||||||
|
CURLE_OK = 0,
|
||||||
|
CURLE_UNSUPPORTED_PROTOCOL, /* 1 */
|
||||||
|
CURLE_FAILED_INIT, /* 2 */
|
||||||
|
CURLE_URL_MALFORMAT, /* 3 */
|
||||||
|
CURLE_NOT_BUILT_IN, /* 4 - [was obsoleted in August 2007 for
|
||||||
|
7.17.0, reused in April 2011 for 7.21.5] */
|
||||||
|
CURLE_COULDNT_RESOLVE_PROXY, /* 5 */
|
||||||
|
CURLE_COULDNT_RESOLVE_HOST, /* 6 */
|
||||||
|
CURLE_COULDNT_CONNECT, /* 7 */
|
||||||
|
CURLE_WEIRD_SERVER_REPLY, /* 8 */
|
||||||
|
CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server
|
||||||
|
due to lack of access - when login fails
|
||||||
|
this is not returned. */
|
||||||
|
CURLE_FTP_ACCEPT_FAILED, /* 10 - [was obsoleted in April 2006 for
|
||||||
|
7.15.4, reused in Dec 2011 for 7.24.0]*/
|
||||||
|
CURLE_FTP_WEIRD_PASS_REPLY, /* 11 */
|
||||||
|
CURLE_FTP_ACCEPT_TIMEOUT, /* 12 - timeout occurred accepting server
|
||||||
|
[was obsoleted in August 2007 for 7.17.0,
|
||||||
|
reused in Dec 2011 for 7.24.0]*/
|
||||||
|
CURLE_FTP_WEIRD_PASV_REPLY, /* 13 */
|
||||||
|
CURLE_FTP_WEIRD_227_FORMAT, /* 14 */
|
||||||
|
CURLE_FTP_CANT_GET_HOST, /* 15 */
|
||||||
|
CURLE_HTTP2, /* 16 - A problem in the http2 framing layer.
|
||||||
|
[was obsoleted in August 2007 for 7.17.0,
|
||||||
|
reused in July 2014 for 7.38.0] */
|
||||||
|
CURLE_FTP_COULDNT_SET_TYPE, /* 17 */
|
||||||
|
CURLE_PARTIAL_FILE, /* 18 */
|
||||||
|
CURLE_FTP_COULDNT_RETR_FILE, /* 19 */
|
||||||
|
CURLE_OBSOLETE20, /* 20 - NOT USED */
|
||||||
|
CURLE_QUOTE_ERROR, /* 21 - quote command failure */
|
||||||
|
CURLE_HTTP_RETURNED_ERROR, /* 22 */
|
||||||
|
CURLE_WRITE_ERROR, /* 23 */
|
||||||
|
CURLE_OBSOLETE24, /* 24 - NOT USED */
|
||||||
|
CURLE_UPLOAD_FAILED, /* 25 - failed upload "command" */
|
||||||
|
CURLE_READ_ERROR, /* 26 - couldn't open/read from file */
|
||||||
|
CURLE_OUT_OF_MEMORY, /* 27 */
|
||||||
|
/* Note: CURLE_OUT_OF_MEMORY may sometimes indicate a conversion error
|
||||||
|
instead of a memory allocation error if CURL_DOES_CONVERSIONS
|
||||||
|
is defined
|
||||||
|
*/
|
||||||
|
CURLE_OPERATION_TIMEDOUT, /* 28 - the timeout time was reached */
|
||||||
|
CURLE_OBSOLETE29, /* 29 - NOT USED */
|
||||||
|
CURLE_FTP_PORT_FAILED, /* 30 - FTP PORT operation failed */
|
||||||
|
CURLE_FTP_COULDNT_USE_REST, /* 31 - the REST command failed */
|
||||||
|
CURLE_OBSOLETE32, /* 32 - NOT USED */
|
||||||
|
CURLE_RANGE_ERROR, /* 33 - RANGE "command" didn't work */
|
||||||
|
CURLE_HTTP_POST_ERROR, /* 34 */
|
||||||
|
CURLE_SSL_CONNECT_ERROR, /* 35 - wrong when connecting with SSL */
|
||||||
|
CURLE_BAD_DOWNLOAD_RESUME, /* 36 - couldn't resume download */
|
||||||
|
CURLE_FILE_COULDNT_READ_FILE, /* 37 */
|
||||||
|
CURLE_LDAP_CANNOT_BIND, /* 38 */
|
||||||
|
CURLE_LDAP_SEARCH_FAILED, /* 39 */
|
||||||
|
CURLE_OBSOLETE40, /* 40 - NOT USED */
|
||||||
|
CURLE_FUNCTION_NOT_FOUND, /* 41 - NOT USED starting with 7.53.0 */
|
||||||
|
CURLE_ABORTED_BY_CALLBACK, /* 42 */
|
||||||
|
CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */
|
||||||
|
CURLE_OBSOLETE44, /* 44 - NOT USED */
|
||||||
|
CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */
|
||||||
|
CURLE_OBSOLETE46, /* 46 - NOT USED */
|
||||||
|
CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */
|
||||||
|
CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */
|
||||||
|
CURLE_TELNET_OPTION_SYNTAX, /* 49 - Malformed telnet option */
|
||||||
|
CURLE_OBSOLETE50, /* 50 - NOT USED */
|
||||||
|
CURLE_OBSOLETE51, /* 51 - NOT USED */
|
||||||
|
CURLE_GOT_NOTHING, /* 52 - when this is a specific error */
|
||||||
|
CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */
|
||||||
|
CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as
|
||||||
|
default */
|
||||||
|
CURLE_SEND_ERROR, /* 55 - failed sending network data */
|
||||||
|
CURLE_RECV_ERROR, /* 56 - failure in receiving network data */
|
||||||
|
CURLE_OBSOLETE57, /* 57 - NOT IN USE */
|
||||||
|
CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */
|
||||||
|
CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */
|
||||||
|
CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint
|
||||||
|
wasn't verified fine */
|
||||||
|
CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */
|
||||||
|
CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */
|
||||||
|
CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */
|
||||||
|
CURLE_USE_SSL_FAILED, /* 64 - Requested FTP SSL level failed */
|
||||||
|
CURLE_SEND_FAIL_REWIND, /* 65 - Sending the data requires a rewind
|
||||||
|
that failed */
|
||||||
|
CURLE_SSL_ENGINE_INITFAILED, /* 66 - failed to initialise ENGINE */
|
||||||
|
CURLE_LOGIN_DENIED, /* 67 - user, password or similar was not
|
||||||
|
accepted and we failed to login */
|
||||||
|
CURLE_TFTP_NOTFOUND, /* 68 - file not found on server */
|
||||||
|
CURLE_TFTP_PERM, /* 69 - permission problem on server */
|
||||||
|
CURLE_REMOTE_DISK_FULL, /* 70 - out of disk space on server */
|
||||||
|
CURLE_TFTP_ILLEGAL, /* 71 - Illegal TFTP operation */
|
||||||
|
CURLE_TFTP_UNKNOWNID, /* 72 - Unknown transfer ID */
|
||||||
|
CURLE_REMOTE_FILE_EXISTS, /* 73 - File already exists */
|
||||||
|
CURLE_TFTP_NOSUCHUSER, /* 74 - No such user */
|
||||||
|
CURLE_CONV_FAILED, /* 75 - conversion failed */
|
||||||
|
CURLE_CONV_REQD, /* 76 - caller must register conversion
|
||||||
|
callbacks using curl_easy_setopt options
|
||||||
|
CURLOPT_CONV_FROM_NETWORK_FUNCTION,
|
||||||
|
CURLOPT_CONV_TO_NETWORK_FUNCTION, and
|
||||||
|
CURLOPT_CONV_FROM_UTF8_FUNCTION */
|
||||||
|
CURLE_SSL_CACERT_BADFILE, /* 77 - could not load CACERT file, missing
|
||||||
|
or wrong format */
|
||||||
|
CURLE_REMOTE_FILE_NOT_FOUND, /* 78 - remote file not found */
|
||||||
|
CURLE_SSH, /* 79 - error from the SSH layer, somewhat
|
||||||
|
generic so the error message will be of
|
||||||
|
interest when this has happened */
|
||||||
|
|
||||||
|
CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL
|
||||||
|
connection */
|
||||||
|
CURLE_AGAIN, /* 81 - socket is not ready for send/recv,
|
||||||
|
wait till it's ready and try again (Added
|
||||||
|
in 7.18.2) */
|
||||||
|
CURLE_SSL_CRL_BADFILE, /* 82 - could not load CRL file, missing or
|
||||||
|
wrong format (Added in 7.19.0) */
|
||||||
|
CURLE_SSL_ISSUER_ERROR, /* 83 - Issuer check failed. (Added in
|
||||||
|
7.19.0) */
|
||||||
|
CURLE_FTP_PRET_FAILED, /* 84 - a PRET command failed */
|
||||||
|
CURLE_RTSP_CSEQ_ERROR, /* 85 - mismatch of RTSP CSeq numbers */
|
||||||
|
CURLE_RTSP_SESSION_ERROR, /* 86 - mismatch of RTSP Session Ids */
|
||||||
|
CURLE_FTP_BAD_FILE_LIST, /* 87 - unable to parse FTP file list */
|
||||||
|
CURLE_CHUNK_FAILED, /* 88 - chunk callback reported error */
|
||||||
|
CURLE_NO_CONNECTION_AVAILABLE, /* 89 - No connection available, the
|
||||||
|
session will be queued */
|
||||||
|
CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not
|
||||||
|
match */
|
||||||
|
CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */
|
||||||
|
CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer
|
||||||
|
*/
|
||||||
|
CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from
|
||||||
|
inside a callback */
|
||||||
|
CURLE_AUTH_ERROR, /* 94 - an authentication function returned an
|
||||||
|
error */
|
||||||
|
CURLE_HTTP3, /* 95 - An HTTP/3 layer problem */
|
||||||
|
CURL_LAST /* never use! */
|
||||||
|
} CURLcode;
|
||||||
|
|
||||||
|
typedef void CURL;
|
||||||
74
Cobalt/curlhook.h
Normal file
74
Cobalt/curlhook.h
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <regex>
|
||||||
|
|
||||||
|
#include "curldefinitions.h"
|
||||||
|
#include "memcury.h"
|
||||||
|
|
||||||
|
// #define HYBRID_ENABLED
|
||||||
|
|
||||||
|
auto (*curl_easy_setopt_original)(CURL* Curl, uintptr_t opt, ...)->CURLcode;
|
||||||
|
|
||||||
|
std::string FNhost = "127.0.0.1:3551";
|
||||||
|
|
||||||
|
//This routine is used for setting up curl. we will be hijacking this to change the values.
|
||||||
|
auto Hijacked_curl_easy_setopt(CURL* Curl, uintptr_t opt, va_list info) -> CURLcode
|
||||||
|
{
|
||||||
|
int OFF = 0;
|
||||||
|
switch (opt)
|
||||||
|
{
|
||||||
|
case CURLOPT_NOPROXY:
|
||||||
|
return curl_easy_setopt_original(Curl, opt, "");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CURLOPT_SSL_VERIFYPEER:
|
||||||
|
return curl_easy_setopt_original(Curl, opt, OFF);
|
||||||
|
break;
|
||||||
|
case CURLOPT_SSL_VERIFYHOST:
|
||||||
|
return curl_easy_setopt_original(Curl, opt, OFF);
|
||||||
|
break;
|
||||||
|
case CURLOPT_PINNEDPUBLICKEY:
|
||||||
|
return CURLcode::CURLE_OK;
|
||||||
|
break;
|
||||||
|
case CURLOPT_URL:
|
||||||
|
std::string url = info;
|
||||||
|
std::regex Host(("(.*).ol.epicgames.com"));
|
||||||
|
#ifdef HYBRID_ENABLED
|
||||||
|
if (std::regex_search(info, std::regex(("/fortnite/api/cloudstorage/system")))) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
else if (std::regex_search(info, std::regex(("/fortnite/api/v2/versioncheck/")))) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
else if (std::regex_search(info, std::regex(("/fortnite/api/game/v2/profile")))) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
else if (std::regex_search(info, std::regex(("/content/api/pages/fortnite-game")))) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
else if (std::regex_search(info, std::regex(("/affiliate/api/public/affiliates/slug")))) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
else if (std::regex_search(info, std::regex(("/socialban/api/public/v1")))) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
/* else if (std::regex_search(info, std::regex(ENC("player.platform")))) { // idk if this even works
|
||||||
|
if (version == S13)
|
||||||
|
{
|
||||||
|
url = std::regex_replace(info, Host, "IOS");
|
||||||
|
Log(ENC("Changed Windows to IOS"));
|
||||||
|
}
|
||||||
|
} */
|
||||||
|
#else
|
||||||
|
if (std::regex_search(info, Host)) {
|
||||||
|
url = std::regex_replace(info, Host, FNhost);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return curl_easy_setopt_original(Curl, opt, url.c_str());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return curl_easy_setopt_original(Curl, opt, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
__int64 sigscan(const std::string& Str) { return Memcury::Scanner::FindPattern(Str.c_str()).Get(); }
|
||||||
109
Cobalt/dllmain.cpp
Normal file
109
Cobalt/dllmain.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
#include <Windows.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <detours.h>
|
||||||
|
#include "curlhook.h"
|
||||||
|
#include "exithook.h"
|
||||||
|
|
||||||
|
#define DetoursEasy(address, hook) \
|
||||||
|
DetourTransactionBegin(); \
|
||||||
|
DetourUpdateThread(GetCurrentThread()); \
|
||||||
|
DetourAttach(reinterpret_cast<void**>(&address), hook); \
|
||||||
|
DetourTransactionCommit();
|
||||||
|
|
||||||
|
auto FindPushWidget()
|
||||||
|
{
|
||||||
|
return sigscan("48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 48 83 EC 30 48 8B E9 49 8B D9 48 8D 0D ? ? ? ? 49 8B F8 48 8B F2 E8 ? ? ? ? 4C 8B CF 48 89 5C 24 ? 4C 8B C6 48 8B D5 48 8B 48 78");
|
||||||
|
}
|
||||||
|
|
||||||
|
bool InitializeCurlHook()
|
||||||
|
{
|
||||||
|
auto CurlEasySetOptAddr = sigscan("89 54 24 10 4C 89 44 24 18 4C 89 4C 24 20 48 83 EC 28 48 85 C9 75 08 8D 41 2B 48 83 C4 28 C3 4C");
|
||||||
|
|
||||||
|
if (!CurlEasySetOptAddr)
|
||||||
|
{
|
||||||
|
CurlEasySetOptAddr = sigscan("89 54 24 10 4C 89 44 24 18 4C 89 4C 24 20 48 83 EC 28 48 85 C9 75 08 8D 41 2B 48 83 C4 28 C3 4C");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!CurlEasySetOptAddr)
|
||||||
|
{
|
||||||
|
std::cout << "Failed to find CurlEasySetOptAddr!";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
curl_easy_setopt_original = decltype(curl_easy_setopt_original)(CurlEasySetOptAddr);
|
||||||
|
|
||||||
|
if (FindPushWidget())
|
||||||
|
{
|
||||||
|
DetoursEasy(curl_easy_setopt_original, Hijacked_curl_easy_setopt);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Memcury::VEHHook::AddHook(curl_easy_setopt_original, Hijacked_curl_easy_setopt);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InitializeExitHook()
|
||||||
|
{
|
||||||
|
if (!FindPushWidget())
|
||||||
|
return;
|
||||||
|
|
||||||
|
auto UnsafeEnvironmentPopupAddr = sigscan("4C 8B DC 55 49 8D AB ? ? ? ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ? 49 89 73 F0 49 89 7B E8 48 8B F9 4D 89 63 E0 4D 8B E0 4D 89 6B D8");
|
||||||
|
|
||||||
|
if (!UnsafeEnvironmentPopupAddr)
|
||||||
|
{
|
||||||
|
UnsafeEnvironmentPopupAddr = sigscan("4C 8B DC 55 49 8D AB ? ? ? ? 48 81 EC ? ? ? ? 48 8B 05 ? ? ? ? 48 33 C4 48 89 85 ? ? ? ?");
|
||||||
|
}
|
||||||
|
|
||||||
|
auto RequestExitWithStatusAddr = sigscan("48 89 5C 24 ? 57 48 83 EC 40 41 B9 ? ? ? ? 0F B6 F9 44 38 0D ? ? ? ? 0F B6 DA 72 24 89 5C 24 30 48 8D 05 ? ? ? ? 89 7C 24 28 4C 8D 05 ? ? ? ? 33 D2 48 89 44 24 ? 33 C9 E8 ? ? ? ?");
|
||||||
|
|
||||||
|
if (!RequestExitWithStatusAddr)
|
||||||
|
{
|
||||||
|
RequestExitWithStatusAddr = sigscan("48 8B C4 48 89 58 18 88 50 10 88 48 08 57 48 83 EC 30");
|
||||||
|
}
|
||||||
|
|
||||||
|
DetoursEasy(UnsafeEnvironmentPopupAddr, UnsafeEnvironmentPopupHook);
|
||||||
|
DetoursEasy(RequestExitWithStatusAddr, RequestExitWithStatusHook);
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD WINAPI Main(LPVOID)
|
||||||
|
{
|
||||||
|
AllocConsole();
|
||||||
|
|
||||||
|
FILE* fptr;
|
||||||
|
freopen_s(&fptr, "CONOUT$", "w+", stdout);
|
||||||
|
|
||||||
|
bool curlResult = InitializeCurlHook();
|
||||||
|
InitializeExitHook();
|
||||||
|
|
||||||
|
bool result = curlResult;
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
std::cout << "Cobalt v0.1 initialized sucessfully.";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBoxA(0, "Failed to initialize!", "Cobalt", MB_ICONERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL APIENTRY DllMain( HMODULE hModule,
|
||||||
|
DWORD ul_reason_for_call,
|
||||||
|
LPVOID lpReserved
|
||||||
|
)
|
||||||
|
{
|
||||||
|
switch (ul_reason_for_call)
|
||||||
|
{
|
||||||
|
case DLL_PROCESS_ATTACH:
|
||||||
|
CreateThread(0, 0, Main, 0, 0, 0);
|
||||||
|
break;
|
||||||
|
case DLL_PROCESS_DETACH:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
14
Cobalt/exithook.h
Normal file
14
Cobalt/exithook.h
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
void (*RequestExitWithStatus)(bool Force, unsigned char Code);
|
||||||
|
void RequestExitWithStatusHook(bool Force, unsigned char Code)
|
||||||
|
{
|
||||||
|
// printf("[VEH] RequestExitWithStatus Call Forced: %i ReturnCode: %u\n", Force, Code);
|
||||||
|
}
|
||||||
|
|
||||||
|
void (*UnsafeEnvironmentPopup)(wchar_t** unknown1, unsigned __int8 _case, __int64 unknown2, char unknown3);
|
||||||
|
|
||||||
|
void UnsafeEnvironmentPopupHook(wchar_t** unknown1, unsigned __int8 _case, __int64 unknown2, char unknown3)
|
||||||
|
{
|
||||||
|
// printf("[VEH] <UnsafeEnvironmentPopup Call with Case: %i\n", _case);
|
||||||
|
}
|
||||||
1329
Cobalt/memcury.h
Normal file
1329
Cobalt/memcury.h
Normal file
File diff suppressed because it is too large
Load Diff
4
Cobalt/packages.config
Normal file
4
Cobalt/packages.config
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Detours" version="4.0.1" targetFramework="native" developmentDependency="true" />
|
||||||
|
</packages>
|
||||||
Reference in New Issue
Block a user