├── .gitattributes ├── .gitignore ├── .vssbe ├── .vssbe.user ├── DllExport.bat ├── LICENSE ├── Overlay ├── Events.ovs ├── Functions.cs ├── IOverlay.cs ├── Overlay.Designer.cs ├── Overlay.cs ├── Overlay.csproj ├── Overlay.csproj.user ├── Overlay.resx ├── Overlay.xml ├── Plugin.cs ├── Properties │ └── AssemblyInfo.cs ├── Settings.Designer.cs ├── Settings.cs ├── Settings.resx ├── TextOverlay.Designer.cs ├── TextOverlay.cs └── TextOverlay.resx ├── README.MD ├── SRLDebugger ├── Program.cs ├── Properties │ └── PublishProfiles │ │ └── FolderProfile.pubxml.user ├── SRLDebugger.csproj └── SRLDebugger.csproj.user ├── SRLNative ├── SRLNative.vcxproj ├── SRLNative.vcxproj.filters ├── SRLNative.vcxproj.user ├── dllmain.cpp ├── framework.h ├── pch.cpp └── pch.h ├── SRLWrapper ├── Exports.cs ├── FodyWeavers.xml ├── FodyWeavers.xsd ├── PipeServer.cs ├── SRLWrapper.csproj └── Wrapper │ ├── Base │ ├── Delegates.cs │ └── Wrapper.cs │ ├── D3D10.cs │ ├── D3D11.cs │ ├── D3D9.cs │ ├── DDRAW.cs │ ├── DINPUT.CS │ ├── DINPUT8.cs │ ├── DSOUND.cs │ ├── DXGI.cs │ ├── KIRIKIRI.cs │ ├── MF.cs │ ├── VERSION.cs │ ├── WINMM.cs │ └── XINPUT13.cs ├── SamplePlugin ├── Properties │ └── AssemblyInfo.cs ├── SamplePlugin.cs └── SamplePlugin.csproj ├── StringReloads.sln ├── StringReloads ├── AutoInstall │ ├── AdvHD.cs │ ├── CMVS.cs │ ├── EntisGLS.cs │ ├── ExHIBIT.cs │ ├── Favorite.cs │ ├── Patcher │ │ └── ExeTools.cs │ ├── SoftPalMethodA.cs │ └── SoftPalMethodB.cs ├── Engine │ ├── Cache.cs │ ├── Config.cs │ ├── Database.cs │ ├── DuplicableDictionary.cs │ ├── Helpers.cs │ ├── Initializer.cs │ ├── Interface │ │ ├── IAutoInstall.cs │ │ ├── IEncoding.cs │ │ ├── IMatch.cs │ │ ├── IMod.cs │ │ ├── IPlugin.cs │ │ ├── IReloader.cs │ │ └── IStringModifier.cs │ ├── LSTParser.cs │ ├── Log.cs │ ├── Match │ │ ├── BasicMatch.cs │ │ ├── RegexMatch.cs │ │ └── TrimMatch.cs │ ├── Pipe.cs │ ├── SRL.cs │ ├── String │ │ ├── CString.cs │ │ ├── CharacterRanges.cs │ │ ├── Extensions.cs │ │ ├── StringBufferA.cs │ │ ├── StringBufferW.cs │ │ └── WCString.cs │ ├── Types.cs │ ├── Unmanaged │ │ ├── Alloc.cs │ │ ├── Font.cs │ │ ├── ModuleInfo.cs │ │ └── SanityChecks.cs │ └── User.cs ├── EntryPoint.cs ├── Hook │ ├── Base │ │ ├── Extensions.cs │ │ ├── Hook.cs │ │ ├── Intercept.cs │ │ ├── MemoryCodeReader.cs │ │ ├── MemoryCodeWriter.cs │ │ ├── UnsafeDelegate.cs │ │ └── UnsafeStruct.cs │ ├── Others │ │ ├── CMVS_GetText.cs │ │ ├── CallerTracer.cs │ │ ├── EntisGLS_eslHeapAllocate.cs │ │ ├── EntisGLS_eslHeapFree.cs │ │ ├── ExHIBIT_PrintSub.cs │ │ ├── ExHIBIT_Question.cs │ │ ├── ExHIBIT_Say.cs │ │ ├── ExHIBIT_SayV2.cs │ │ ├── ExHIBIT_lstrcpyA.cs │ │ ├── Interceptor.cs │ │ ├── ManagedInterceptor.cs │ │ ├── SoftPal_DrawText.cs │ │ └── SoftPal_PalSpriteCreateText.cs │ ├── Types │ │ ├── Delegates.cs │ │ └── Structures.cs │ └── Win32 │ │ ├── CoInitialize.cs │ │ ├── CreateFileA.cs │ │ ├── CreateFileW.cs │ │ ├── CreateFontA.cs │ │ ├── CreateFontIndirectA.cs │ │ ├── CreateFontIndirectW.cs │ │ ├── CreateFontW.cs │ │ ├── ExtTextOutA.cs │ │ ├── ExtTextOutW.cs │ │ ├── GetCharABCWidthsFloatA.cs │ │ ├── GetCharABCWidthsFloatW.cs │ │ ├── GetCharacterPlacementA.cs │ │ ├── GetCharacterPlacementW.cs │ │ ├── GetGlyphOutlineA.cs │ │ ├── GetGlyphOutlineW.cs │ │ ├── GetProcAddress.cs │ │ ├── GetTextExtentPoint32A.cs │ │ ├── GetTextExtentPoint32W.cs │ │ ├── LoadResource.cs │ │ ├── MultiByteToWideChar.cs │ │ ├── SysAllocString.cs │ │ ├── TextOutA.cs │ │ ├── TextOutW.cs │ │ ├── WideCharToMultiByte.cs │ │ ├── lstrcpyA.cs │ │ └── lstrcpyW.cs ├── Mods │ ├── Base │ │ └── MemoryPatching.cs │ ├── CoInitializeFix.cs │ ├── ForceExit.cs │ └── PatchRedir.cs ├── SRL.ini ├── StringModifier │ ├── AntiIlegalChar.cs │ ├── Escape.cs │ ├── Minify.cs │ ├── MonoWordWrap.cs │ ├── Remaper.cs │ ├── RemaperAlt.cs │ └── TrimRestore.cs ├── StringReloads.csproj ├── StringReloads.csproj.user ├── Tools │ └── Scanner.cs └── packages │ └── DllExport.1.7.0 │ ├── .gitattributes │ ├── 3rd-party.txt │ ├── DllExport.bat │ ├── DllExport.nuspec │ ├── License.txt │ ├── Readme.md │ ├── build_info.txt │ ├── changelog.txt │ ├── gcache │ ├── metacor │ │ └── StringReloads │ │ │ ├── DllExport.dll │ │ │ ├── DllExport.dll.ddNSi │ │ │ └── DllExport.xml │ └── metalib │ │ └── StringReloads │ │ ├── DllExport.dll │ │ ├── DllExport.dll.ddNSi │ │ └── DllExport.xml │ ├── hMSBuild.bat │ ├── lib │ ├── net20 │ │ └── _._ │ └── netstandard1.1 │ │ └── _._ │ └── tools │ ├── Conari.dll │ ├── Conari.xml │ ├── Microsoft.Build.Framework.dll │ ├── Microsoft.Build.Utilities.v4.0.dll │ ├── Microsoft.Build.dll │ ├── Mono.Cecil.dll │ ├── MvsSln.dll │ ├── MvsSln.xml │ ├── NSBin.dll │ ├── PeViewer.exe │ ├── RGiesecke.DllExport.MSBuild.dll │ ├── RGiesecke.DllExport.dll │ ├── coreclr │ ├── .version.txt │ ├── LICENSE.TXT │ ├── PATENTS.TXT │ ├── README.md │ ├── changelog.txt │ ├── clrgc.dll │ ├── coreclr.dll │ ├── ilasm.exe │ ├── ildasm.exe │ ├── ildasmrc.dll │ ├── mscordaccore.dll │ └── mscordbi.dll │ ├── gnt.bat │ ├── hMSBuild.bat │ ├── init.ps1 │ ├── net.r_eg.DllExport.Wizard.dll │ ├── net.r_eg.DllExport.Wizard.targets │ ├── net.r_eg.DllExport.targets │ └── raw │ └── lib │ ├── net20 │ ├── DllExport.dll │ └── DllExport.xml │ └── netstd │ ├── DllExport.dll │ └── DllExport.xml └── packages ├── DllExport.1.7.0 ├── .gitattributes ├── 3rd-party.txt ├── DllExport.bat ├── DllExport.nuspec ├── License.txt ├── Readme.md ├── build_info.txt ├── changelog.txt ├── gcache │ ├── metacor │ │ ├── DLLTest │ │ │ ├── DllExport.dll │ │ │ ├── DllExport.dll.ddNSi │ │ │ └── DllExport.xml │ │ ├── SRLWrapper │ │ │ ├── DllExport.dll │ │ │ ├── DllExport.dll.ddNSi │ │ │ └── DllExport.xml │ │ ├── StringReloads │ │ │ ├── DllExport.dll │ │ │ ├── DllExport.dll.ddNSi │ │ │ └── DllExport.xml │ │ └── TEST │ │ │ ├── DllExport.dll │ │ │ ├── DllExport.dll.ddNSi │ │ │ └── DllExport.xml │ └── metalib │ │ ├── DLLTest │ │ ├── DllExport.dll │ │ ├── DllExport.dll.ddNSi │ │ └── DllExport.xml │ │ ├── SRLWrapper │ │ ├── DllExport.dll │ │ ├── DllExport.dll.ddNSi │ │ └── DllExport.xml │ │ ├── StringReloads │ │ ├── DllExport.dll │ │ ├── DllExport.dll.ddNSi │ │ └── DllExport.xml │ │ └── TEST │ │ ├── DllExport.dll │ │ ├── DllExport.dll.ddNSi │ │ └── DllExport.xml ├── hMSBuild.bat ├── lib │ ├── net20 │ │ └── _._ │ └── netstandard1.1 │ │ └── _._ └── tools │ ├── Conari.dll │ ├── Conari.xml │ ├── Microsoft.Build.Framework.dll │ ├── Microsoft.Build.Utilities.v4.0.dll │ ├── Microsoft.Build.dll │ ├── Mono.Cecil.dll │ ├── MvsSln.dll │ ├── MvsSln.xml │ ├── NSBin.dll │ ├── PeViewer.exe │ ├── RGiesecke.DllExport.MSBuild.dll │ ├── RGiesecke.DllExport.dll │ ├── coreclr │ ├── .version.txt │ ├── LICENSE.TXT │ ├── PATENTS.TXT │ ├── README.md │ ├── changelog.txt │ ├── clrgc.dll │ ├── coreclr.dll │ ├── ilasm.exe │ ├── ildasm.exe │ ├── ildasmrc.dll │ ├── mscordaccore.dll │ └── mscordbi.dll │ ├── gnt.bat │ ├── hMSBuild.bat │ ├── init.ps1 │ ├── net.r_eg.DllExport.Wizard.dll │ ├── net.r_eg.DllExport.Wizard.targets │ ├── net.r_eg.DllExport.targets │ └── raw │ └── lib │ ├── net20 │ ├── DllExport.dll │ └── DllExport.xml │ └── netstd │ ├── DllExport.dll │ └── DllExport.xml └── DllExport.1.7.3 ├── .gitattributes ├── 3rd-party.txt ├── DllExport.bat ├── DllExport.nuspec ├── License.txt ├── Readme.md ├── build_info.txt ├── changelog.txt ├── gcache ├── metacor │ └── SRLWrapper │ │ ├── DllExport.dll │ │ ├── DllExport.dll.ddNSi │ │ └── DllExport.xml └── metalib │ └── SRLWrapper │ ├── DllExport.dll │ ├── DllExport.dll.ddNSi │ └── DllExport.xml ├── hMSBuild.bat ├── lib ├── net20 │ └── _._ └── netstandard1.1 │ └── _._ └── tools ├── Conari.dll ├── Conari.xml ├── Microsoft.Build.Framework.dll ├── Microsoft.Build.Utilities.v4.0.dll ├── Microsoft.Build.dll ├── Mono.Cecil.dll ├── MvsSln.dll ├── MvsSln.xml ├── NSBin.dll ├── PeViewer.exe ├── RGiesecke.DllExport.MSBuild.dll ├── RGiesecke.DllExport.dll ├── coreclr ├── .version.txt ├── LICENSE.TXT ├── PATENTS.TXT ├── README.md ├── changelog.txt ├── clrgc.dll ├── coreclr.dll ├── ilasm.exe ├── ildasm.exe ├── ildasmrc.dll ├── mscordaccore.dll └── mscordbi.dll ├── gnt.bat ├── hMSBuild.bat ├── init.ps1 ├── net.r_eg.DllExport.Wizard.dll ├── net.r_eg.DllExport.Wizard.targets ├── net.r_eg.DllExport.targets └── raw └── lib ├── net20 ├── DllExport.dll └── DllExport.xml └── netstd ├── DllExport.dll └── DllExport.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /Overlay/Events.ovs: -------------------------------------------------------------------------------- 1 | #Sample Overlay 2 | #To use in the begin of a SRL line needs have the tag EVENT + ID, example: "::OVERLAY-1::The Original Text" 3 | #When the ::OVERLAY-1:: is readed will trigger the event with the id 1, change to any number 4 | #The Event 0 is a static event called when the overlay is initialized 5 | 6 | :0 7 | Opacity: 0,85 8 | Dock At: Bottom 9 | Back Color: Reset 10 | Auto Font Size: false 11 | Event End 12 | 13 | :1 14 | Show Overlay 15 | Padding: Top: 15%|Bottom: -45%|Left: 0|Rigth: 0 16 | Opacity: 1,0 17 | Dock At: Center 18 | Back Color: Black 19 | Font Size: 14,6 20 | Auto Font Size: false 21 | Show Text: Você não precisa fazer nada. Apenas deixe tudo para mim. 22 | Event End 23 | 24 | :2 25 | Show Text: E mesmo se você me disser qual é o seu verdadeiro desejo,\nvocê realmente acha que é o que você realmente quer? 26 | Event End 27 | 28 | :3 29 | Show Text: Eu prepararei tudo: felicidade, tristeza, provações, tristezas, dificuldades, diversão... 30 | Event End 31 | 32 | :4 33 | Show Text: Eu sei o que precisa ser feito. 34 | Event End 35 | 36 | :5 37 | Show Text: E ainda assim, lá você vai se forçar novamente. 38 | Event End 39 | 40 | :6 41 | Show Text: Você não preferiria simplesmente desistir?\nEu vou ter certeza de te pegar quando você cair.\nVocê prefere assim mesmo, não é? 42 | Event End 43 | 44 | :7 45 | Show Text: -Você é realmente tão desagradável 46 | Event End 47 | 48 | :8 49 | Clear Text 50 | Call: 0 51 | Hide Overlay 52 | Event End -------------------------------------------------------------------------------- /Overlay/IOverlay.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Windows.Forms; 7 | 8 | namespace Overlay { 9 | internal interface IOverlay { 10 | 11 | bool AutoSize { get; set; } 12 | string Text { get; set; } 13 | Font Font { get; set; } 14 | 15 | Size Size { get; set; } 16 | Point Location { get; set; } 17 | 18 | Color TextBackColor { get; set; } 19 | Color TextForeColor { get; set; } 20 | 21 | IntPtr Handle { get; } 22 | 23 | ContentAlignment TextAlignment { get; set; } 24 | 25 | FormWindowState WindowState { get; set; } 26 | double Opacity { get; set; } 27 | 28 | bool CanInvoke(); 29 | 30 | void Invoke(Delegate Method); 31 | void Close(); 32 | void Show(); 33 | void Dispose(); 34 | void Hide(); 35 | void Focus(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Overlay/Overlay.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /Overlay/Overlay.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Overlay 5 | 6 | 7 | 8 | 9 | Required designer variable. 10 | 11 | 12 | 13 | 14 | Clean up any resources being used. 15 | 16 | true if managed resources should be disposed; otherwise, false. 17 | 18 | 19 | 20 | Required method for Designer support - do not modify 21 | the contents of this method with the code editor. 22 | 23 | 24 | 25 | 26 | Required designer variable. 27 | 28 | 29 | 30 | 31 | Clean up any resources being used. 32 | 33 | true if managed resources should be disposed; otherwise, false. 34 | 35 | 36 | 37 | Required method for Designer support - do not modify 38 | the contents of this method with the code editor. 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Overlay/Plugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Threading; 4 | using StringReloads.Engine; 5 | using StringReloads.Engine.Interface; 6 | using StringReloads.Hook.Base; 7 | 8 | namespace Overlay 9 | { 10 | unsafe class Plugin : IPlugin 11 | { 12 | public string Name => "Overlay"; 13 | 14 | public IAutoInstall[] GetAutoInstallers() => null; 15 | 16 | public IEncoding[] GetEncodings() => null; 17 | 18 | public Hook[] GetHooks() => null; 19 | 20 | public IMatch[] GetMatchs() => null; 21 | 22 | public IStringModifier[] GetModifiers() => null; 23 | 24 | public IMod[] GetMods() => null; 25 | 26 | public IReloader[] GetReloaders() => null; 27 | 28 | public void Initialize(SRL Engine) 29 | { 30 | Engine.OnFlagTriggered += OnFlagTriggered; 31 | } 32 | 33 | private void OnFlagTriggered(LSTFlag Entry, CancelEventArgs Args) 34 | { 35 | if (Entry.Name.ToUpperInvariant() != "OVERLAY") 36 | return; 37 | 38 | Args.Cancel = true; 39 | Exports.TriggerEvent(Entry.Value); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Overlay/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //INSTANT C# NOTE: Formerly VB project-level imports: 2 | using System; 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using System.Data; 6 | using System.Drawing; 7 | using System.Diagnostics; 8 | using System.Windows.Forms; 9 | using System.Linq; 10 | using System.Xml.Linq; 11 | using System.Threading.Tasks; 12 | 13 | using System.Reflection; 14 | using System.Runtime.InteropServices; 15 | 16 | // As informações gerais sobre um assembly são controladas por 17 | // conjunto de atributos. Altere estes valores de atributo para modificar as informações 18 | // associada a um assembly. 19 | 20 | // Revise os valores dos atributos do assembly 21 | 22 | [assembly: AssemblyTitle("SRL Overlay Extension")] 23 | [assembly: AssemblyDescription("String Reloader Overlay Extension")] 24 | [assembly: AssemblyCompany("VNX+")] 25 | [assembly: AssemblyProduct("Overlay Extension")] 26 | [assembly: AssemblyCopyright("Copyright © VNX+ 2018")] 27 | [assembly: AssemblyTrademark("")] 28 | 29 | [assembly: ComVisible(false)] 30 | 31 | //O GUID a seguir será destinado à ID de typelib se este projeto for exposto para COM 32 | [assembly: Guid("5d5bfe7e-02a5-4249-be8a-d097b81b1a1b")] 33 | 34 | // As informações da versão de um assembly consistem nos quatro valores a seguir: 35 | // 36 | // Versão Principal 37 | // Versão Secundária 38 | // Número da Versão 39 | // Revisão 40 | // 41 | // É possível especificar todos os valores ou usar como padrão os Números de Build e da Revisão 42 | // utilizando o "*" como mostrado abaixo: 43 | // 44 | 45 | [assembly: AssemblyVersion("1.0.0.0")] 46 | [assembly: AssemblyFileVersion("1.0.0.0")] 47 | 48 | 49 | [assembly: AssemblyConfiguration("")] 50 | [assembly: AssemblyDelaySign(false)] 51 | [assembly: AssemblyKeyFile("")] 52 | [assembly: AssemblyKeyName("")] 53 | -------------------------------------------------------------------------------- /Overlay/Settings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace Overlay { 5 | public partial class Settings : Form { 6 | public bool TranslationMode = false; 7 | public bool AutoResizeFont = false; 8 | public float FixedFontSize = 12.0f; 9 | public string ListFile = null; 10 | public Settings() { 11 | InitializeComponent(); 12 | } 13 | 14 | private void ckAutoSizeFont_CheckedChanged(object sender, EventArgs e) { 15 | FontSizeTB.Enabled = !ckAutoSizeFont.Checked; 16 | } 17 | 18 | private void ckTransMode_CheckedChanged(object sender, EventArgs e) { 19 | ListFileTB.Enabled = ckTransMode.Checked; 20 | } 21 | 22 | private void Settings_FormClosing(object sender, FormClosingEventArgs e) { 23 | TranslationMode = ckTransMode.Checked; 24 | AutoResizeFont = ckAutoSizeFont.Checked; 25 | FixedFontSize = float.Parse(FontSizeTB.Text); 26 | ListFile = ListFileTB.Text; 27 | DialogResult = DialogResult.OK; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Overlay/TextOverlay.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Overlay { 2 | partial class TextOverlay { 3 | /// 4 | /// Required designer variable. 5 | /// 6 | private System.ComponentModel.IContainer components = null; 7 | 8 | /// 9 | /// Clean up any resources being used. 10 | /// 11 | /// true if managed resources should be disposed; otherwise, false. 12 | protected override void Dispose(bool disposing) { 13 | if (disposing && (components != null)) { 14 | components.Dispose(); 15 | } 16 | base.Dispose(disposing); 17 | } 18 | 19 | #region Windows Form Designer generated code 20 | 21 | /// 22 | /// Required method for Designer support - do not modify 23 | /// the contents of this method with the code editor. 24 | /// 25 | private void InitializeComponent() { 26 | this.SuspendLayout(); 27 | // 28 | // TextOverlay 29 | // 30 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 31 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 32 | this.ClientSize = new System.Drawing.Size(606, 196); 33 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 34 | this.Name = "TextOverlay"; 35 | this.Text = "TextOverlay"; 36 | this.ResumeLayout(false); 37 | 38 | } 39 | 40 | #endregion 41 | } 42 | } -------------------------------------------------------------------------------- /SRLDebugger/Properties/PublishProfiles/FolderProfile.pubxml.user: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | -------------------------------------------------------------------------------- /SRLDebugger/SRLDebugger.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | Exe 4 | net45 5 | x64;x86 6 | true 7 | true 8 | true 9 | 10 | 11 | win-x86 12 | 13 | 14 | win-x64 15 | 16 | 17 | true 18 | 19 | 20 | true 21 | 22 | 23 | true 24 | 25 | 26 | true 27 | 28 | 29 | true 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /SRLDebugger/SRLDebugger.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | <_LastSelectedProfileId>E:\Users\Marcus\Documents\Visual Studio 2019\Projects\StringReloads\SRLDebugger\Properties\PublishProfiles\FolderProfile.pubxml 5 | 6 | -------------------------------------------------------------------------------- /SRLNative/SRLNative.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Arquivos de Cabeçalho 20 | 21 | 22 | Arquivos de Cabeçalho 23 | 24 | 25 | 26 | 27 | Arquivos de Origem 28 | 29 | 30 | Arquivos de Origem 31 | 32 | 33 | -------------------------------------------------------------------------------- /SRLNative/SRLNative.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /SRLNative/framework.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define WIN32_LEAN_AND_MEAN // Excluir itens raramente utilizados dos cabeçalhos do Windows 4 | // Arquivos de Cabeçalho do Windows 5 | #include 6 | -------------------------------------------------------------------------------- /SRLNative/pch.cpp: -------------------------------------------------------------------------------- 1 | // pch.cpp: arquivo de origem correspondente ao cabeçalho pré-compilado 2 | 3 | #include "pch.h" 4 | 5 | // Quando você estiver usando cabeçalhos pré-compilados, esse arquivo de origem será necessário para que a compilação seja bem-sucedida. 6 | -------------------------------------------------------------------------------- /SRLNative/pch.h: -------------------------------------------------------------------------------- 1 | // pch.h: esse é um arquivo de cabeçalho pré-compilado. 2 | // Os arquivos listados a seguir são compilados somente uma vez, melhorando o desempenho dos builds futuros. 3 | // Isso também afeta o desempenho do IntelliSense, incluindo a conclusão de código e muitos recursos de navegação de código. 4 | // No entanto, os arquivos listados aqui serão TODOS recompilados se qualquer um deles for atualizado entre builds. 5 | // Não adicione aqui arquivos que você atualizará com frequência, pois isso anula a vantagem de desempenho. 6 | 7 | #ifndef PCH_H 8 | #define PCH_H 9 | 10 | // adicione os cabeçalhos que você deseja pré-compilar aqui 11 | #include "framework.h" 12 | 13 | #endif //PCH_H 14 | -------------------------------------------------------------------------------- /SRLWrapper/Exports.cs: -------------------------------------------------------------------------------- 1 | using StringReloads; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace SRLWrapper 5 | { 6 | public static unsafe class Exports 7 | { 8 | static Exports() { 9 | EntryPoint._CurrentDLL = Wrapper.Base.Wrapper.GetSRLPath(); 10 | } 11 | 12 | [DllExport(CallingConvention.StdCall)] 13 | public static void* Process(void* Value) => EntryPoint.Process(Value); 14 | 15 | [DllExport(CallingConvention.StdCall)] 16 | public static void* GetDirectProcess() => EntryPoint.GetDirectProcess(); 17 | 18 | [DllExport(CallingConvention.StdCall)] 19 | public static void* ProcessW(void* Value) => EntryPoint.ProcessW(Value); 20 | 21 | [DllExport(CallingConvention.StdCall)] 22 | public static void* GetDirectProcessW() => EntryPoint.GetDirectProcessW(); 23 | 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SRLWrapper/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /SRLWrapper/PipeServer.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | using System; 3 | using StringReloads; 4 | 5 | namespace SRLWrapper 6 | { 7 | unsafe static class PipeServer 8 | { 9 | 10 | [DllExport(CallingConvention = CallingConvention.StdCall)] 11 | public static IntPtr Server(IntPtr hWnd, IntPtr hInst, IntPtr hCmdLine, int nCmdShow) 12 | { 13 | EntryPoint._CurrentDLL = Wrapper.Base.Wrapper.GetSRLPath(); 14 | EntryPoint.PipeServer(Marshal.PtrToStringAnsi(hCmdLine)); 15 | return IntPtr.Zero; 16 | } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SRLWrapper/Wrapper/KIRIKIRI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | using SRLWrapper.Wrapper.Base; 4 | using static SRLWrapper.Wrapper.Base.Wrapper; 5 | 6 | namespace SRLWrapper 7 | { 8 | /// 9 | /// This is a wrapper to any kirikiri plugin 10 | /// 11 | public unsafe static class KIRIKIRI 12 | { 13 | public static void LoadRetail() 14 | { 15 | if (RealHandler != null) 16 | return; 17 | 18 | RealHandler = LoadLibrary(CurrentDllName, false); 19 | 20 | if (RealHandler != null) { 21 | Link = GetDelegate(RealHandler, "V2Link", false); 22 | Unlink = GetDelegate(RealHandler, "V2Unlink", false); 23 | } 24 | 25 | InitializeSRL(); 26 | } 27 | 28 | [DllExport(CallingConvention = CallingConvention.Winapi)] 29 | public static IntPtr V2Link(IntPtr Exporter) 30 | { 31 | LoadRetail(); 32 | if (RealHandler == null) 33 | return IntPtr.Zero; 34 | return Link(Exporter); 35 | } 36 | 37 | [DllExport(CallingConvention = CallingConvention.Winapi)] 38 | public static IntPtr V2Unlink() 39 | { 40 | LoadRetail(); 41 | if (RealHandler == null) 42 | return IntPtr.Zero; 43 | return Unlink(); 44 | } 45 | 46 | static RET_1 Link; 47 | static RET_0 Unlink; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /SamplePlugin/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // As informações gerais sobre um assembly são controladas por 6 | // conjunto de atributos. Altere estes valores de atributo para modificar as informações 7 | // associada a um assembly. 8 | [assembly: AssemblyTitle("SamplePlugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("SamplePlugin")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Definir ComVisible como false torna os tipos neste assembly invisíveis 18 | // para componentes COM. Caso precise acessar um tipo neste assembly de 19 | // COM, defina o atributo ComVisible como true nesse tipo. 20 | [assembly: ComVisible(false)] 21 | 22 | // O GUID a seguir será destinado à ID de typelib se este projeto for exposto para COM 23 | [assembly: Guid("653a209c-13b5-4c77-8782-d6ada9a1c57e")] 24 | 25 | // As informações da versão de um assembly consistem nos quatro valores a seguir: 26 | // 27 | // Versão Principal 28 | // Versão Secundária 29 | // Número da Versão 30 | // Revisão 31 | // 32 | // É possível especificar todos os valores ou usar como padrão os Números de Build e da Revisão 33 | // usando o "*" como mostrado abaixo: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /SamplePlugin/SamplePlugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using StringReloads; 3 | using StringReloads.Engine; 4 | using StringReloads.Engine.Interface; 5 | using StringReloads.Hook.Base; 6 | using static StringReloads.Engine.User; 7 | 8 | namespace SamplePlugin 9 | { 10 | public class SamplePlugin : IPlugin 11 | { 12 | SRL Engine; 13 | public string Name => "Sample"; 14 | 15 | public IAutoInstall[] GetAutoInstallers() => null; 16 | 17 | public IEncoding[] GetEncodings() => null; 18 | 19 | public Hook[] GetHooks() => null; 20 | 21 | public IMatch[] GetMatchs() => null; 22 | 23 | public IStringModifier[] GetModifiers() => new[] { new SampleModifier() }; 24 | 25 | public IMod[] GetMods() => null; 26 | 27 | public IReloader[] GetReloaders() => null; 28 | 29 | public void Initialize(SRL Engine) 30 | { 31 | this.Engine = Engine; 32 | if (!Config.Default.GetValue("SampleModifier", "Modifiers").ToBoolean()) 33 | ShowMessageBox("The Sample Plugin is loaded, but the SampleModifier isn't enabled in the SRL.ini", "Sample Warning", MBButtons.Ok, MBIcon.Warning); 34 | } 35 | } 36 | 37 | public class SampleModifier : IStringModifier 38 | { 39 | public string Name => "SampleModifier"; 40 | 41 | public bool CanRestore => true; 42 | 43 | public string Apply(string String, string Original) 44 | { 45 | Log.Debug("Sample Modifier Plugin Called"); 46 | return String.Replace("a", "@").Replace("i", "1").Replace("s", "$").Replace("e", "&"); 47 | } 48 | 49 | public string Restore(string String) 50 | { 51 | return String.Replace("@", "a").Replace("1", "i").Replace("$", "s").Replace("&", "e"); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /StringReloads/AutoInstall/ExHIBIT.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using StringReloads.Hook.Others; 4 | using StringReloads.Hook.Win32; 5 | using System; 6 | using System.Diagnostics; 7 | using System.Linq; 8 | 9 | namespace StringReloads.AutoInstall 10 | { 11 | class ExHIBIT : IAutoInstall 12 | { 13 | public string Name => "ExHIBIT"; 14 | 15 | ExHIBIT_lstrcpyA lstrcpyAHook; 16 | 17 | ExHIBIT_Say10 Say10Hook; 18 | ExHIBIT_Say11 Say12Hook; 19 | ExHIBIT_PrintSub3 PrintSub3Hook; 20 | ExHIBIT_Question QuestionHook; 21 | public void Install() 22 | { 23 | if (Say10Hook == null && Say12Hook == null) 24 | { 25 | try 26 | { 27 | Say10Hook = new ExHIBIT_Say10(); 28 | } 29 | catch 30 | { 31 | Say12Hook = new ExHIBIT_Say11(); 32 | } 33 | } 34 | 35 | if (QuestionHook == null) 36 | { 37 | try 38 | { 39 | QuestionHook = new ExHIBIT_Question(); 40 | } 41 | catch { } 42 | } 43 | 44 | if (PrintSub3Hook == null) 45 | PrintSub3Hook = new ExHIBIT_PrintSub3(); 46 | 47 | var Modules = Process.GetCurrentProcess().Modules.Cast(); 48 | var Resident = (from x in Modules where x.ModuleName.ToLowerInvariant() == "resident.dll" select x.BaseAddress).Single(); 49 | 50 | if (lstrcpyAHook == null) 51 | lstrcpyAHook = new ExHIBIT_lstrcpyA(Resident); 52 | 53 | Say10Hook?.Install(); 54 | Say12Hook?.Install(); 55 | PrintSub3Hook.Install(); 56 | 57 | if (QuestionHook == null) 58 | lstrcpyAHook.Install(); 59 | else 60 | QuestionHook.Install(); 61 | } 62 | 63 | public bool IsCompatible() 64 | { 65 | if (!System.IO.File.Exists("resident.dll")) 66 | return false; 67 | 68 | if (Config.Default.HookEnabled("lstrcpyA")) 69 | { 70 | Log.Error("The ExHIBIT Auto-Install require to disable the lstrcpyA Hook."); 71 | return false; 72 | } 73 | 74 | return true; 75 | } 76 | 77 | public void Uninstall() 78 | { 79 | Say10Hook?.Uninstall(); 80 | Say12Hook?.Uninstall(); 81 | QuestionHook?.Uninstall(); 82 | PrintSub3Hook.Uninstall(); 83 | lstrcpyAHook.Uninstall(); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /StringReloads/AutoInstall/SoftPalMethodB.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using StringReloads.Hook; 4 | using StringReloads.Engine.Interface; 5 | using StringReloads.AutoInstall.Patcher; 6 | using static StringReloads.Hook.Base.Extensions; 7 | 8 | namespace StringReloads.AutoInstall 9 | { 10 | unsafe class SoftPalMethodB : IAutoInstall 11 | { 12 | SoftPal_DrawText Hook; 13 | public string Name => "SoftPal#B"; 14 | 15 | public void Install() => Hook.Install(); 16 | 17 | public bool IsCompatible() 18 | { 19 | var DLLPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "dll", "pal.dll"); 20 | 21 | if (!File.Exists(DLLPath)) 22 | return false; 23 | 24 | var hModule = GetLibrary(DLLPath); 25 | if (hModule == null) 26 | return false; 27 | 28 | var hDrawText = GetProcAddress(hModule, "DrawText"); 29 | if (hDrawText == null) 30 | { 31 | hDrawText = GetProcAddress(hModule, "drawText"); 32 | if (hDrawText == null) 33 | return false; 34 | 35 | SoftPal_DrawText.AltName = true; 36 | } 37 | 38 | ExeTools.ApplyWrapperPatch(); 39 | Hook = new SoftPal_DrawText(); 40 | return true; 41 | } 42 | 43 | public void Uninstall() => Hook.Uninstall(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /StringReloads/Engine/Helpers.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace StringReloads.Engine 9 | { 10 | static class Helpers 11 | { 12 | internal static T TryGet(Func Action) 13 | { 14 | try 15 | { 16 | return Action(); 17 | } 18 | catch { 19 | return default; 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IAutoInstall.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Engine.Interface 2 | { 3 | public interface IAutoInstall 4 | { 5 | public string Name { get; } 6 | 7 | public bool IsCompatible(); 8 | public void Install(); 9 | public void Uninstall(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IEncoding.cs: -------------------------------------------------------------------------------- 1 | using System.Text; 2 | 3 | namespace StringReloads.Engine.Interface 4 | { 5 | public interface IEncoding 6 | { 7 | public string Name { get; } 8 | public byte[] Termination { get; } 9 | public Encoding Encoding { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IMatch.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Engine.Interface 2 | { 3 | public interface IMatch 4 | { 5 | public char? ResolveRemap(char Char); 6 | public bool HasMatch(string String); 7 | public bool HasValue(string String); 8 | public LSTEntry? MatchString(string String); 9 | public FontRemap? ResolveRemap(string Facename, int Width, int Height, uint Charset); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IMod.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Engine.Interface 2 | { 3 | public interface IMod 4 | { 5 | public string Name { get; } 6 | public void Install(); 7 | public void Uninstall(); 8 | 9 | public bool IsCompatible(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IPlugin.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Engine.Interface 2 | { 3 | public interface IPlugin 4 | { 5 | public string Name { get; } 6 | public void Initialize(SRL Engine); 7 | public Hook.Base.Hook[] GetHooks(); 8 | public IAutoInstall[] GetAutoInstallers(); 9 | public IMatch[] GetMatchs(); 10 | public IMod[] GetMods(); 11 | public IStringModifier[] GetModifiers(); 12 | public IReloader[] GetReloaders(); 13 | public IEncoding[] GetEncodings(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IReloader.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Engine.Interface 2 | { 3 | public unsafe interface IReloader 4 | { 5 | public string Name { get; } 6 | 7 | public void* BeforeReload(void* pInput, bool WideMode); 8 | 9 | public void* AfterReload(void* pInput, void* pOutput, bool WideMode); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /StringReloads/Engine/Interface/IStringModifier.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Engine.Interface 2 | { 3 | public interface IStringModifier 4 | { 5 | public string Name { get; } 6 | public bool CanRestore { get; } 7 | public string Apply(string String, string Original); 8 | public string Restore(string String); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /StringReloads/Engine/Match/TrimMatch.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.Interface; 2 | using StringReloads.StringModifier; 3 | 4 | namespace StringReloads.Engine.Match 5 | { 6 | class TrimMatch : BasicMatch, IMatch 7 | { 8 | SRL Engine; 9 | public TrimMatch(SRL Engine) : base(Engine) 10 | { 11 | this.Engine = Engine; 12 | } 13 | 14 | bool IMatch.HasMatch(string String) 15 | { 16 | if (!Engine.Settings.TrimMatch) 17 | return false; 18 | 19 | return HasMatch(String); 20 | } 21 | 22 | LSTEntry? IMatch.MatchString(string String) 23 | { 24 | var Prefix = TrimRestore.Default.GetPrefix(String); 25 | var Sufix = TrimRestore.Default.GetSufix(String); 26 | var Match = MatchString(TrimRestore.Default.Trim(String)); 27 | if (Match == null) 28 | return null; 29 | 30 | LSTEntry Result = Match.Value; 31 | 32 | Result.OriginalLine = $"{Prefix}{Result.OriginalLine}{Sufix}"; 33 | Result.TranslationLine = $"{Prefix}{Result.TranslationLine}{Sufix}"; 34 | 35 | return Result; 36 | } 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /StringReloads/Engine/String/CString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Linq; 4 | using System.Runtime.InteropServices; 5 | using System.Text; 6 | 7 | namespace StringReloads.Engine.String 8 | { 9 | [DebuggerDisplay("{DebuggerDisplay,nq}")] 10 | public unsafe class CString : StringBufferA 11 | { 12 | private CString(byte* Ptr) : base(Ptr) { } 13 | 14 | public Encoding ReadEncoding = Config.Default.ReadEncoding; 15 | public Encoding WriteEncoding = Config.Default.WriteEncoding; 16 | 17 | public static implicit operator CString(byte* Ptr) => new CString(Ptr); 18 | public static implicit operator CString(long Ptr) => new CString((byte*)Ptr); 19 | public static implicit operator CString(ulong Ptr) => new CString((byte*)Ptr); 20 | public static implicit operator CString(void* Ptr) => new CString((byte*)Ptr); 21 | public static implicit operator CString(IntPtr Ptr) => new CString((byte*)Ptr.ToPointer()); 22 | 23 | public static implicit operator void*(CString Str) => Str.Address; 24 | public static implicit operator byte*(CString Str) => (byte*)Str.Address; 25 | 26 | public static implicit operator string(CString Str) 27 | { 28 | var Len = Str.FixedLength ?? Str.Count(); 29 | return new string(Str.Address, 0, (int)Len, Str.ReadEncoding); 30 | } 31 | 32 | public static implicit operator CString(string Content) 33 | { 34 | var Buffer = Config.Default.WriteEncoding.GetBytes(Content + "\x0"); 35 | var Ptr = (byte*)Marshal.AllocHGlobal(Buffer.Length).ToPointer(); 36 | 37 | for (int i = 0; i < Buffer.Length; i++) 38 | Ptr[i] = Buffer[i]; 39 | 40 | return Ptr; 41 | } 42 | 43 | public void SetContent(string Content) 44 | { 45 | unchecked 46 | { 47 | var Buffer = WriteEncoding.GetBytes(Content + "\x0"); 48 | for (int i = 0; i < Buffer.Length; i++) 49 | Address[i] = (sbyte)Buffer[i]; 50 | } 51 | } 52 | 53 | private string DebuggerDisplay 54 | { 55 | get 56 | { 57 | if (Environment.Is64BitProcess) 58 | return $"[0x{(ulong)Address:X16}] {(string)this}"; 59 | return $"[0x{(uint)Address:X8}] {(string)this}"; 60 | } 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /StringReloads/Engine/String/CharacterRanges.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Linq; 3 | 4 | namespace StringReloads.Engine.String 5 | { 6 | public static class CharacterRanges 7 | { 8 | public static IEnumerable GetRanges(string List) { 9 | if (List == null) 10 | yield break; 11 | 12 | for (int i = 0; i < List.Length; i++) { 13 | char Char = List[i]; 14 | char? Next = null; 15 | 16 | if (i + 1 < List.Length) 17 | Next = List[i + 1]; 18 | 19 | if (Next == '-' && i + 2 < List.Length) 20 | Next = List[i + 2]; 21 | else 22 | Next = null; 23 | 24 | if (Next != null) 25 | yield return new CharacterRange() { Begin = Char, End = Next.Value }; 26 | else 27 | yield return new CharacterRange() { Begin = Char, End = Char }; 28 | } 29 | } 30 | 31 | public static int TotalMissmatch(string String, IEnumerable Ranges) { 32 | if (Ranges.Count() == 0) 33 | return 0; 34 | 35 | int Missmatch = 0; 36 | foreach (var Char in String) 37 | if (!CharInRange(Char, Ranges) && !char.IsWhiteSpace(Char)) { 38 | Log.Trace($"Char Missmatch: '{Char}' from \"{String}\""); 39 | Missmatch++; 40 | } 41 | return Missmatch; 42 | } 43 | 44 | public static bool CharInRange(char Char, IEnumerable Ranges) { 45 | foreach (var Range in Ranges) { 46 | if (Char >= Range.Begin && Char <= Range.End) 47 | return true; 48 | } 49 | return false; 50 | } 51 | } 52 | 53 | public struct CharacterRange { 54 | public ushort Begin; 55 | public ushort End; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /StringReloads/Engine/String/StringBufferA.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace StringReloads.Engine.String 6 | { 7 | public unsafe abstract class StringBufferA : IEnumerable 8 | { 9 | public long? FixedLength = null; 10 | public sbyte* Address => (sbyte*)Ptr; 11 | public IEnumerator GetEnumerator() 12 | { 13 | int Length = 0; 14 | var Ptr = this.Ptr; 15 | while (true) 16 | { 17 | var Current = ReadNext(ref Ptr); 18 | if (Current == 0) 19 | yield break; 20 | 21 | yield return Current; 22 | 23 | if (FixedLength != null && Length++ > FixedLength) 24 | yield break; 25 | } 26 | } 27 | 28 | #if x64 29 | 30 | public StringBufferA(void* Address) => Ptr = (ulong)Address; 31 | public StringBufferA(byte* Address) => Ptr = (ulong)Address; 32 | 33 | ulong Ptr; 34 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 35 | public unsafe byte ReadNext(ref ulong Pointer) => *(byte*)Pointer++; 36 | #else 37 | 38 | public StringBufferA(void* Address) => Ptr = (uint)Address; 39 | public StringBufferA(byte* Address) => Ptr = (uint)Address; 40 | 41 | uint Ptr; 42 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 43 | public unsafe byte ReadNext(ref uint Pointer) => *(byte*)Pointer++; 44 | 45 | #endif 46 | 47 | IEnumerator IEnumerable.GetEnumerator() 48 | { 49 | return GetEnumerator(); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /StringReloads/Engine/String/StringBufferW.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Runtime.CompilerServices; 4 | 5 | namespace StringReloads.Engine.String 6 | { 7 | public unsafe abstract class StringBufferW : IEnumerable 8 | { 9 | public long? FixedLength = null; 10 | public sbyte* Address => (sbyte*)Ptr; 11 | public IEnumerator GetEnumerator() 12 | { 13 | int Length = 0; 14 | var Ptr = this.Ptr; 15 | while (true) 16 | { 17 | var Current = ReadNext(ref Ptr); 18 | if (Current == 0) 19 | yield break; 20 | 21 | yield return (byte)(Current >> 0x08); 22 | yield return (byte)(Current & 0xFF); 23 | 24 | if (FixedLength != null && Length++ > FixedLength) 25 | yield break; 26 | } 27 | } 28 | 29 | #if x64 30 | 31 | public StringBufferW(void* Address) => Ptr = (ulong)Address; 32 | public StringBufferW(byte* Address) => Ptr = (ulong)Address; 33 | 34 | ulong Ptr; 35 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 36 | public unsafe ushort ReadNext(ref ulong Pointer) 37 | { 38 | var Word = *(ushort*)Pointer; 39 | Pointer += 2; 40 | return Word; 41 | } 42 | #else 43 | 44 | public StringBufferW(void* Address) => Ptr = (uint)Address; 45 | public StringBufferW(byte* Address) => Ptr = (uint)Address; 46 | 47 | uint Ptr; 48 | [MethodImpl(MethodImplOptions.AggressiveInlining)] 49 | public unsafe ushort ReadNext(ref uint Pointer) 50 | { 51 | var Word = *(ushort*)Pointer; 52 | Pointer += 2; 53 | return Word; 54 | } 55 | 56 | #endif 57 | 58 | IEnumerator IEnumerable.GetEnumerator() 59 | { 60 | return GetEnumerator(); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /StringReloads/Engine/String/WCString.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Linq; 4 | using System.Runtime.InteropServices; 5 | using System.Text; 6 | 7 | namespace StringReloads.Engine.String 8 | { 9 | [DebuggerDisplay("{DebuggerDisplay,nq}")] 10 | public unsafe class WCString : StringBufferW 11 | { 12 | private WCString(byte* Ptr) : base(Ptr) { } 13 | 14 | public static implicit operator WCString(byte* Ptr) => new WCString(Ptr); 15 | public static implicit operator WCString(long Ptr) => new WCString((byte*)Ptr); 16 | public static implicit operator WCString(ulong Ptr) => new WCString((byte*)Ptr); 17 | public static implicit operator WCString(void* Ptr) => new WCString((byte*)Ptr); 18 | public static implicit operator WCString(IntPtr Ptr) => new WCString((byte*)Ptr.ToPointer()); 19 | 20 | public static implicit operator void*(WCString Str) => Str.Address; 21 | public static implicit operator byte*(WCString Str) => (byte*)Str.Address; 22 | 23 | public static implicit operator string(WCString Str) 24 | { 25 | var Len = Str.FixedLength ?? Str.Count(); 26 | return new string(Str.Address, 0, (int)Len, Encoding.Unicode); 27 | } 28 | 29 | public static implicit operator WCString(string Content) 30 | { 31 | var Buffer = Encoding.Unicode.GetBytes(Content + "\x0"); 32 | var Ptr = (byte*)Marshal.AllocHGlobal(Buffer.Length).ToPointer(); 33 | 34 | for (int i = 0; i < Buffer.Length; i++) 35 | Ptr[i] = Buffer[i]; 36 | 37 | return Ptr; 38 | } 39 | 40 | public void SetContent(string Content) 41 | { 42 | unchecked 43 | { 44 | var Buffer = Encoding.Unicode.GetBytes(Content + "\x0"); 45 | for (int i = 0; i < Buffer.Length; i++) 46 | Address[i] = (sbyte)Buffer[i]; 47 | } 48 | } 49 | 50 | private string DebuggerDisplay 51 | { 52 | get 53 | { 54 | if (Environment.Is64BitProcess) 55 | return $"[0x{(ulong)Address:X16}] {(string)this}"; 56 | return $"[0x{(uint)Address:X8}] {(string)this}"; 57 | } 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /StringReloads/Engine/Types.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | 5 | namespace StringReloads.Engine 6 | { 7 | public static class Types 8 | { 9 | public delegate void FlagTrigger(LSTFlag Entry, CancelEventArgs Args); 10 | } 11 | 12 | public struct FontRemap { 13 | public string From; 14 | public string To; 15 | public int Width; 16 | public int Height; 17 | public uint Charset; 18 | } 19 | 20 | 21 | public struct Filter 22 | { 23 | public string DenyList; 24 | public string IgnoreList; 25 | public string QuoteList; 26 | public int Sensitivity; 27 | public bool UseDB; 28 | public bool FromAsian; 29 | public bool AllowNumbers; 30 | public bool RegexFilter; 31 | public bool DumpFilter; 32 | public bool DumpRegexFilter; 33 | public bool DumpAcceptableRange; 34 | public List AcceptableRange; 35 | } 36 | public struct Quote 37 | { 38 | public char Start; 39 | public char End; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /StringReloads/Engine/Unmanaged/Font.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Linq; 4 | using System.Runtime.InteropServices; 5 | 6 | namespace StringReloads.Engine.Unmanaged 7 | { 8 | internal unsafe static class FontUtility 9 | { 10 | internal static void LoadLocalFonts() 11 | { 12 | var RootDir = Path.Combine(EntryPoint.CurrentDll).TrimEnd(' ', '\\', '/'); 13 | var RootDirB = AppDomain.CurrentDomain.BaseDirectory.TrimEnd(' ', '\\', '/'); 14 | var RootBEquals = RootDir.ToLowerInvariant().StartsWith(RootDirB.ToLowerInvariant()); 15 | 16 | if (RootDirB.Length < RootDir.Length && RootBEquals) 17 | RootDir = RootDirB; 18 | 19 | var Exts = new string[] { "*.fon", "*.fnt", "*.ttf", "*.ttc", "*.fot", "*.otf", "*.mmm", "*.pfb", "*.pfm" }; 20 | var Fonts = (from Ext in Exts 21 | from Font in Directory.GetFiles(RootDir, Ext) 22 | select Font); 23 | 24 | Log.Debug("Font Search Root: " + RootDir); 25 | 26 | foreach (var Font in Fonts) 27 | { 28 | int Loaded = AddFontResourceExW(Font, FR_PRIVATE, null); 29 | 30 | if (Loaded > 0) 31 | Log.Debug($"{Loaded} Fonts Loaded From: {Path.GetFileName(Font)}"); 32 | else 33 | Log.Warning($"Failed to Load Font: {Path.GetFileName(Font)}"); 34 | } 35 | } 36 | 37 | [DllImport("gdi32.dll", CharSet = CharSet.Unicode)] 38 | static extern int AddFontResourceExW(string lpszFilename, uint fl, void* reserved); 39 | 40 | const uint FR_PRIVATE = 0x10; 41 | const uint FR_NOT_ENUM = 0x20; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /StringReloads/Engine/Unmanaged/SanityChecks.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System.Runtime.InteropServices; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace StringReloads.Engine.Unmanaged 10 | { 11 | static unsafe class SanityChecks 12 | { 13 | public static bool IsBadPtr(void* Pointer) => IsBadCodePtr(Pointer); 14 | public static bool IsBadPtr(byte* Pointer) => IsBadCodePtr(Pointer); 15 | public static bool IsBadPtr(ushort* Pointer) => IsBadCodePtr(Pointer); 16 | public static bool IsBadPtr(CString Pointer) => IsBadCodePtr(Pointer); 17 | public static bool IsBadPtr(WCString Pointer) => IsBadCodePtr(Pointer); 18 | 19 | [DllImport("kernel32.dll")] 20 | public static extern bool IsBadCodePtr(void* Pointer); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /StringReloads/Hook/Base/MemoryCodeReader.cs: -------------------------------------------------------------------------------- 1 | using Iced.Intel; 2 | using System; 3 | using System.Runtime.InteropServices; 4 | 5 | namespace StringReloads.Hook.Base 6 | { 7 | public unsafe class MemoryCodeReader : CodeReader, IDisposable 8 | { 9 | byte* Begin; 10 | byte* Address; 11 | void* End; 12 | 13 | uint Length = 0; 14 | 15 | public MemoryCodeReader(long Address) : this((byte*)Address) { } 16 | public MemoryCodeReader(void* Address) : this((byte*)Address) { } 17 | public MemoryCodeReader(byte* Address) : this(Address, 0) { } 18 | public MemoryCodeReader(void* Address, uint Length) : this((byte*)Address, Length) { } 19 | public MemoryCodeReader(byte* Address, uint Length) 20 | { 21 | this.Begin = Address; 22 | this.Address = Address; 23 | End = null; 24 | this.Length = Length; 25 | if (Length > 0) 26 | { 27 | End = this.Address + Length; 28 | VirtualProtect(Address, Length, PAGE_EXECUTE_READ, out OldProtection); 29 | } 30 | } 31 | 32 | ~MemoryCodeReader() 33 | { 34 | Dispose(); 35 | } 36 | 37 | public void Dispose() 38 | { 39 | if (End != null) 40 | VirtualProtect(Address, Length, OldProtection, out _); 41 | } 42 | 43 | public override int ReadByte() 44 | { 45 | if (End != null && Address >= End) 46 | return -1; 47 | 48 | return *Address++; 49 | } 50 | 51 | public void Reset() { 52 | Address = Begin; 53 | } 54 | 55 | uint OldProtection = 0; 56 | const uint PAGE_EXECUTE_READ = 0x20; 57 | 58 | 59 | [DllImport("kernel32.dll")] 60 | static extern bool VirtualProtect(void* lpAddress, uint dwSize, uint flNewProtect, out uint lpflOldProtect); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /StringReloads/Hook/Base/MemoryCodeWriter.cs: -------------------------------------------------------------------------------- 1 | using Iced.Intel; 2 | using System.Collections.Generic; 3 | 4 | namespace StringReloads.Hook.Base 5 | { 6 | public class MemoryCodeWriter : CodeWriter 7 | { 8 | List Buffer = new List(); 9 | public override void WriteByte(byte value) 10 | { 11 | Buffer.Add(value); 12 | } 13 | 14 | byte this[int Address] { 15 | get { 16 | return Buffer[Address]; 17 | } 18 | set { 19 | Buffer[Address] = value; 20 | } 21 | } 22 | 23 | public void CopyTo(byte[] Buffer, int Index) 24 | { 25 | for (int i = 0; i < this.Buffer.Count; i++) 26 | Buffer[Index + i] = this.Buffer[i]; 27 | } 28 | public unsafe void CopyTo(byte* Buffer, int Index) 29 | { 30 | for (int i = 0; i < this.Buffer.Count; i++) 31 | *(Buffer + Index + i) = this.Buffer[i]; 32 | } 33 | 34 | public byte[] ToArray() => Buffer.ToArray(); 35 | 36 | public void Clear() => Buffer.Clear(); 37 | 38 | public int Count => Buffer.Count; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /StringReloads/Hook/Base/UnsafeDelegate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace StringReloads.Hook.Base 5 | { 6 | public unsafe class UnsafeDelegate : IDisposable where T : Delegate { 7 | private UnsafeDelegate(void* Address) { this.Address = new IntPtr(Address); } 8 | 9 | ~UnsafeDelegate() { 10 | Dispose(); 11 | } 12 | 13 | IntPtr Address = IntPtr.Zero; 14 | 15 | private T Delegate; 16 | 17 | 18 | public static implicit operator UnsafeDelegate(void* Address) { 19 | return new UnsafeDelegate(Address); 20 | } 21 | 22 | public static implicit operator T(UnsafeDelegate Del) { 23 | if (Del.Delegate == null) 24 | Del.Delegate = (T)Marshal.GetDelegateForFunctionPointer(Del.Address, typeof(T)); 25 | GC.SuppressFinalize(Del.Delegate); 26 | return Del.Delegate; 27 | } 28 | 29 | public void Dispose() 30 | { 31 | GC.ReRegisterForFinalize(Delegate); 32 | } 33 | } 34 | public unsafe class UnsafeDelegate : IDisposable { 35 | 36 | Delegate Base; 37 | 38 | public UnsafeDelegate(Delegate Base) { this.Base = Base; } 39 | 40 | ~UnsafeDelegate() { 41 | Dispose(); 42 | } 43 | 44 | public void Dispose() 45 | { 46 | GC.ReRegisterForFinalize(Base); 47 | } 48 | 49 | public static implicit operator UnsafeDelegate(Delegate Del) { 50 | GC.SuppressFinalize(Del); 51 | return new UnsafeDelegate(Del); 52 | } 53 | public static implicit operator void*(UnsafeDelegate Function) { 54 | return Marshal.GetFunctionPointerForDelegate(Function.Base).ToPointer(); 55 | } 56 | public static implicit operator ulong(UnsafeDelegate Function) { 57 | return (ulong)(void*)Function; 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /StringReloads/Hook/Base/UnsafeStruct.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace StringReloads.Hook.Base 5 | { 6 | public unsafe class UnsafeStruct : IDisposable where T : struct 7 | { 8 | private UnsafeStruct(void* Address) { this.Address = new IntPtr(Address); } 9 | 10 | ~UnsafeStruct() 11 | { 12 | Dispose(); 13 | } 14 | 15 | IntPtr Address = IntPtr.Zero; 16 | 17 | private T Structure; 18 | 19 | 20 | public static implicit operator UnsafeStruct(void* Address) 21 | { 22 | return new UnsafeStruct(Address); 23 | } 24 | 25 | public static implicit operator T(UnsafeStruct Struct) 26 | { 27 | if (Struct.Address != IntPtr.Zero) 28 | Struct.Structure = (T)Marshal.PtrToStructure(Struct.Address, typeof(T)); 29 | else 30 | Struct.Structure = default; 31 | 32 | GC.SuppressFinalize(Struct.Structure); 33 | return Struct.Structure; 34 | } 35 | 36 | public static implicit operator void*(UnsafeStruct Struct) { 37 | if (Struct.Address == IntPtr.Zero) 38 | Struct.Address = Marshal.AllocHGlobal(Marshal.SizeOf(Struct.Structure)); 39 | 40 | Marshal.StructureToPtr(Struct.Structure, Struct.Address, true); 41 | return Struct.Address.ToPointer(); 42 | } 43 | 44 | public static implicit operator ulong(UnsafeStruct Struct) { 45 | return (ulong)(void*)Struct; 46 | } 47 | 48 | public void SetData(T NewData) { 49 | Structure = NewData; 50 | Marshal.StructureToPtr(Structure, Address, true); 51 | } 52 | 53 | public void Dispose() 54 | { 55 | GC.ReRegisterForFinalize(Structure); 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/CMVS_GetText.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Hook.Base; 2 | 3 | namespace StringReloads.Hook.Others 4 | { 5 | unsafe class CMVS_GetText : Hook 6 | { 7 | public CMVS_GetText(void* Address) : base(Address) { } 8 | 9 | public override string Library => throw new System.NotImplementedException(); 10 | 11 | public override string Export => throw new System.NotImplementedException(); 12 | 13 | public override void Initialize() 14 | { 15 | HookDelegate = new CMVS_GetTextDelegate(GetStrHook); 16 | Compile(Function); 17 | } 18 | 19 | void* GetStrHook(void* hScript, int StrID) 20 | { 21 | void* Str = Bypass(hScript, StrID); 22 | 23 | if (StrID >= 0) 24 | return EntryPoint.Process(Str); 25 | 26 | return Str; 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/CallerTracer.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Hook.Base; 2 | using System; 3 | using static StringReloads.Hook.Base.Extensions; 4 | 5 | namespace StringReloads.Hook 6 | { 7 | unsafe class CallerTracer : Intercept 8 | { 9 | public CallerTracer(void* Function) : base(Function) {} 10 | public override InterceptDelegate HookFunction => new InterceptDelegate(Interception); 11 | 12 | public event OnCallerCatch CallerCatched; 13 | public void Interception(void* ESP) { 14 | if (Environment.Is64BitProcess) { 15 | throw new NotImplementedException(); 16 | } 17 | else { 18 | uint* Stack = ((uint*)ESP) + 8; 19 | CallerCatched?.Invoke((void*)*Stack); 20 | } 21 | } 22 | 23 | public delegate void OnCallerCatch(void* Address); 24 | 25 | public void* SearchFuntionAddress(byte* At) { 26 | try 27 | { 28 | int Range = 0; 29 | while (Range < 0x1000) { 30 | DeprotectMemory(At, 3); 31 | 32 | if (Equals(FunctionPrefix, At - Range)) 33 | return At - Range; 34 | if (Equals(EmptyPrefix, At - Range)) 35 | return null; 36 | 37 | Range++; 38 | } 39 | } 40 | catch { } 41 | 42 | return null; 43 | } 44 | 45 | private bool Equals(byte[] Buffer, byte* Address) { 46 | for (int i = 0; i < Buffer.Length; i++) 47 | if (Buffer[i] != *Address++) 48 | return false; 49 | return true; 50 | } 51 | 52 | static byte[] FunctionPrefix = { 0x55, 0x8B, 0xEC }; 53 | static byte[] EmptyPrefix = { 0xCC, 0xCC, 0xCC }; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/EntisGLS_eslHeapAllocate.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Hook.Base; 3 | using System; 4 | using System.IO; 5 | 6 | namespace StringReloads.Hook.Others 7 | { 8 | unsafe class EntisGLS_eslHeapAllocate : Hook 9 | { 10 | public override string Library => Path.GetFileName(Config.Default.GameExePath); 11 | 12 | public override string Export => "eslHeapAllocate"; 13 | 14 | public override void Initialize() 15 | { 16 | try 17 | { 18 | HookDelegate = eslHeapAllocate; 19 | Compile(); 20 | } 21 | catch { } 22 | } 23 | 24 | public Action OnHeapAllocated; 25 | 26 | public void* eslHeapAllocate(void* a1, int Size, void* a3) { 27 | 28 | var Heap = Bypass(a1, Size, a3); 29 | 30 | if (Heap != null) 31 | OnHeapAllocated?.Invoke(new IntPtr(Heap), Size); 32 | 33 | return Heap; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/EntisGLS_eslHeapFree.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Hook.Base; 3 | using System; 4 | using System.IO; 5 | 6 | namespace StringReloads.Hook.Others 7 | { 8 | unsafe class EntisGLS_eslHeapFree : Hook 9 | { 10 | public override string Library => Path.GetFileName(Config.Default.GameExePath); 11 | 12 | public override string Export => "eslHeapFree"; 13 | 14 | public override void Initialize() 15 | { 16 | HookDelegate = eslHeapFree; 17 | Compile(); 18 | } 19 | 20 | public Action OnHeapDisposed; 21 | 22 | public void eslHeapFree(void* a1, void* Heap, void* a3) { 23 | 24 | Bypass(a1, Heap, a3); 25 | 26 | OnHeapDisposed?.Invoke(new IntPtr(Heap)); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/ExHIBIT_PrintSub.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | using StringReloads.Hook.Base; 3 | 4 | namespace StringReloads.Hook.Others 5 | { 6 | unsafe class ExHIBIT_PrintSub3 : Hook 7 | { 8 | public override string Library => "resident.dll"; 9 | 10 | public override string Export => "?printSub@RetouchPrintManager@@AAE_NPBDAAVUxPrintData@@K@Z"; 11 | 12 | public override void Initialize() 13 | { 14 | HookDelegate = hExHIBIT_PrintSub3; 15 | Compile(); 16 | } 17 | 18 | void hExHIBIT_PrintSub3(void* This, void* Text, void* a2, void * a3) { 19 | Text = EntryPoint.SRL.ProcessString((CString)Text); 20 | Bypass(This, Text, a2, a3); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/ExHIBIT_Question.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | using StringReloads.Hook.Base; 3 | using System; 4 | 5 | namespace StringReloads.Hook.Others 6 | { 7 | unsafe class ExHIBIT_Question : Hook 8 | { 9 | public override string Library => "resident.dll"; 10 | 11 | public const string ExportName = "?prepareQuestion@RetouchSystem@@QAEXHPBD@Z"; 12 | 13 | public override string Export => ExportName; 14 | 15 | public override void Initialize() 16 | { 17 | HookDelegate = hExHIBIT_Question; 18 | Compile(); 19 | } 20 | 21 | private void hExHIBIT_Question(void* This, void* a1, void* Text) 22 | { 23 | Text = EntryPoint.SRL.ProcessString((CString)Text); 24 | Bypass(This, a1, Text); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/ExHIBIT_Say.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | using StringReloads.Hook.Base; 3 | 4 | namespace StringReloads.Hook.Others 5 | { 6 | unsafe class ExHIBIT_Say10 : Hook 7 | { 8 | public override string Library => "resident.dll"; 9 | 10 | public const string ExportName ="?say@RetouchAdvCharacter@@QAEXHPBD0_NHHHHPAVRetouchPrintParam@@K@Z"; 11 | 12 | public override string Export => ExportName; 13 | 14 | public override void Initialize() 15 | { 16 | HookDelegate = hExHIBIT_Say10; 17 | Compile(); 18 | } 19 | 20 | void hExHIBIT_Say10(void* This, void* a1, void* a2, byte* Text, void* a4, void* a5, void* a6, void* a7, void* a8, void* a9, void* a10) { 21 | Text = EntryPoint.SRL.ProcessString((CString)Text); 22 | Bypass(This, a1, a2, Text, a4, a5, a6, a7, a8, a9, a10); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/ExHIBIT_SayV2.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | using StringReloads.Hook.Base; 3 | 4 | namespace StringReloads.Hook.Others 5 | { 6 | unsafe class ExHIBIT_Say11 : Hook 7 | { 8 | public override string Library => "resident.dll"; 9 | 10 | //?say@RetouchAdvCharacter@@QAEXHPBD0_NHHHHPAVRetouchPrintParam@@KPAVUxRuFukidashiData@@@Z 11 | public const string ExportName = "?say@RetouchAdvCharacter@@QAEXHPBD0_NHHHHPAVRetouchPrintParam@@KPAVUxRuFukidashiData@@@Z"; 12 | 13 | public override string Export => ExportName; 14 | 15 | public override void Initialize() 16 | { 17 | HookDelegate = hExHIBIT_Say12; 18 | Compile(); 19 | } 20 | 21 | void hExHIBIT_Say12(void* This, void* a1, void* a2, byte* Text, void* a4, void* a5, void* a6, void* a7, void* a8, void* a9, void* a10, void* a11) { 22 | Text = EntryPoint.SRL.ProcessString((CString)Text); 23 | Bypass(This, a1, a2, Text, a4, a5, a6, a7, a8, a9, a10, a11); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/ExHIBIT_lstrcpyA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Text; 4 | using Antlr.Runtime.Tree; 5 | using StringReloads.Engine.String; 6 | using StringReloads.Hook.Base; 7 | 8 | namespace StringReloads.Hook.Others 9 | { 10 | unsafe class ExHIBIT_lstrcpyA : Hook 11 | { 12 | public ExHIBIT_lstrcpyA() 13 | { 14 | HookDelegate = hlstrcpyA; 15 | Compile(); 16 | } 17 | public ExHIBIT_lstrcpyA(void* TargetModule) : this (new IntPtr(TargetModule)) { } 18 | public ExHIBIT_lstrcpyA(IntPtr TargetModule) 19 | { 20 | HookDelegate = hlstrcpyA; 21 | Compile(true, TargetModule); 22 | } 23 | public override string Library => "kernel32.dll"; 24 | 25 | public override string Export => "lstrcpyA"; 26 | 27 | public override void Initialize() { } 28 | 29 | private unsafe byte* hlstrcpyA(byte* lpString1, byte* lpString2) 30 | { 31 | if (!EntryPoint.SRL.Initialized) 32 | return Bypass(lpString1, lpString2); 33 | 34 | string Str = (CString)lpString2; 35 | 36 | if (MinifiedCount(Str) == 0) 37 | return Bypass(lpString1, lpString2); 38 | 39 | lpString2 = EntryPoint.SRL.ProcessString((CString)lpString2); 40 | return Bypass(lpString1, lpString2); 41 | } 42 | 43 | private int MinifiedCount(string Input) { 44 | int Result = 0; 45 | foreach (var Char in Input) { 46 | if (Char >= '0' && Char <= '9') 47 | continue; 48 | if (Char >= ',' && Char <= '.') 49 | continue; 50 | if (Char == ';' || char.IsWhiteSpace(Char)) 51 | continue; 52 | Result++; 53 | } 54 | return Result; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/Interceptor.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Hook.Base; 2 | 3 | namespace StringReloads.Hook 4 | { 5 | unsafe class Interceptor : Intercept 6 | { 7 | public Interceptor(void* Address, InterceptDelegate Action) { 8 | _HookFunc = Action; 9 | Compile(Address); 10 | } 11 | 12 | private InterceptDelegate _HookFunc; 13 | public override InterceptDelegate HookFunction => _HookFunc; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/ManagedInterceptor.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Hook.Base; 2 | 3 | namespace StringReloads.Hook 4 | { 5 | unsafe class ManagedInterceptor : Intercept 6 | { 7 | ManagedInterceptDelegate HookDelegate; 8 | public ManagedInterceptor(void* Address, ManagedInterceptDelegate Action) 9 | { 10 | HookDelegate = Action; 11 | Compile(Address); 12 | } 13 | 14 | public override ManagedInterceptDelegate ManagedHookFunction => HookDelegate; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/SoftPal_DrawText.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | unsafe class SoftPal_DrawText : Base.Hook 4 | { 5 | public static bool AltName; 6 | 7 | public override string Library => "pal.dll"; 8 | 9 | public override string Export => AltName ? "drawText" : "DrawText"; 10 | 11 | public override void Initialize() 12 | { 13 | HookDelegate = new SoftPAL_DrawTextDelegate(DrawText); 14 | Compile(); 15 | } 16 | 17 | void DrawText(byte* Text, void* a2, void* a3, void* a4, void* a5, void* a6, void* a7, void* a8, void* a9, void* a10, void* a11, void* a12, void* a13, void* a14, void* a15, void* a16, void* a17, void* a18, void* a19, void* a20, void* a21, void* a22, void* a23) { 18 | Text = (byte*)EntryPoint.Process(Text); 19 | Bypass(Text, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /StringReloads/Hook/Others/SoftPal_PalSpriteCreateText.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | 3 | namespace StringReloads.Hook 4 | { 5 | unsafe class SoftPal_PalSpriteCreateText : Base.Hook 6 | { 7 | public override string Library => "pal.dll"; 8 | 9 | public override string Export => "PalSpriteCreateText"; 10 | 11 | public override void Initialize() 12 | { 13 | HookDelegate = new SoftPAL_PalSpriteCreateTextDelegate(PalSpriteCreateText); 14 | Compile(); 15 | } 16 | 17 | void* PalSpriteCreateText(int a1, byte* Text, int* a3, int* a4) 18 | { 19 | if (a1 != 0 && Text != null) 20 | { 21 | Text = (byte*)EntryPoint.Process(Text); 22 | } 23 | return Bypass(a1, Text, a3, a4); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CoInitialize.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace StringReloads.Hook.Win32 8 | { 9 | class CoInitialize : Base.Hook 10 | { 11 | public override string Name => "CoInitialize"; 12 | public override string Library => "ole32.dll"; 13 | 14 | public override string Export => "CoInitialize"; 15 | 16 | public override void Initialize() 17 | { 18 | HookDelegate = hCoInitialize; 19 | Compile(); 20 | } 21 | 22 | int hCoInitialize(IntPtr Reserved) { 23 | Bypass(Reserved); 24 | return 0; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CreateFileA.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | public unsafe class CreateFileA : Base.Hook 4 | { 5 | public static CreateFileA Instance; 6 | 7 | public override string Library => "kernel32.dll"; 8 | 9 | public override string Export => "CreateFileA"; 10 | 11 | public override void Initialize() 12 | { 13 | if (Instance != null) 14 | return; 15 | 16 | Instance = this; 17 | HookDelegate = new CreateFileADelegate(CreateFileHook); 18 | Compile(); 19 | } 20 | 21 | public static event CreateFile OnCreateFile; 22 | private void* CreateFileHook(string FileName, EFileAccess Access, EFileShare Share, void* SecurityAttributes, ECreationDisposition CreationDisposition, EFileAttributes FlagsAndAttributes, void* TemplateFile) 23 | { 24 | FileName = OnCreateFile?.Invoke(FileName); 25 | return Bypass(FileName, Access, Share, SecurityAttributes, CreationDisposition, FlagsAndAttributes, TemplateFile); 26 | } 27 | 28 | public delegate string CreateFile(string FileName); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CreateFileW.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | public unsafe class CreateFileW : Base.Hook 4 | { 5 | public static CreateFileW Instance; 6 | public override string Library => "kernel32.dll"; 7 | 8 | public override string Export => "CreateFileW"; 9 | 10 | public override void Initialize() 11 | { 12 | if (Instance != null) 13 | return; 14 | 15 | Instance = this; 16 | HookDelegate = new CreateFileWDelegate(CreateFileHook); 17 | Compile(); 18 | } 19 | public static event CreateFile OnCreateFile; 20 | private void* CreateFileHook(string FileName, EFileAccess Access, EFileShare Share, void* SecurityAttributes, ECreationDisposition CreationDisposition, EFileAttributes FlagsAndAttributes, void* TemplateFile) 21 | { 22 | FileName = OnCreateFile?.Invoke(FileName); 23 | return Bypass(FileName, Access, Share, SecurityAttributes, CreationDisposition, FlagsAndAttributes, TemplateFile); 24 | } 25 | 26 | public delegate string CreateFile(string FileName); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CreateFontA.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.String; 2 | 3 | namespace StringReloads.Hook 4 | { 5 | public unsafe class CreateFontA : Base.Hook 6 | { 7 | public override string Library => "gdi32.dll"; 8 | 9 | public override string Export => "CreateFontA"; 10 | 11 | public override void Initialize() 12 | { 13 | HookDelegate = new CreateFontADelegate(CreateFontHook); 14 | Compile(); 15 | } 16 | 17 | void* CreateFontHook(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, int fdwItalic, int fdwUnderline, int fdwStrikeOut, uint fdwCharSet, int fdwOutputPrecision, int fdwClipPrecision, int fdwQuality, int fdwPitchAndFamily, byte* lpszFace) { 18 | var Remap = EntryPoint.SRL.ResolveRemap((CString)lpszFace, nWidth, nHeight, fdwCharSet); 19 | 20 | if (Remap != null) { 21 | nHeight = Remap.Value.Height; 22 | nWidth = Remap.Value.Width; 23 | lpszFace = (CString)Remap.Value.To; 24 | fdwCharSet = Remap.Value.Charset; 25 | } 26 | 27 | return Bypass(nHeight, nWidth, nEscapement, nOrientation, fnWeight, fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, fdwOutputPrecision, fdwClipPrecision, fdwQuality, fdwPitchAndFamily, lpszFace); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CreateFontIndirectA.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | unsafe class CreateFontIndirectA : Base.Hook 4 | { 5 | public override string Library => "gdi32.dll"; 6 | 7 | public override string Export => "CreateFontIndirectA"; 8 | 9 | public override void Initialize() 10 | { 11 | HookDelegate = new CreateFontIndirectADelegate(CreateFontIndirect); 12 | Compile(); 13 | } 14 | 15 | public void* CreateFontIndirect(ref LOGFONTA Info) { 16 | var Remap = EntryPoint.SRL.ResolveRemap(Info.lfFaceName, Info.lfWidth, Info.lfHeight, Info.lfCharSet); 17 | 18 | if (Remap != null) { 19 | Info.lfHeight = Remap.Value.Height; 20 | Info.lfWidth = Remap.Value.Width; 21 | Info.lfFaceName = Remap.Value.To; 22 | Info.lfCharSet = (byte)Remap.Value.Charset; 23 | } 24 | 25 | return Bypass(ref Info); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CreateFontIndirectW.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | unsafe class CreateFontIndirectW : Base.Hook 4 | { 5 | public override string Library => "gdi32.dll"; 6 | 7 | public override string Export => "CreateFontIndirectW"; 8 | 9 | public override void Initialize() 10 | { 11 | HookDelegate = new CreateFontIndirectWDelegate(CreateFontIndirect); 12 | Compile(); 13 | } 14 | 15 | public void* CreateFontIndirect(ref LOGFONTW Info) { 16 | var Remap = EntryPoint.SRL.ResolveRemap(Info.lfFaceName, Info.lfWidth, Info.lfHeight, Info.lfCharSet); 17 | 18 | if (Remap != null) { 19 | Info.lfHeight = Remap.Value.Height; 20 | Info.lfWidth = Remap.Value.Width; 21 | Info.lfFaceName = Remap.Value.To; 22 | Info.lfCharSet = (byte)Remap.Value.Charset; 23 | } 24 | 25 | return Bypass(ref Info); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/CreateFontW.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | public unsafe class CreateFontW : Base.Hook 4 | { 5 | public override string Library => "gdi32.dll"; 6 | 7 | public override string Export => "CreateFontW"; 8 | 9 | public override void Initialize() 10 | { 11 | HookDelegate = new CreateFontWDelegate(CreateFontHook); 12 | Compile(); 13 | } 14 | 15 | void* CreateFontHook(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, int fdwItalic, int fdwUnderline, int fdwStrikeOut, uint fdwCharSet, int fdwOutputPrecision, int fdwClipPrecision, int fdwQuality, int fdwPitchAndFamily, string lpszFace) { 16 | var Remap = EntryPoint.SRL.ResolveRemap(lpszFace, nWidth, nHeight, fdwCharSet); 17 | 18 | if (Remap != null) { 19 | nHeight = Remap.Value.Height; 20 | nWidth = Remap.Value.Width; 21 | lpszFace = Remap.Value.To; 22 | fdwCharSet = Remap.Value.Charset; 23 | } 24 | 25 | return Bypass(nHeight, nWidth, nEscapement, nOrientation, fnWeight, fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, fdwOutputPrecision, fdwClipPrecision, fdwQuality, fdwPitchAndFamily, lpszFace); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/ExtTextOutA.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System.Linq; 6 | using System.Runtime.InteropServices; 7 | 8 | namespace StringReloads.Hook.Win32 9 | { 10 | unsafe class ExtTextOutA : Hook 11 | { 12 | public override string Library => "gdi32.dll"; 13 | 14 | public override string Export => "ExtTextOutA"; 15 | 16 | public override void Initialize() 17 | { 18 | HookDelegate = new ExtTextOutADelegate(ExtTextOut); 19 | Compile(); 20 | } 21 | 22 | bool ExtTextOut(void* hdc, int x, int y, uint options, void* lprect, byte* lpString, uint c, int* lpDx) 23 | { 24 | CString OriStr = lpString; 25 | OriStr.FixedLength = c; 26 | 27 | WCString InStr = EntryPoint.ProcessW((WCString)(string)OriStr); 28 | 29 | if (Config.Default.ExtTextOutAUndoRemap) 30 | InStr = Remaper.Default.Restore(InStr); 31 | 32 | if (Config.Default.ExtTextOutARemapAlt) 33 | InStr = RemaperAlt.Default.Apply(InStr, null); 34 | 35 | return ExtTextOutW(hdc, x, y , options, lprect, InStr, (uint)InStr.LongCount()/2, lpDx); 36 | } 37 | 38 | [DllImport("gdi32.dll", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)] 39 | extern static bool ExtTextOutW(void* hdc, int x, int y, uint options, void* lprect, byte* lpString, uint c, int* lpDx); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/ExtTextOutW.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System.Linq; 6 | using System.Runtime.InteropServices; 7 | 8 | namespace StringReloads.Hook.Win32 9 | { 10 | unsafe class ExtTextOutW : Hook 11 | { 12 | public override string Library => "gdi32.dll"; 13 | 14 | public override string Export => "ExtTextOutW"; 15 | 16 | public override void Initialize() 17 | { 18 | HookDelegate = new ExtTextOutWDelegate(ExtTextOut); 19 | Compile(); 20 | } 21 | 22 | bool ExtTextOut(void* hdc, int x, int y, uint options, void* lprect, byte* lpString, uint c, int* lpDx) 23 | { 24 | WCString OriStr = lpString; 25 | OriStr.FixedLength = c * 2; 26 | 27 | WCString InStr = EntryPoint.ProcessW((WCString)(string)OriStr); 28 | 29 | if (Config.Default.ExtTextOutWUndoRemap) 30 | InStr = Remaper.Default.Restore(InStr); 31 | 32 | if (Config.Default.ExtTextOutWRemapAlt) 33 | InStr = RemaperAlt.Default.Apply(InStr, null); 34 | 35 | return Bypass(hdc, x, y , options, lprect, InStr, (uint)InStr.LongCount()/2, lpDx); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetCharABCWidthsFloatA.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Hook.Base; 3 | using StringReloads.StringModifier; 4 | using System.Linq; 5 | 6 | namespace StringReloads.Hook.Win32 7 | { 8 | public unsafe class GetCharABCWidthsFloatA : Hook 9 | { 10 | 11 | public override string Library => "gdi32.dll"; 12 | 13 | public override string Export => "GetCharABCWidthsFloatA"; 14 | 15 | public override void Initialize() 16 | { 17 | HookDelegate = hGetCharABCWidthsFloat; 18 | Compile(); 19 | } 20 | 21 | private unsafe bool hGetCharABCWidthsFloat(void* hdc, uint iFirst, uint iLast, ABCFLOAT* lpABC) 22 | { 23 | uint Diff = iLast - iFirst; 24 | 25 | iFirst = (uint)EntryPoint.Process((void*)iFirst); 26 | 27 | if (Config.Default.GetCharABCWidthsFloatAUndoRemap) 28 | iFirst = Remaper.Default.Restore(((char)iFirst).ToString()).First(); 29 | 30 | if (Config.Default.GetCharABCWidthsFloatARemapAlt) 31 | iFirst = RemaperAlt.Default.Apply(((char)iFirst).ToString(), null).First(); 32 | 33 | iLast = iFirst + Diff; 34 | return Bypass(hdc, iFirst, iLast, lpABC); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetCharABCWidthsFloatW.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Hook.Base; 3 | using StringReloads.StringModifier; 4 | using System.Linq; 5 | 6 | namespace StringReloads.Hook.Win32 7 | { 8 | public unsafe class GetCharABCWidthsFloatW : Hook 9 | { 10 | public override string Library => "gdi32.dll"; 11 | 12 | public override string Export => "GetCharABCWidthsFloatW"; 13 | 14 | public override void Initialize() 15 | { 16 | HookDelegate = hGetCharABCWidthsFloat; 17 | Compile(); 18 | } 19 | 20 | private unsafe bool hGetCharABCWidthsFloat(void* hdc, uint iFirst, uint iLast, ABCFLOAT* lpABC) 21 | { 22 | uint Diff = iLast - iFirst; 23 | iFirst = (uint)EntryPoint.ProcessW((void*)iFirst); 24 | 25 | if (Config.Default.GetCharABCWidthsFloatWUndoRemap) 26 | iFirst = Remaper.Default.Restore(((char)iFirst).ToString()).First(); 27 | 28 | if (Config.Default.GetCharABCWidthsFloatWRemapAlt) 29 | iFirst = RemaperAlt.Default.Apply(((char)iFirst).ToString(), null).First(); 30 | 31 | iLast = iFirst + Diff; 32 | return Bypass(hdc, iFirst, iLast, lpABC); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetCharacterPlacementA.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | 11 | namespace StringReloads.Hook.Win32 12 | { 13 | unsafe class GetCharacterPlacementA : Hook 14 | { 15 | public override string Library => "gdi32.dll"; 16 | 17 | public override string Export => "GetCharacterPlacementA"; 18 | 19 | public override void Initialize() 20 | { 21 | HookDelegate = hGetCharacterPlacement; 22 | Compile(); 23 | } 24 | 25 | uint hGetCharacterPlacement(void* hdc, byte* lpString, int nCount, int nMexExtent, GCP_RESULTSA* lpResult, uint dwFlags) 26 | { 27 | CString InStr = lpString; 28 | InStr.FixedLength = (uint)nCount; 29 | 30 | InStr = EntryPoint.Process((CString)(string)InStr);//Ensure Null-Terminated 31 | 32 | if (Config.Default.GetCharacterPlacementAUndoRemap) 33 | InStr = Remaper.Default.Restore(InStr); 34 | 35 | if (Config.Default.GetCharacterPlacementARemapAlt) 36 | InStr = RemaperAlt.Default.Apply(InStr, null); 37 | 38 | return Bypass(hdc, InStr, InStr.Count(), nMexExtent, lpResult, dwFlags); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetCharacterPlacementW.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | 11 | namespace StringReloads.Hook.Win32 12 | { 13 | unsafe class GetCharacterPlacementW : Hook 14 | { 15 | public override string Library => "gdi32.dll"; 16 | 17 | public override string Export => "GetCharacterPlacementW"; 18 | 19 | public override void Initialize() 20 | { 21 | HookDelegate = hGetCharacterPlacement; 22 | Compile(); 23 | } 24 | 25 | uint hGetCharacterPlacement(void* hdc, byte* lpString, int nCount, int nMexExtent, GCP_RESULTSW* lpResult, uint dwFlags) 26 | { 27 | WCString InStr = lpString; 28 | InStr.FixedLength = (uint)nCount; 29 | 30 | InStr = EntryPoint.ProcessW((WCString)(string)InStr);//Ensure Null-Terminated 31 | 32 | if (Config.Default.GetCharacterPlacementWUndoRemap) 33 | InStr = Remaper.Default.Restore(InStr); 34 | 35 | if (Config.Default.GetCharacterPlacementWRemapAlt) 36 | InStr = RemaperAlt.Default.Apply(InStr, null); 37 | 38 | return Bypass(hdc, InStr, InStr.Count(), nMexExtent, lpResult, dwFlags); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetGlyphOutlineA.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.StringModifier; 3 | using System.Linq; 4 | 5 | namespace StringReloads.Hook 6 | { 7 | public unsafe class GetGlyphOutlineA : Base.Hook 8 | { 9 | public override string Library => "gdi32.dll"; 10 | 11 | public override string Export => "GetGlyphOutlineA"; 12 | 13 | public override void Initialize() 14 | { 15 | HookDelegate = new GetGlyphOutlineADelegate(GetGlyphOutline); 16 | Compile(); 17 | } 18 | 19 | private uint GetGlyphOutline(void* hdc, uint uChar, uint uFormat, out GLYPHMETRICS lpgm, uint cbBuffer, byte* lpvBuffer, ref MAT2 lpmat2) 20 | { 21 | uChar = (uint)EntryPoint.Process((void*)uChar); 22 | 23 | if (Config.Default.GetGlyphOutlineAUndoRemap) 24 | uChar = Remaper.Default.Restore(((char)uChar).ToString()).First(); 25 | 26 | if (Config.Default.GetGlyphOutlineARemapAlt) 27 | uChar = RemaperAlt.Default.Apply(((char)uChar).ToString(), null).First(); 28 | 29 | return Bypass(hdc, uChar, uFormat, out lpgm, cbBuffer, lpvBuffer, ref lpmat2); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetGlyphOutlineW.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.StringModifier; 3 | using System.Linq; 4 | 5 | namespace StringReloads.Hook 6 | { 7 | public unsafe class GetGlyphOutlineW : Base.Hook 8 | { 9 | public override string Library => "gdi32.dll"; 10 | 11 | public override string Export => "GetGlyphOutlineW"; 12 | 13 | public override void Initialize() 14 | { 15 | HookDelegate = GetGlyphOutline; 16 | Compile(); 17 | } 18 | 19 | private uint GetGlyphOutline(void* hdc, uint uChar, uint uFormat, out GLYPHMETRICS lpgm, uint cbBuffer, byte* lpvBuffer, ref MAT2 lpmat2) 20 | { 21 | uChar = (uint)EntryPoint.ProcessW((void*)uChar); 22 | 23 | if (Config.Default.GetGlyphOutlineWUndoRemap) 24 | uChar = Remaper.Default.Restore(((char)uChar).ToString()).First(); 25 | 26 | if (Config.Default.GetGlyphOutlineWRemapAlt) 27 | uChar = RemaperAlt.Default.Apply(((char)uChar).ToString(), null).First(); 28 | 29 | return Bypass(hdc, uChar, uFormat, out lpgm, cbBuffer, lpvBuffer, ref lpmat2); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetProcAddress.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | public unsafe class GetProcAddress : Base.Hook 4 | { 5 | public override string Library => "kernel32.dll"; 6 | 7 | public override string Export => "GetProcAddress"; 8 | 9 | 10 | public override void Initialize() 11 | { 12 | HookDelegate = new GetProcAddressDelegate(hGetProcAddress); 13 | Compile(); 14 | } 15 | 16 | public static event GetProc OnGetProcAddress; 17 | private void* hGetProcAddress(void* hModule, void* Proc) { 18 | var Rst = Bypass(hModule, Proc); 19 | 20 | if (OnGetProcAddress != null) { 21 | var ERst = OnGetProcAddress.Invoke(hModule, Proc, Rst); 22 | if (ERst != null) 23 | return ERst; 24 | } 25 | 26 | return Rst; 27 | } 28 | 29 | public delegate void* GetProc(void* hModule, void* Proc, void* Result); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetTextExtentPoint32A.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Text; 9 | using System.Threading.Tasks; 10 | 11 | namespace StringReloads.Hook.Win32 12 | { 13 | unsafe class GetTextExtentPoint32A : Hook 14 | { 15 | public override string Library => "gdi32.dll"; 16 | 17 | public override string Export => "GetTextExtentPoint32A"; 18 | 19 | public override void Initialize() 20 | { 21 | HookDelegate = hGetTextExtendPoint32; 22 | Compile(); 23 | } 24 | 25 | private unsafe bool hGetTextExtendPoint32(void* hdc, byte* lpString, int c, SIZE* psize) 26 | { 27 | CString InStr = lpString; 28 | InStr.FixedLength = (uint)c; 29 | 30 | InStr = EntryPoint.Process((CString)(string)InStr);//Ensure Null-Terminated 31 | 32 | if (Config.Default.GetTextExtentPoint32AUndoRemap) 33 | InStr = Remaper.Default.Restore(InStr); 34 | 35 | if (Config.Default.GetTextExtentPoint32ARemapAlt) 36 | InStr = RemaperAlt.Default.Apply(InStr, null); 37 | 38 | return Bypass(hdc, InStr, InStr.Count(), psize); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/GetTextExtentPoint32W.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System.Linq; 6 | 7 | namespace StringReloads.Hook.Win32 8 | { 9 | unsafe class GetTextExtentPoint32W : Hook 10 | { 11 | public override string Library => "gdi32.dll"; 12 | 13 | public override string Export => "GetTextExtentPoint32W"; 14 | 15 | public override void Initialize() 16 | { 17 | HookDelegate = hGetTextExtendPoint32; 18 | Compile(); 19 | } 20 | 21 | private unsafe bool hGetTextExtendPoint32(void* hdc, byte* lpString, int c, SIZE* psize) 22 | { 23 | WCString InStr = lpString; 24 | InStr.FixedLength = (uint)c; 25 | 26 | InStr = EntryPoint.ProcessW((WCString)(string)InStr);//Ensure Null-Terminated 27 | 28 | if (Config.Default.GetTextExtentPoint32WUndoRemap) 29 | InStr = Remaper.Default.Restore(InStr); 30 | 31 | if (Config.Default.GetTextExtentPoint32WRemapAlt) 32 | InStr = RemaperAlt.Default.Apply(InStr, null); 33 | 34 | return Bypass(hdc, InStr, InStr.Count(), psize); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/LoadResource.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Hook.Base; 2 | using System; 3 | 4 | namespace StringReloads.Hook.Win32 5 | { 6 | unsafe class LoadResource : Hook 7 | { 8 | public override string Library => "kernel32"; 9 | 10 | public override string Export => "LoadResource"; 11 | 12 | public override void Initialize() 13 | { 14 | HookDelegate = hLoadResource; 15 | Compile(); 16 | } 17 | 18 | public Action OnCalled = null; 19 | 20 | public void* hLoadResource(void* hModule, void* hResInfo) 21 | { 22 | OnCalled?.Invoke(); 23 | return Bypass(hModule, hResInfo); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/SysAllocString.cs: -------------------------------------------------------------------------------- 1 | namespace StringReloads.Hook 2 | { 3 | public unsafe class SysAllocString : Base.Hook 4 | { 5 | public override string Library => "OleAut32.dll"; 6 | 7 | public override string Export => "SysAllocString"; 8 | 9 | public override void Initialize() 10 | { 11 | HookDelegate = new SysAllocStringDelegate(hSysAllocString); 12 | Compile(); 13 | } 14 | 15 | private void* hSysAllocString(void* pStr) { 16 | pStr = EntryPoint.ProcessW(pStr); 17 | return Bypass(pStr); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/TextOutA.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System.Linq; 6 | using System.Runtime.InteropServices; 7 | 8 | namespace StringReloads.Hook.Win32 9 | { 10 | unsafe class TextOutA : Hook 11 | { 12 | public override string Library => "gdi32.dll"; 13 | 14 | public override string Export => "TextOutA"; 15 | 16 | public override void Initialize() 17 | { 18 | HookDelegate = new TextOutADelegate(hTextOut); 19 | Compile(); 20 | } 21 | 22 | bool hTextOut(void* dc, int xStart, int yStart, byte* pStr, int strLen) 23 | { 24 | CString OriStr = pStr; 25 | OriStr.FixedLength = strLen; 26 | 27 | Log.Trace($"TextOutA X: {xStart} Y: {yStart}: {(string)OriStr}"); 28 | 29 | WCString InStr = EntryPoint.ProcessW((WCString)(string)OriStr); 30 | 31 | if (Config.Default.TextOutAUndoRemap) 32 | InStr = Remaper.Default.Restore(InStr); 33 | 34 | if (Config.Default.TextOutARemapAlt) 35 | InStr = RemaperAlt.Default.Apply(InStr, null); 36 | 37 | return TextOutW(dc, xStart, yStart, InStr, (int)InStr.LongCount()); 38 | } 39 | 40 | [DllImport("gdi32.dll", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)] 41 | extern static bool TextOutW(void* dc, int xStart, int yStart, byte* pStr, int strLen); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/TextOutW.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | using StringReloads.StringModifier; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Runtime.InteropServices; 9 | 10 | namespace StringReloads.Hook.Win32 11 | { 12 | unsafe class TextOutW : Hook 13 | { 14 | 15 | public override string Library => "gdi32.dll"; 16 | 17 | public override string Export => "TextOutW"; 18 | 19 | public override void Initialize() 20 | { 21 | HookDelegate = new TextOutWDelegate(TextOut); 22 | Compile(); 23 | } 24 | 25 | bool TextOut(void* dc, int xStart, int yStart, byte* pStr, int strLen) 26 | { 27 | WCString InStr = pStr; 28 | InStr.FixedLength = (uint)strLen*2; 29 | 30 | 31 | Log.Trace($"TextOutW X: {xStart} Y: {yStart}: {(string)InStr}"); 32 | 33 | InStr = EntryPoint.ProcessW((WCString)(string)InStr);//Ensure Null-Terminated 34 | 35 | if (Config.Default.TextOutWUndoRemap) 36 | InStr = Remaper.Default.Restore(InStr); 37 | 38 | if (Config.Default.TextOutWRemapAlt) 39 | InStr = RemaperAlt.Default.Apply(InStr, null); 40 | 41 | return Bypass(dc, xStart, yStart, InStr, InStr.Count()); 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/lstrcpyA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | 5 | namespace StringReloads.Hook.Win32 6 | { 7 | unsafe class lstrcpyA : Hook 8 | { 9 | public lstrcpyA() 10 | { 11 | HookDelegate = hlstrcpyA; 12 | Compile(); 13 | } 14 | public lstrcpyA(void* TargetModule) : this (new IntPtr(TargetModule)) { } 15 | public lstrcpyA(IntPtr TargetModule) 16 | { 17 | HookDelegate = hlstrcpyA; 18 | Compile(true, TargetModule); 19 | } 20 | public override string Library => "kernel32.dll"; 21 | 22 | public override string Export => "lstrcpyA"; 23 | 24 | public override void Initialize() { } 25 | 26 | private unsafe byte* hlstrcpyA(byte* lpString1, byte* lpString2) 27 | { 28 | if (!EntryPoint.SRL.Initialized) 29 | return Bypass(lpString1, lpString2); 30 | 31 | lpString2 = EntryPoint.SRL.ProcessString((CString)lpString2); 32 | return Bypass(lpString1, lpString2); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /StringReloads/Hook/Win32/lstrcpyW.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using StringReloads.Engine.String; 3 | using StringReloads.Hook.Base; 4 | 5 | namespace StringReloads.Hook.Win32 6 | { 7 | unsafe class lstrcpyW : Hook 8 | { 9 | public lstrcpyW() 10 | { 11 | HookDelegate = hlstrcpyW; 12 | Compile(); 13 | } 14 | public lstrcpyW(void* TargetModule) : this(new IntPtr(TargetModule)) { } 15 | public lstrcpyW(IntPtr TargetModule) 16 | { 17 | HookDelegate = hlstrcpyW; 18 | Compile(true, TargetModule); 19 | } 20 | public override string Library => "kernel32.dll"; 21 | 22 | public override string Export => "lstrcpyA"; 23 | 24 | public override void Initialize() { } 25 | 26 | private unsafe byte* hlstrcpyW(byte* lpString1, byte* lpString2) 27 | { 28 | if (!EntryPoint.SRL.Initialized) 29 | return Bypass(lpString1, lpString2); 30 | 31 | lpString2 = EntryPoint.SRL.ProcessString((WCString)lpString2); 32 | return Bypass(lpString1, lpString2); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /StringReloads/Mods/Base/MemoryPatching.cs: -------------------------------------------------------------------------------- 1 | using static StringReloads.Hook.Base.Extensions; 2 | using System; 3 | using System.Runtime.InteropServices; 4 | 5 | namespace StringReloads.Mods.Base 6 | { 7 | public unsafe class MemoryPatching 8 | { 9 | public void* PatchAddress { get; private set; } 10 | public MemoryPatching(void* Address, long Assert) : this((void*)(((long)Address) + Assert)) { } 11 | public MemoryPatching(void* Address) { 12 | PatchAddress = Address; 13 | } 14 | 15 | public MemoryPatching(void* Address, long Assert, byte[] PatchedData, byte[] UnpatchedData) : this((void*)(((long)Address) + Assert), PatchedData, UnpatchedData) { } 16 | public MemoryPatching(void* Address, byte[] PatchedData, byte[] UnpatchedData) { 17 | this.PatchAddress = Address; 18 | this.PatchedData = PatchedData; 19 | this.UnpatchedData = UnpatchedData; 20 | } 21 | 22 | public virtual byte[] PatchedData { get; } 23 | public virtual byte[] UnpatchedData { get; } 24 | 25 | public bool IsCompatible() { 26 | var MaxSize = Math.Max(PatchedData.Length, UnpatchedData.Length); 27 | DeprotectMemory(PatchAddress, (uint)MaxSize); 28 | byte[] Buffer = new byte[MaxSize]; 29 | Marshal.Copy(new IntPtr(PatchAddress), Buffer, 0, MaxSize); 30 | if (Equals(UnpatchedData, Buffer)) 31 | return true; 32 | if (Equals(PatchedData, Buffer)) 33 | return true; 34 | return false; 35 | } 36 | 37 | public void Enable() { 38 | DeprotectMemory(PatchAddress, (uint)PatchedData.Length); 39 | Marshal.Copy(PatchedData, 0, new IntPtr(PatchAddress), PatchedData.Length); 40 | } 41 | 42 | public void Disable() { 43 | DeprotectMemory(PatchAddress, (uint)UnpatchedData.Length); 44 | Marshal.Copy(UnpatchedData, 0, new IntPtr(PatchAddress), UnpatchedData.Length); 45 | } 46 | 47 | private bool Equals(byte[] BufferA, byte[] BufferB) { 48 | if (BufferA.Length > BufferB.Length) 49 | return false; 50 | for (int i = 0; i < BufferA.Length; i++) 51 | if (BufferA[i] != BufferB[i]) 52 | return false; 53 | return true; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /StringReloads/Mods/CoInitializeFix.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using StringReloads.Hook.Win32; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace StringReloads.Mods 11 | { 12 | class CoInitializeFix : IMod 13 | { 14 | public string Name => "CoInitializeFix"; 15 | 16 | public void Install() 17 | { 18 | EntryPoint.SRL.EnableHook(new CoInitialize()); 19 | } 20 | 21 | public bool IsCompatible() 22 | { 23 | return true; 24 | } 25 | 26 | public void Uninstall() { } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /StringReloads/Mods/ForceExit.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using System; 4 | using System.Diagnostics; 5 | using System.Runtime.InteropServices; 6 | using System.Threading; 7 | 8 | namespace StringReloads.Mods 9 | { 10 | unsafe class ForceExit : IMod 11 | { 12 | public ForceExit() { 13 | Watcher = new Thread(() => { 14 | while (Config.Default.MainWindow == null) 15 | Thread.Sleep(500); 16 | 17 | while (true) { 18 | if (!IsWindow(Config.Default.MainWindow)) 19 | Process.GetCurrentProcess().Kill(); 20 | Thread.Sleep(500); 21 | } 22 | }); 23 | Watcher.IsBackground = true; 24 | AppDomain.CurrentDomain.ProcessExit += ProcessExit; 25 | } 26 | 27 | bool Enabled = false; 28 | private void ProcessExit(object sender, EventArgs e) 29 | { 30 | if (!Enabled) 31 | return; 32 | 33 | Process.GetCurrentProcess().Kill(); 34 | } 35 | 36 | public string Name => "ForceExit"; 37 | 38 | Thread Watcher; 39 | public void Install() { 40 | Enabled = true; 41 | Watcher.Start(); 42 | } 43 | public bool IsCompatible() => true; 44 | 45 | public void Uninstall() { 46 | Enabled = false; 47 | Watcher.Abort(); 48 | } 49 | [DllImport("user32.dll")] 50 | static extern bool IsWindow(void* hWnd); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /StringReloads/Mods/PatchRedir.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using System; 4 | using System.IO; 5 | 6 | namespace StringReloads.Mods 7 | { 8 | class PatchRedir : IMod 9 | { 10 | Config Settings => EntryPoint.SRL.Settings; 11 | public string Name => "PatchRedir"; 12 | 13 | public void Install() 14 | { 15 | EntryPoint.SRL.EnableHook(new Hook.CreateFileA()); 16 | EntryPoint.SRL.EnableHook(new Hook.CreateFileW()); 17 | 18 | Hook.CreateFileA.OnCreateFile += Redirect; 19 | Hook.CreateFileW.OnCreateFile += Redirect; 20 | } 21 | 22 | private string Redirect(string FilePath) { 23 | string FileName = Path.GetFileName(FilePath); 24 | string PatchFile = Path.Combine(Environment.CurrentDirectory, "Patch", FileName); 25 | string WorkspaceFile = Path.Combine(Settings.WorkingDirectory, FileName); 26 | string OriFile = FilePath + ".ori"; 27 | 28 | if (File.Exists(PatchFile)) 29 | return PatchFile; 30 | 31 | if (WorkspaceFile != FilePath && File.Exists(WorkspaceFile)) 32 | return WorkspaceFile; 33 | 34 | if (File.Exists(OriFile)) 35 | return OriFile; 36 | 37 | return FilePath; 38 | } 39 | 40 | public void Uninstall() 41 | { 42 | Hook.CreateFileA.OnCreateFile -= Redirect; 43 | Hook.CreateFileW.OnCreateFile -= Redirect; 44 | } 45 | 46 | public bool IsCompatible() 47 | { 48 | return true; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /StringReloads/StringModifier/AntiIlegalChar.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | 9 | namespace StringReloads.StringModifier 10 | { 11 | internal class AntiIlegalChar : IStringModifier 12 | { 13 | public AntiIlegalChar(SRL Engine) 14 | { 15 | Illegals = Engine.CharRemap.Values.ToArray(); 16 | } 17 | public string Name => "AntiIlegalChar"; 18 | 19 | public bool CanRestore => false; 20 | 21 | 22 | char[] Illegals; 23 | 24 | public string Apply(string String, string Original) 25 | { 26 | foreach (var Char in Illegals) 27 | if (String.Contains(Char)) 28 | String = String.Replace(Char.ToString(), ""); 29 | 30 | return String; 31 | } 32 | 33 | public string Restore(string String) 34 | { 35 | throw new NotImplementedException(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /StringReloads/StringModifier/Escape.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine.Interface; 2 | using System; 3 | using System.Text; 4 | 5 | namespace StringReloads.StringModifier 6 | { 7 | class Escape : IStringModifier 8 | { 9 | public static Escape Default => new Escape(); 10 | 11 | public string Name => "Escape"; 12 | 13 | public bool CanRestore => true; 14 | 15 | public string Apply(string String, string Original) 16 | { 17 | StringBuilder SB = new StringBuilder(); 18 | foreach (char c in String) 19 | { 20 | if (c == '\n') 21 | SB.Append("\\n"); 22 | else if (c == '\\') 23 | SB.Append("\\\\"); 24 | else if (c == '\t') 25 | SB.Append("\\t"); 26 | else if (c == '\r') 27 | SB.Append("\\r"); 28 | else 29 | SB.Append(c); 30 | } 31 | return SB.ToString(); 32 | } 33 | 34 | public string Restore(string String) 35 | { 36 | StringBuilder SB = new StringBuilder(); 37 | bool Escape = false; 38 | foreach (char c in String) 39 | { 40 | if (c == '\\' & !Escape) 41 | { 42 | Escape = true; 43 | continue; 44 | } 45 | if (Escape) 46 | { 47 | switch (c.ToString().ToLower()[0]) 48 | { 49 | case '\\': 50 | SB.Append('\\'); 51 | break; 52 | case 'n': 53 | SB.Append('\n'); 54 | break; 55 | case 't': 56 | SB.Append('\t'); 57 | break; 58 | case '"': 59 | SB.Append('"'); 60 | break; 61 | case '\'': 62 | SB.Append('\''); 63 | break; 64 | case 'r': 65 | SB.Append('\r'); 66 | break; 67 | case 's': 68 | SB.Append(' '); 69 | break; 70 | default: 71 | throw new Exception("\\" + c + " Isn't a valid string escape."); 72 | } 73 | Escape = false; 74 | } 75 | else 76 | SB.Append(c); 77 | } 78 | 79 | return SB.ToString(); 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /StringReloads/StringModifier/Minify.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using StringReloads.Engine; 3 | using StringReloads.Engine.Interface; 4 | 5 | namespace StringReloads.StringModifier 6 | { 7 | class Minify : IStringModifier 8 | { 9 | public Minify() { 10 | Config.Default.Modifiers.TryGetValue("acceptablerangeminify", out AcceptableRange); 11 | } 12 | public static Minify Default = new Minify(); 13 | 14 | bool AcceptableRange; 15 | public string Name => "Minify"; 16 | 17 | public bool CanRestore => false; 18 | 19 | public string Apply(string String, string Original) 20 | { 21 | var Rst = string.Empty; 22 | foreach (char Char in String) { 23 | switch (Char) { 24 | case ' ': 25 | case '\n': 26 | case '\r': 27 | case '\t': 28 | break; 29 | default: 30 | if (char.IsWhiteSpace(Char)) 31 | break; 32 | 33 | if (AcceptableRange) 34 | { 35 | bool Valid = false; 36 | foreach (var Range in Config.Default.Filter.AcceptableRange) 37 | { 38 | if (Char >= Range.Begin && Char <= Range.End) 39 | { 40 | Valid = true; 41 | break; 42 | } 43 | } 44 | 45 | if (!Valid) 46 | break; 47 | } 48 | 49 | Rst += char.ToLowerInvariant(Char); 50 | break; 51 | } 52 | } 53 | return Rst.Trim().Replace(Config.Default.BreakLine.ToLowerInvariant(), ""); 54 | } 55 | 56 | public string Restore(string String) 57 | { 58 | throw new NotImplementedException(); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /StringReloads/StringModifier/Remaper.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using StringReloads.Engine.Match; 4 | 5 | namespace StringReloads.StringModifier 6 | { 7 | public class Remaper : IStringModifier 8 | { 9 | 10 | static Remaper _Default = null; 11 | public static Remaper Default = _Default ??= new Remaper(EntryPoint.SRL); 12 | SRL Engine; 13 | public Remaper(SRL Main) => Engine = Main; 14 | 15 | public string Name => "Remaper"; 16 | 17 | public bool CanRestore => true; 18 | 19 | public string Apply(string String, string Original) 20 | { 21 | string Result = string.Empty; 22 | foreach (var Char in String) 23 | { 24 | if (Engine.CharRemap.ContainsKey(Char)) 25 | Result += Engine.CharRemap[Char]; 26 | else 27 | Result += Char; 28 | } 29 | 30 | return Result; 31 | } 32 | 33 | public string Restore(string String) 34 | { 35 | string Result = string.Empty; 36 | foreach (var Char in String) 37 | { 38 | if (Engine.CharRemap.ContainsValue(Char)) 39 | Result += Engine.CharRemap.ReverseMatch(Char); 40 | else 41 | Result += Char; 42 | } 43 | 44 | return Result; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /StringReloads/StringModifier/RemaperAlt.cs: -------------------------------------------------------------------------------- 1 | using StringReloads.Engine; 2 | using StringReloads.Engine.Interface; 3 | using StringReloads.Engine.Match; 4 | 5 | namespace StringReloads.StringModifier 6 | { 7 | public class RemaperAlt : IStringModifier 8 | { 9 | 10 | static RemaperAlt _Default = null; 11 | public static RemaperAlt Default = _Default ??= new RemaperAlt(EntryPoint.SRL); 12 | SRL Engine; 13 | public RemaperAlt(SRL Main) => Engine = Main; 14 | 15 | public string Name => "RemaperAlt"; 16 | 17 | public bool CanRestore => true; 18 | 19 | public string Apply(string String, string Original) 20 | { 21 | string Result = string.Empty; 22 | foreach (var Char in String) 23 | { 24 | if (Engine.CharRemapAlt.ContainsKey(Char)) 25 | Result += Engine.CharRemapAlt[Char]; 26 | else 27 | Result += Char; 28 | } 29 | 30 | return Result; 31 | } 32 | 33 | public string Restore(string String) 34 | { 35 | string Result = string.Empty; 36 | foreach (var Char in String) 37 | { 38 | if (Engine.CharRemapAlt.ContainsValue(Char)) 39 | Result += Engine.CharRemapAlt.ReverseMatch(Char); 40 | else 41 | Result += Char; 42 | } 43 | 44 | return Result; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /StringReloads/StringReloads.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | <_LastSelectedProfileId>E:\Users\Marcus\Documents\Visual Studio 2019\Projects\StringReloads\StringReloads\Properties\PublishProfiles\FolderProfile.pubxml 5 | 6 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Our batch files requires CRLF for correct work. 3 | # https://github.com/3F/hMSBuild/issues/2 4 | 5 | *.bat text eol=crlf 6 | *.cmd text eol=crlf 7 | *.tpl text eol=crlf -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/3rd-party.txt: -------------------------------------------------------------------------------- 1 | DllExport - https://github.com/3F/DllExport 2 | - - - - - - - - - - - - - - - - - - - - - - 3 | 4 | # Third-party software components 5 | 6 | ## DllExport project includes: 7 | 8 | ### CoreCLR ILAsm & ILDasm 9 | 10 | * https://github.com/3F/coreclr 11 | 12 | ### Mono.Cecil 13 | 14 | * https://github.com/jbevain/cecil 15 | 16 | ### MvSln 17 | 18 | * https://github.com/3F/MvsSln 19 | 20 | ### Conari 21 | 22 | * https://github.com/3F/Conari 23 | 24 | ### GetNuTool + hMSBuild 25 | 26 | As the main core for new manager 27 | and helpers for modern SDK-based projects. 28 | 29 | * https://github.com/3F/GetNuTool 30 | * https://github.com/3F/hMSBuild 31 | 32 | 33 | ## Dev Dependencies includes the following tools for src: 34 | 35 | * vsSolutionBuildEvent 36 | https://github.com/3F/vsSolutionBuildEvent 37 | 38 | * MSTest Framework 39 | https://github.com/microsoft/testfx 40 | 41 | * hMSBuild 42 | https://github.com/3F/hMSBuild 43 | 44 | * GetNuTool 45 | https://github.com/3F/GetNuTool 46 | 47 | 48 | ## Graphics 49 | 50 | ### The Visual Studio image library 51 | 52 | (Visual Studio 2017; 28 November 2017) 53 | Over 1,000 images can be used to create applications that look visually consistent with Microsoft software: 54 | https://docs.microsoft.com/en-us/visualstudio/designers/the-visual-studio-image-library?view=vs-2017 55 | 56 | License Terms: 57 | 58 | * ./Resources/vsico/Visual Studio 2017 Image Library EULA.RTF 59 | https://download.microsoft.com/download/0/6/0/0607D8EA-9BB7-440B-A36A-A24EB8C9C67E/Visual%20Studio%202017%20Image%20Library%20EULA.RTF 60 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/License.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2009-2015 Robert Giesecke 4 | Copyright (c) 2016-2020 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/build_info.txt: -------------------------------------------------------------------------------- 1 | 2 | S_NUM: 1.7.0 3 | S_REV: 60761 4 | S_NUM_REV: 1.7.0.60761 5 | S_REL: 6 | bSha1: 0a002a7 7 | bName: master 8 | bRevc: 201 9 | MetaCor: netstandard1.1 10 | MetaLib: v2.0 11 | Wizard: v4.0 12 | Configuration: PublicRelease 13 | Platform: Any CPU 14 | cfgname: Release 15 | revDeltaBase: 2016/10/12 16 | revDeltaMin: 1000 17 | revDeltaMax: 65534 18 | 19 | :: generated by a vsSolutionBuildEvent v1.14.0.36854 20 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/lib/net20/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/lib/net20/_._ -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/lib/netstandard1.1/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/lib/netstandard1.1/_._ -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/Conari.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/Conari.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/Microsoft.Build.Framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/Microsoft.Build.Framework.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/Microsoft.Build.Utilities.v4.0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/Microsoft.Build.Utilities.v4.0.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/Microsoft.Build.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/Microsoft.Build.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/Mono.Cecil.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/MvsSln.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/MvsSln.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/NSBin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/NSBin.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/PeViewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/PeViewer.exe -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/RGiesecke.DllExport.MSBuild.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/RGiesecke.DllExport.MSBuild.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/RGiesecke.DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/RGiesecke.DllExport.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/.version.txt: -------------------------------------------------------------------------------- 1 | 4.700.2.0+4fde65a5695d8d4c2f73959e71fb38357ae02a28: https://github.com/3F/coreclr 2 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/LICENSE.TXT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) .NET Foundation and Contributors 4 | Copyright (c) 2016-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 5 | 6 | All rights reserved. 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all 16 | copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | SOFTWARE. 25 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/README.md: -------------------------------------------------------------------------------- 1 | .NET Core CLR (CoreCLR) 2 | =========================== 3 | 4 | Contains the complete runtime implementation for .NET Core. It includes RyuJIT, the .NET GC, native interop and many other components. 5 | 6 | **Modified** and has been prepared specialy for [https://github.com/3F/DllExport](https://github.com/3F/DllExport) by [GitHub/3F](https://github.com/3F) developer. 7 | 8 | ✓ License 9 | ------- 10 | 11 | .NET Core (including the coreclr repo) is licensed under the [MIT License (MIT)](https://github.com/3F/coreclr/blob/master/LICENSE.TXT). 12 | 13 | ``` 14 | Copyright (c) .NET Foundation and Contributors 15 | Copyright (c) 2016-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 16 | ``` 17 | 18 | ## CoreCLR IL Assembler 19 | 20 | ILAsm & ILDasm | CI 21 | --------------------| ---------------- 22 | Win.x86-x64.Release | [![Build status](https://ci.appveyor.com/api/projects/status/asb0nbj8tly2rp7p/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/coreclr-62ql7/branch/master) 23 | 24 | [![release](https://img.shields.io/github/release/3F/coreclr.svg)](https://github.com/3F/coreclr/releases/latest) 25 | [![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/coreclr/blob/master/LICENSE.TXT) 26 | [![NuGet package](https://img.shields.io/nuget/v/ILAsm.svg)](https://www.nuget.org/packages/ILAsm/) 27 | 28 | **Download:** [/releases](https://github.com/3F/coreclr/releases) [ **[latest](https://github.com/3F/coreclr/releases/latest)** ] 29 | 30 | 31 | IL Assembler (ILAsm) + IL Disassembler (ILDasm) 32 | 33 | Custom version on .NET Core CLR (CoreCLR) 3.0: https://github.com/3F/coreclr 34 | 35 | Specially for: https://github.com/3F/DllExport 36 | 37 | ! To provide compatible converter of resources to obj COFF-format when assembling with ILAsm, use /CVRES (/CVR) key. 38 | 39 | ``` 40 | ~... /CVR=cvtres.exe 41 | ``` 42 | 43 | Related issue: https://github.com/3F/coreclr/issues/2 44 | 45 | ### NuGet Packages 46 | 47 | Custom use via [GetNuTool](https://github.com/3F/GetNuTool) 48 | 49 | [`gnt`](https://3f.github.io/GetNuTool/releases/latest/gnt/)` /p:ngpackages="ILAsm"` [[?](https://github.com/3F/GetNuTool)] 50 | 51 | **PDB** files (240 MB+) are available through GitHub Releases: 52 | https://github.com/3F/coreclr/releases 53 | 54 | Additional **MSBuild Properties**: 55 | 56 | * `$(ILAsm_RootPkg)` - path to root folder of this package after install. 57 | * `$(ILAsm_PathToBin)` - path to `\bin` folder., eg.: *$(ILAsm_PathToBin)Win.x64\ilasm.exe* 58 | 59 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/clrgc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/clrgc.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/coreclr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/coreclr.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/ilasm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/ilasm.exe -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/ildasm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/ildasm.exe -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/ildasmrc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/ildasmrc.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/mscordaccore.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/mscordaccore.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/coreclr/mscordbi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/coreclr/mscordbi.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $manager = "DllExport.bat" 4 | Copy-Item "$installPath\\$manager" "$PWD" -Force 5 | 6 | $pdir = "$PWD\\packages\\DllExport." + $package.Version 7 | if(!(Test-Path -Path $pdir)) { 8 | Get-ChildItem -Path $installPath | ForEach-Object { 9 | if($_.PSIsContainer) { 10 | # without this some files in subdirs can be copied in root folder: https://github.com/3F/coreclr/blob/4fde65a5695d8d4c2f73959e71fb38357ae02a28/pack.ps1 11 | $null = New-Item -ItemType Directory -Force -Path ($pdir + '\\' + $_.Name) 12 | } 13 | Copy-Item $_.fullname $pdir -Recurse -Force 14 | } 15 | } 16 | 17 | $project.Save($project.FullPath) 18 | Start-Process -FilePath ".\\$manager" -WorkingDirectory "$PWD" -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/net.r_eg.DllExport.Wizard.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/net.r_eg.DllExport.Wizard.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/raw/lib/net20/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/raw/lib/net20/DllExport.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/raw/lib/net20/DllExport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/raw/lib/netstd/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/StringReloads/packages/DllExport.1.7.0/tools/raw/lib/netstd/DllExport.dll -------------------------------------------------------------------------------- /StringReloads/packages/DllExport.1.7.0/tools/raw/lib/netstd/DllExport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Our batch files requires CRLF for correct work. 3 | # https://github.com/3F/hMSBuild/issues/2 4 | 5 | *.bat text eol=crlf 6 | *.cmd text eol=crlf 7 | *.tpl text eol=crlf -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/3rd-party.txt: -------------------------------------------------------------------------------- 1 | DllExport - https://github.com/3F/DllExport 2 | - - - - - - - - - - - - - - - - - - - - - - 3 | 4 | # Third-party software components 5 | 6 | ## DllExport project includes: 7 | 8 | ### CoreCLR ILAsm & ILDasm 9 | 10 | * https://github.com/3F/coreclr 11 | 12 | ### Mono.Cecil 13 | 14 | * https://github.com/jbevain/cecil 15 | 16 | ### MvSln 17 | 18 | * https://github.com/3F/MvsSln 19 | 20 | ### Conari 21 | 22 | * https://github.com/3F/Conari 23 | 24 | ### GetNuTool + hMSBuild 25 | 26 | As the main core for new manager 27 | and helpers for modern SDK-based projects. 28 | 29 | * https://github.com/3F/GetNuTool 30 | * https://github.com/3F/hMSBuild 31 | 32 | 33 | ## Dev Dependencies includes the following tools for src: 34 | 35 | * vsSolutionBuildEvent 36 | https://github.com/3F/vsSolutionBuildEvent 37 | 38 | * MSTest Framework 39 | https://github.com/microsoft/testfx 40 | 41 | * hMSBuild 42 | https://github.com/3F/hMSBuild 43 | 44 | * GetNuTool 45 | https://github.com/3F/GetNuTool 46 | 47 | 48 | ## Graphics 49 | 50 | ### The Visual Studio image library 51 | 52 | (Visual Studio 2017; 28 November 2017) 53 | Over 1,000 images can be used to create applications that look visually consistent with Microsoft software: 54 | https://docs.microsoft.com/en-us/visualstudio/designers/the-visual-studio-image-library?view=vs-2017 55 | 56 | License Terms: 57 | 58 | * ./Resources/vsico/Visual Studio 2017 Image Library EULA.RTF 59 | https://download.microsoft.com/download/0/6/0/0607D8EA-9BB7-440B-A36A-A24EB8C9C67E/Visual%20Studio%202017%20Image%20Library%20EULA.RTF 60 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/License.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2009-2015 Robert Giesecke 4 | Copyright (c) 2016-2020 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/build_info.txt: -------------------------------------------------------------------------------- 1 | 2 | S_NUM: 1.7.0 3 | S_REV: 60761 4 | S_NUM_REV: 1.7.0.60761 5 | S_REL: 6 | bSha1: 0a002a7 7 | bName: master 8 | bRevc: 201 9 | MetaCor: netstandard1.1 10 | MetaLib: v2.0 11 | Wizard: v4.0 12 | Configuration: PublicRelease 13 | Platform: Any CPU 14 | cfgname: Release 15 | revDeltaBase: 2016/10/12 16 | revDeltaMin: 1000 17 | revDeltaMax: 65534 18 | 19 | :: generated by a vsSolutionBuildEvent v1.14.0.36854 20 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/DLLTest/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/DLLTest/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/DLLTest/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/DLLTest/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/DLLTest/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/SRLWrapper/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/SRLWrapper/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/SRLWrapper/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/SRLWrapper/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/SRLWrapper/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/StringReloads/DllExport.xml -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/TEST/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/TEST/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/TEST/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metacor/TEST/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metacor/TEST/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/DLLTest/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/DLLTest/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/DLLTest/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/DLLTest/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/DLLTest/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/SRLWrapper/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/SRLWrapper/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/SRLWrapper/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/SRLWrapper/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/SRLWrapper/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/StringReloads/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/TEST/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/TEST/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/TEST/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/gcache/metalib/TEST/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/gcache/metalib/TEST/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/lib/net20/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/lib/net20/_._ -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/lib/netstandard1.1/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/lib/netstandard1.1/_._ -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/Conari.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/Conari.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/Microsoft.Build.Framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/Microsoft.Build.Framework.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/Microsoft.Build.Utilities.v4.0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/Microsoft.Build.Utilities.v4.0.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/Microsoft.Build.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/Microsoft.Build.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/Mono.Cecil.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/MvsSln.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/MvsSln.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/NSBin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/NSBin.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/PeViewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/PeViewer.exe -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/RGiesecke.DllExport.MSBuild.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/RGiesecke.DllExport.MSBuild.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/RGiesecke.DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/RGiesecke.DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/.version.txt: -------------------------------------------------------------------------------- 1 | 4.700.2.0+4fde65a5695d8d4c2f73959e71fb38357ae02a28: https://github.com/3F/coreclr 2 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/LICENSE.TXT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) .NET Foundation and Contributors 4 | Copyright (c) 2016-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 5 | 6 | All rights reserved. 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all 16 | copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | SOFTWARE. 25 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/README.md: -------------------------------------------------------------------------------- 1 | .NET Core CLR (CoreCLR) 2 | =========================== 3 | 4 | Contains the complete runtime implementation for .NET Core. It includes RyuJIT, the .NET GC, native interop and many other components. 5 | 6 | **Modified** and has been prepared specialy for [https://github.com/3F/DllExport](https://github.com/3F/DllExport) by [GitHub/3F](https://github.com/3F) developer. 7 | 8 | ✓ License 9 | ------- 10 | 11 | .NET Core (including the coreclr repo) is licensed under the [MIT License (MIT)](https://github.com/3F/coreclr/blob/master/LICENSE.TXT). 12 | 13 | ``` 14 | Copyright (c) .NET Foundation and Contributors 15 | Copyright (c) 2016-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 16 | ``` 17 | 18 | ## CoreCLR IL Assembler 19 | 20 | ILAsm & ILDasm | CI 21 | --------------------| ---------------- 22 | Win.x86-x64.Release | [![Build status](https://ci.appveyor.com/api/projects/status/asb0nbj8tly2rp7p/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/coreclr-62ql7/branch/master) 23 | 24 | [![release](https://img.shields.io/github/release/3F/coreclr.svg)](https://github.com/3F/coreclr/releases/latest) 25 | [![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/coreclr/blob/master/LICENSE.TXT) 26 | [![NuGet package](https://img.shields.io/nuget/v/ILAsm.svg)](https://www.nuget.org/packages/ILAsm/) 27 | 28 | **Download:** [/releases](https://github.com/3F/coreclr/releases) [ **[latest](https://github.com/3F/coreclr/releases/latest)** ] 29 | 30 | 31 | IL Assembler (ILAsm) + IL Disassembler (ILDasm) 32 | 33 | Custom version on .NET Core CLR (CoreCLR) 3.0: https://github.com/3F/coreclr 34 | 35 | Specially for: https://github.com/3F/DllExport 36 | 37 | ! To provide compatible converter of resources to obj COFF-format when assembling with ILAsm, use /CVRES (/CVR) key. 38 | 39 | ``` 40 | ~... /CVR=cvtres.exe 41 | ``` 42 | 43 | Related issue: https://github.com/3F/coreclr/issues/2 44 | 45 | ### NuGet Packages 46 | 47 | Custom use via [GetNuTool](https://github.com/3F/GetNuTool) 48 | 49 | [`gnt`](https://3f.github.io/GetNuTool/releases/latest/gnt/)` /p:ngpackages="ILAsm"` [[?](https://github.com/3F/GetNuTool)] 50 | 51 | **PDB** files (240 MB+) are available through GitHub Releases: 52 | https://github.com/3F/coreclr/releases 53 | 54 | Additional **MSBuild Properties**: 55 | 56 | * `$(ILAsm_RootPkg)` - path to root folder of this package after install. 57 | * `$(ILAsm_PathToBin)` - path to `\bin` folder., eg.: *$(ILAsm_PathToBin)Win.x64\ilasm.exe* 58 | 59 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/clrgc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/clrgc.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/coreclr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/coreclr.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/ilasm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/ilasm.exe -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/ildasm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/ildasm.exe -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/ildasmrc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/ildasmrc.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/mscordaccore.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/mscordaccore.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/coreclr/mscordbi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/coreclr/mscordbi.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | $manager = "DllExport.bat" 4 | Copy-Item "$installPath\\$manager" "$PWD" -Force 5 | 6 | $pdir = "$PWD\\packages\\DllExport." + $package.Version 7 | if(!(Test-Path -Path $pdir)) { 8 | Get-ChildItem -Path $installPath | ForEach-Object { 9 | if($_.PSIsContainer) { 10 | # without this some files in subdirs can be copied in root folder: https://github.com/3F/coreclr/blob/4fde65a5695d8d4c2f73959e71fb38357ae02a28/pack.ps1 11 | $null = New-Item -ItemType Directory -Force -Path ($pdir + '\\' + $_.Name) 12 | } 13 | Copy-Item $_.fullname $pdir -Recurse -Force 14 | } 15 | } 16 | 17 | $project.Save($project.FullPath) 18 | Start-Process -FilePath ".\\$manager" -WorkingDirectory "$PWD" -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/net.r_eg.DllExport.Wizard.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/net.r_eg.DllExport.Wizard.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/raw/lib/net20/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/raw/lib/net20/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/raw/lib/net20/DllExport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/raw/lib/netstd/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.0/tools/raw/lib/netstd/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.0/tools/raw/lib/netstd/DllExport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/.gitattributes: -------------------------------------------------------------------------------- 1 | 2 | # Our batch files requires CRLF for correct work. 3 | # https://github.com/3F/hMSBuild/issues/2 4 | 5 | *.bat text eol=crlf 6 | *.cmd text eol=crlf 7 | *.tpl text eol=crlf -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/3rd-party.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/3rd-party.txt -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/DllExport.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 1.7.3 6 | .NET DllExport 7 | github.com/3F/DllExport 8 | License.txt 9 | reg 10 | https://aka.ms/deprecateLicenseUrl 11 | https://github.com/3F/DllExport 12 | 13 | false 14 | 15 | Open source project .NET DllExport with .NET Core support (aka 3F/DllExport) 16 | https://github.com/3F/DllExport 17 | 18 | 🚀 Quick start: https://github.com/3F/DllExport/wiki/Quick-start 19 | 🔖 Examples. Unmanaged C++ / C# / Java: https://youtu.be/QXMj9-8XJnY 20 | 🧪 Demo: https://github.com/3F/Examples/tree/master/DllExport/BasicExport 21 | 22 | ======================================= 23 | gnt /p:ngpackages="DllExport/1.7.3" 24 | ================== https://github.com/3F/GetNuTool 25 | 26 | 27 | S_NUM_REV: 1.7.3.58831 28 | S_REL: 29 | bSha1: 9a4bc51 30 | MetaCor: netstandard1.1 31 | MetaLib: v2.0 32 | Wizard: v4.0 33 | Configuration: PublicRelease 34 | :: generated by a vsSolutionBuildEvent 1.14.0.36854 35 | .NET DllExport with .NET Core support (aka 3F/DllExport) 36 | DllExport unmanaged-exports ildasm ilasm coreclr exported-functions dotnetcore Conari pinvoke net-c-func native tools dotnet-DllExport unmanaged-export hMSBuild GetNuTool MvsSln 37 | changelog: https://github.com/3F/DllExport/blob/master/changelog.txt 38 | Copyright (c) 2009-2015 Robert Giesecke / Copyright (c) 2016-2020 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 39 | 40 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/License.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2009-2015 Robert Giesecke 4 | Copyright (c) 2016-2020 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/build_info.txt: -------------------------------------------------------------------------------- 1 | 2 | S_NUM_REV: 1.7.3.58831 3 | S_REL: 4 | bSha1: 9a4bc51 5 | MetaCor: netstandard1.1 6 | MetaLib: v2.0 7 | Wizard: v4.0 8 | Configuration: PublicRelease 9 | :: generated by a vsSolutionBuildEvent 1.14.0.36854 10 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/gcache/metacor/SRLWrapper/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/gcache/metacor/SRLWrapper/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/gcache/metacor/SRLWrapper/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/gcache/metacor/SRLWrapper/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/gcache/metacor/SRLWrapper/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/gcache/metalib/SRLWrapper/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/gcache/metalib/SRLWrapper/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/gcache/metalib/SRLWrapper/DllExport.dll.ddNSi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/gcache/metalib/SRLWrapper/DllExport.dll.ddNSi -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/gcache/metalib/SRLWrapper/DllExport.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/lib/net20/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/lib/net20/_._ -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/lib/netstandard1.1/_._: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/lib/netstandard1.1/_._ -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/Conari.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/Conari.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/Microsoft.Build.Framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/Microsoft.Build.Framework.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/Microsoft.Build.Utilities.v4.0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/Microsoft.Build.Utilities.v4.0.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/Microsoft.Build.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/Microsoft.Build.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/Mono.Cecil.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/Mono.Cecil.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/MvsSln.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/MvsSln.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/NSBin.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/NSBin.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/PeViewer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/PeViewer.exe -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/RGiesecke.DllExport.MSBuild.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/RGiesecke.DllExport.MSBuild.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/RGiesecke.DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/RGiesecke.DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/.version.txt: -------------------------------------------------------------------------------- 1 | 4.700.2.0+4fde65a5695d8d4c2f73959e71fb38357ae02a28: https://github.com/3F/coreclr 2 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/LICENSE.TXT: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) .NET Foundation and Contributors 4 | Copyright (c) 2016-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 5 | 6 | All rights reserved. 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all 16 | copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | SOFTWARE. 25 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/README.md: -------------------------------------------------------------------------------- 1 | .NET Core CLR (CoreCLR) 2 | =========================== 3 | 4 | Contains the complete runtime implementation for .NET Core. It includes RyuJIT, the .NET GC, native interop and many other components. 5 | 6 | **Modified** and has been prepared specialy for [https://github.com/3F/DllExport](https://github.com/3F/DllExport) by [GitHub/3F](https://github.com/3F) developer. 7 | 8 | ✓ License 9 | ------- 10 | 11 | .NET Core (including the coreclr repo) is licensed under the [MIT License (MIT)](https://github.com/3F/coreclr/blob/master/LICENSE.TXT). 12 | 13 | ``` 14 | Copyright (c) .NET Foundation and Contributors 15 | Copyright (c) 2016-2019 Denis Kuzmin < x-3F@outlook.com > GitHub/3F 16 | ``` 17 | 18 | ## CoreCLR IL Assembler 19 | 20 | ILAsm & ILDasm | CI 21 | --------------------| ---------------- 22 | Win.x86-x64.Release | [![Build status](https://ci.appveyor.com/api/projects/status/asb0nbj8tly2rp7p/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/coreclr-62ql7/branch/master) 23 | 24 | [![release](https://img.shields.io/github/release/3F/coreclr.svg)](https://github.com/3F/coreclr/releases/latest) 25 | [![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/coreclr/blob/master/LICENSE.TXT) 26 | [![NuGet package](https://img.shields.io/nuget/v/ILAsm.svg)](https://www.nuget.org/packages/ILAsm/) 27 | 28 | **Download:** [/releases](https://github.com/3F/coreclr/releases) [ **[latest](https://github.com/3F/coreclr/releases/latest)** ] 29 | 30 | 31 | IL Assembler (ILAsm) + IL Disassembler (ILDasm) 32 | 33 | Custom version on .NET Core CLR (CoreCLR) 3.0: https://github.com/3F/coreclr 34 | 35 | Specially for: https://github.com/3F/DllExport 36 | 37 | ! To provide compatible converter of resources to obj COFF-format when assembling with ILAsm, use /CVRES (/CVR) key. 38 | 39 | ``` 40 | ~... /CVR=cvtres.exe 41 | ``` 42 | 43 | Related issue: https://github.com/3F/coreclr/issues/2 44 | 45 | ### NuGet Packages 46 | 47 | Custom use via [GetNuTool](https://github.com/3F/GetNuTool) 48 | 49 | [`gnt`](https://3f.github.io/GetNuTool/releases/latest/gnt/)` /p:ngpackages="ILAsm"` [[?](https://github.com/3F/GetNuTool)] 50 | 51 | **PDB** files (240 MB+) are available through GitHub Releases: 52 | https://github.com/3F/coreclr/releases 53 | 54 | Additional **MSBuild Properties**: 55 | 56 | * `$(ILAsm_RootPkg)` - path to root folder of this package after install. 57 | * `$(ILAsm_PathToBin)` - path to `\bin` folder., eg.: *$(ILAsm_PathToBin)Win.x64\ilasm.exe* 58 | 59 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/clrgc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/clrgc.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/coreclr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/coreclr.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/ilasm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/ilasm.exe -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/ildasm.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/ildasm.exe -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/ildasmrc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/ildasmrc.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/mscordaccore.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/mscordaccore.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/coreclr/mscordbi.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/coreclr/mscordbi.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/init.ps1: -------------------------------------------------------------------------------- 1 | param($installPath, $toolsPath, $package, $project) 2 | 3 | if(!$project) { Return; } # PM 4 | 5 | $manager = "DllExport.bat" 6 | Copy-Item "$installPath\\$manager" "$PWD" -Force 7 | 8 | $pdir = "$PWD\\packages\\DllExport." + $package.Version 9 | if(!(Test-Path -Path $pdir)) { 10 | Get-ChildItem -Path $installPath | ForEach-Object { 11 | if($_.PSIsContainer) { 12 | # without this some files in subdirs can be copied in root folder: https://github.com/3F/coreclr/blob/4fde65a5695d8d4c2f73959e71fb38357ae02a28/pack.ps1 13 | $null = New-Item -ItemType Directory -Force -Path ($pdir + '\\' + $_.Name) 14 | } 15 | Copy-Item $_.fullname $pdir -Recurse -Force 16 | } 17 | } 18 | 19 | $project.Save($project.FullPath) 20 | Start-Process -FilePath ".\\$manager" -WorkingDirectory "$PWD" -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/net.r_eg.DllExport.Wizard.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/net.r_eg.DllExport.Wizard.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/raw/lib/net20/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/raw/lib/net20/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/raw/lib/net20/DllExport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/raw/lib/netstd/DllExport.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcussacana/StringReloads/11affaa91cd9e48a879ade2c4ab7d70fc7d40da8/packages/DllExport.1.7.3/tools/raw/lib/netstd/DllExport.dll -------------------------------------------------------------------------------- /packages/DllExport.1.7.3/tools/raw/lib/netstd/DllExport.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | DllExport 5 | 6 | 7 | 8 | 9 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 10 | [.NET DllExport] 11 | 12 | About our meta-information in user-code: 13 | https://github.com/3F/DllExport/issues/16 14 | 15 | 16 | 17 | 18 | Specified calling convention. 19 | 20 | __cdecl is the default convention in .NET DllExport like for other C/C++ programs (Microsoft Specific). 21 | __stdCall mostly used with winapi. 22 | 23 | https://msdn.microsoft.com/en-us/library/zkwh89ks.aspx 24 | https://msdn.microsoft.com/en-us/library/56h2zst2.aspx 25 | https://github.com/3F/Conari also uses __cdecl by default 26 | 27 | 28 | 29 | 30 | Optional name for C-exported function. 31 | 32 | 33 | 34 | Optional name for C-exported function. 35 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 36 | 37 | 38 | Optional name for C-exported function. 39 | 40 | 41 | Specified calling convention. __cdecl is the default convention in .NET DllExport. 42 | 43 | 44 | 45 | To export this as __cdecl C-exported function. Named as current method where is used attribute. 46 | 47 | 48 | 49 | 50 | --------------------------------------------------------------------------------