diff --git a/cs2_chs/03.png b/cs2_chs/03.png
new file mode 100644
index 0000000..a695399
Binary files /dev/null and b/cs2_chs/03.png differ
diff --git a/cs2_chs/Advance.xaml b/cs2_chs/Advance.xaml
new file mode 100644
index 0000000..4ab9f58
--- /dev/null
+++ b/cs2_chs/Advance.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cs2_chs/Advance.xaml.cs b/cs2_chs/Advance.xaml.cs
new file mode 100644
index 0000000..e0579ef
--- /dev/null
+++ b/cs2_chs/Advance.xaml.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+namespace cs2_chs
+{
+ ///
+ /// Advance.xaml 的交互逻辑
+ ///
+ public partial class Advance : Window
+ {
+ public bool enChanged = false;
+ public Advance()
+ {
+ InitializeComponent();
+ this.Closing += Window_Closing;
+ }
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ {
+ e.Cancel = true;
+ this.Hide();
+ }
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ if (!enChanged)
+ return;
+ try
+ {
+ uint test = Convert.ToUInt32(AddressEdit.Text, 16);
+ MainWindow.initdata.StartUp = StartUpEdit.Text;
+ MainWindow.initdata.Addr = Convert.ToUInt32(AddressEdit.Text, 16);
+ MainWindow.initdata.Envio = EnvioMode.IsChecked == true ? true : false;
+ AddressEdit.Foreground = new SolidColorBrush(Colors.Black);
+ StartUpEdit.Foreground = new SolidColorBrush(Colors.Black);
+ EnvioMode.Foreground = new SolidColorBrush(Colors.Black);
+ }
+ catch(Exception err)
+ {
+ string msg="Error!\nPlease check if the expression that you entered is valid.\n"+ err.ToString();
+ MessageBox.Show(msg, "error", MessageBoxButton.OK, MessageBoxImage.Error);
+ return;
+ }
+ if (MainWindow.initdata.Envio)
+ {
+ OM_GPY.IsEnabled = true;
+ OM_TOT.IsEnabled = true;
+ OutPutLog.IsEnabled = true;
+ MainWindow.EndReplace();
+ }
+ else
+ {
+ OM_GPY.IsEnabled = false;
+ OM_TOT.IsEnabled = false;
+ OutPutLog.IsEnabled = false;
+ MainWindow.StartReplace();
+ }
+ MessageBox.Show("👴知道🌶!\n🍋の🐍☞已经应用🌶!\n暴力提取之外的设置将会在下次启动时按照更改后的设置工作。");
+ }
+ private void AddressEdit_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ AddressEdit.Foreground = new SolidColorBrush(Colors.Red);
+ enChanged = true;
+ }
+ private void StartUpEdit_TextChanged(object sender, TextChangedEventArgs e)
+ {
+ StartUpEdit.Foreground= new SolidColorBrush(Colors.Red);
+ enChanged = true;
+ }
+ private void EnvioMode_Click(object sender, RoutedEventArgs e)
+ {
+ EnvioMode.Foreground = new SolidColorBrush(Colors.Red);
+ enChanged = true;
+ }
+
+ private void OM_GPY_Checked(object sender, RoutedEventArgs e)
+ {
+ if (MainWindow.initdata.VioMode == 0)
+ return;
+ MainWindow.initdata.VioMode = 0;
+ unsafe
+ {
+ (*(int*)MainWindow.ppMode) = MainWindow.initdata.VioMode;
+ }
+ MainWindow.ChangeTToG();
+ }
+
+ private void OM_TOT_Checked(object sender, RoutedEventArgs e)
+ {
+ if (MainWindow.initdata.VioMode == 1)
+ return;
+ MainWindow.initdata.VioMode = 1;
+ unsafe
+ {
+ (*(int*)MainWindow.ppMode) = MainWindow.initdata.VioMode;
+ }
+
+
+ MainWindow.ChangeGToT();
+ }
+
+ private void Window_MouseMove(object sender, MouseEventArgs e)
+ {
+ unsafe
+ {
+ string loacl = new string((char*)MainWindow.ns_str);
+ OutPutLog.Text = loacl;
+ }
+ }
+ }
+}
diff --git a/cs2_chs/App.xaml.cs b/cs2_chs/App.xaml.cs
index b09f9b1..d7a452e 100644
--- a/cs2_chs/App.xaml.cs
+++ b/cs2_chs/App.xaml.cs
@@ -6,7 +6,6 @@ using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
-
namespace cs2_chs
{
///
@@ -15,28 +14,23 @@ namespace cs2_chs
public partial class App : Application
{
}
-
public class ImageButton : System.Windows.Controls.Button
{
-
///
/// 图片
///
public static readonly DependencyProperty ImageProperty = DependencyProperty.Register("Image", typeof(ImageSource), typeof(ImageButton),
new PropertyMetadata(null));
-
///
/// 图片的宽度
///
public static readonly DependencyProperty ImageWidthProperty = DependencyProperty.Register("ImageWidth", typeof(double), typeof(ImageButton),
new PropertyMetadata(double.NaN));
-
///
/// 图片的高度
///
public static readonly DependencyProperty ImageHeightProperty = DependencyProperty.Register("ImageHeight", typeof(double), typeof(ImageButton),
new PropertyMetadata(double.NaN));
-
///
/// 构造函数
///
@@ -45,7 +39,6 @@ namespace cs2_chs
DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageButton),
new System.Windows.FrameworkPropertyMetadata(typeof(ImageButton)));
}
-
///
/// 设置图片
///
@@ -60,7 +53,6 @@ namespace cs2_chs
SetValue(ImageProperty, value);
}
}
-
///
/// 图片宽度(属性)
///
@@ -75,7 +67,6 @@ namespace cs2_chs
SetValue(ImageWidthProperty, value);
}
}
-
///
/// 图片高度(属性)
///
@@ -90,6 +81,5 @@ namespace cs2_chs
SetValue(ImageHeightProperty, value);
}
}
-
}
}
diff --git a/cs2_chs/DllTools.cs b/cs2_chs/DllTools.cs
index d215a61..581336f 100644
--- a/cs2_chs/DllTools.cs
+++ b/cs2_chs/DllTools.cs
@@ -6,23 +6,18 @@ using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.IO;
using Microsoft.IdentityModel.Logging;
-
namespace cs2_chs
{
class DllTools
{
[DllImport("kernel32.dll")]
public static extern uint GetLastError();
-
[DllImport("kernel32.dll", EntryPoint = "LoadLibraryEx", SetLastError = true)]
public static extern int LoadLibraryEx(string lpFileName, IntPtr hReservedNull, LoadLibraryFlags dwFlags);
-
[DllImport("Kernel32", EntryPoint = "GetProcAddress", SetLastError = true)]
public static extern int GetProcAddress(int handle, string funcname);
-
[DllImport("Kernel32", EntryPoint = "FreeLibrary", SetLastError = true)]
private static extern int FreeLibrary(int handle);
-
[DllImport("kernel32.dll", EntryPoint = "GetModuleHandleA", SetLastError = true)]
public static extern int GetModuleHandleA(string lpFileName);
public static Delegate GetFunctionAddress(int dllModule, string functionName, Type t)
@@ -33,8 +28,6 @@ namespace cs2_chs
else
return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
}
-
-
public static Delegate GetDelegateFromIntPtr(IntPtr address, Type t)
{
if (address == IntPtr.Zero)
@@ -42,8 +35,6 @@ namespace cs2_chs
else
return Marshal.GetDelegateForFunctionPointer(address, t);
}
-
-
public static Delegate GetDelegateFromIntPtr(int address, Type t)
{
if (address == 0)
@@ -51,25 +42,19 @@ namespace cs2_chs
else
return Marshal.GetDelegateForFunctionPointer(new IntPtr(address), t);
}
-
-
public static int LoadSDK(string lpFileName)
{
if (File.Exists(lpFileName))
{
var hReservedNull = IntPtr.Zero;
var dwFlags = LoadLibraryFlags.LOAD_WITH_ALTERED_SEARCH_PATH;
-
var result = LoadLibraryEx(lpFileName, hReservedNull, dwFlags);
-
var errCode = GetLastError();
LogHelper.LogInformation($"LoadSDK Result:{result}, ErrorCode: {errCode}");
-
return result;
}
return 0;
}
-
public static int ReleaseSDK(int handle)
{
try
@@ -90,59 +75,48 @@ namespace cs2_chs
return -1;
}
}
-
public enum LoadLibraryFlags : uint
{
///
/// DONT_RESOLVE_DLL_REFERENCES
///
DONT_RESOLVE_DLL_REFERENCES = 0x00000001,
-
///
/// LOAD_IGNORE_CODE_AUTHZ_LEVEL
///
LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010,
-
///
/// LOAD_LIBRARY_AS_DATAFILE
///
LOAD_LIBRARY_AS_DATAFILE = 0x00000002,
-
///
/// LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE
///
LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE = 0x00000040,
-
///
/// LOAD_LIBRARY_AS_IMAGE_RESOURCE
///
LOAD_LIBRARY_AS_IMAGE_RESOURCE = 0x00000020,
-
///
/// LOAD_LIBRARY_SEARCH_APPLICATION_DIR
///
LOAD_LIBRARY_SEARCH_APPLICATION_DIR = 0x00000200,
-
///
/// LOAD_LIBRARY_SEARCH_DEFAULT_DIRS
///
LOAD_LIBRARY_SEARCH_DEFAULT_DIRS = 0x00001000,
-
///
/// LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR
///
LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR = 0x00000100,
-
///
/// LOAD_LIBRARY_SEARCH_SYSTEM32
///
LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800,
-
///
/// LOAD_LIBRARY_SEARCH_USER_DIRS
///
LOAD_LIBRARY_SEARCH_USER_DIRS = 0x00000400,
-
///
/// LOAD_WITH_ALTERED_SEARCH_PATH
///
@@ -155,34 +129,21 @@ namespace cs2_chs
public static extern int GetModuleHandle(string lpModuleName);
[DllImport("kernel32.dll", EntryPoint = "ReadProcessMemory")]
public static extern int _MemoryReadByteSet(int hProcess, int lpBaseAddress, byte[] lpBuffer, int nSize, int lpNumberOfBytesRead);
-
[DllImport("kernel32.dll", EntryPoint = "ReadProcessMemory")]
public static extern int _MemoryReadInt32(int hProcess, int lpBaseAddress, ref int lpBuffer, int nSize, int lpNumberOfBytesRead);
-
[DllImport("kernel32.dll", EntryPoint = "WriteProcessMemory")]
public static extern int _MemoryWriteByteSet(int hProcess, int lpBaseAddress, byte[] lpBuffer, int nSize, int lpNumberOfBytesWritten);
-
[DllImport("kernel32.dll", EntryPoint = "WriteProcessMemory")]
public static extern int _MemoryWriteInt32(int hProcess, int lpBaseAddress, ref int lpBuffer, int nSize, int lpNumberOfBytesWritten);
-
[DllImport("kernel32.dll", EntryPoint = "GetCurrentProcess")]
public static extern int GetCurrentProcess();
-
[DllImport("kernel32.dll", EntryPoint = "OpenProcess")]
public static extern int OpenProcess(int dwDesiredAccess, int bInheritHandle, int dwProcessId);
-
[DllImport("kernel32.dll", EntryPoint = "CloseHandle")]
public static extern int CloseHandle(int hObject);
-
[DllImport("kernel32.dll", EntryPoint = "RtlMoveMemory")]
public static extern int _CopyMemory_ByteSet_Float(ref float item, ref byte source, int length);
-
-
const int PROCESS_POWER_MAX = 2035711;
-
-
-
-
///
/// 读内存整数型
///
@@ -204,7 +165,6 @@ namespace cs2_chs
return num;
}
}
-
///
/// 写内存整数型
///
@@ -219,7 +179,6 @@ namespace cs2_chs
MProcess.CloseHandle(handle);
return num2 != 0;
}
-
///
/// 读内存小数型
///
@@ -241,7 +200,6 @@ namespace cs2_chs
return MProcess.GetFloatFromByteSet(array, 0);
}
}
-
///
/// 写内存小数型
///
@@ -256,7 +214,6 @@ namespace cs2_chs
//byte[] byteSet = Encoding.GetEncoding("gb2312").GetBytes(value.ToString());
return MProcess.WriteMemoryByteSet(pID, bAddress, byteSet, 0);
}
-
///
/// 写内存字节集
///
@@ -273,7 +230,6 @@ namespace cs2_chs
//MProcess.CloseHandle(pID);
return tmp != 0;
}
-
///
/// 取空白字节集
///
@@ -292,7 +248,6 @@ namespace cs2_chs
}
return Encoding.UTF8.GetBytes(text);
}
-
///
/// 取进程句柄
///
@@ -309,7 +264,6 @@ namespace cs2_chs
return MProcess.OpenProcess(PROCESS_POWER_MAX, 0, pID);
}
}
-
///
/// 字节集转小数型
///
@@ -322,7 +276,6 @@ namespace cs2_chs
MProcess._CopyMemory_ByteSet_Float(ref result, ref sourceValue[index], 4);
return result;
}
-
///
/// 获取字节集
///
diff --git a/cs2_chs/HotKeyWinApi.cs b/cs2_chs/HotKeyWinApi.cs
index 17ca51f..5ff1692 100644
--- a/cs2_chs/HotKeyWinApi.cs
+++ b/cs2_chs/HotKeyWinApi.cs
@@ -3,11 +3,9 @@ using System;
using System.Runtime.InteropServices;
using System.Windows.Input;
using System.Windows.Interop;
-
namespace cs2_chs
{
class HotKeyWinApi
{
-
}
}
diff --git a/cs2_chs/Init.xml b/cs2_chs/Init.xml
new file mode 100644
index 0000000..87766d2
--- /dev/null
+++ b/cs2_chs/Init.xml
@@ -0,0 +1,5 @@
+
+
+ cs2.exe
+ 5FC1C0
+
\ No newline at end of file
diff --git a/cs2_chs/InitData.cs b/cs2_chs/InitData.cs
new file mode 100644
index 0000000..8977450
--- /dev/null
+++ b/cs2_chs/InitData.cs
@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+namespace cs2_chs
+{
+ public class InitData
+ {
+ public XDocument doc;
+ public IEnumerable atr;
+ private uint addr;
+ private string startUp;
+ private bool enVio;
+ private int vioMode;
+
+ public bool successedLoad = false;
+ public int VioMode
+ {
+ get
+ {
+ return vioMode;
+ }
+ set
+ {
+ vioMode = value;
+ doc.Root.Element("viom").Value = Convert.ToString(value, 10);
+ doc.Save("Init.xml");
+ }
+ }
+ public bool Envio
+ {
+ get
+ {
+ return enVio;
+ }
+ set
+ {
+ enVio = value;
+ doc.Root.Element("vio").Value = value ? "true" : "false";
+ doc.Save("Init.xml");
+ }
+ }
+ public string StartUp {
+ get
+ {
+ return startUp;
+ }
+ set
+ {
+ startUp = value;
+ doc.Root.Element("StartUp").Value = value;
+ doc.Save("Init.xml");
+ }
+ }
+ public uint Addr
+ {
+ get
+ {
+ return addr;
+ }
+ set
+ {
+ addr = value;
+ doc.Root.Element("Addr").Value = Convert.ToString(value, 16);
+ doc.Save("Init.xml");
+ }
+ }
+ public InitData()
+ {
+ try
+ {
+ doc = XDocument.Load("Init.xml");
+ atr = doc.Root.Nodes();
+ startUp = doc.Root.Element("StartUp").Value;
+ addr = Convert.ToUInt32(doc.Root.Element("Addr").Value, 16);
+ enVio = (doc.Root.Element("vio").Value == "true" ? true : false);
+ vioMode = Convert.ToInt32(doc.Root.Element("viom").Value, 10);
+ }
+ catch (Exception e)
+ {
+ successedLoad = false;
+ return;
+ }
+ successedLoad = true;
+
+ }
+ ~InitData()
+ {
+
+ }
+ }
+}
diff --git a/cs2_chs/Logo.ico b/cs2_chs/Logo.ico
new file mode 100644
index 0000000..c17a808
Binary files /dev/null and b/cs2_chs/Logo.ico differ
diff --git a/cs2_chs/MainWindow.xaml b/cs2_chs/MainWindow.xaml
index 9647880..acb8f15 100644
--- a/cs2_chs/MainWindow.xaml
+++ b/cs2_chs/MainWindow.xaml
@@ -5,7 +5,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:cs2_chs"
mc:Ignorable="d"
- Title="MainWindow" Height="200" Width="600" ResizeMode="NoResize" Visibility="Visible">
+ Title="Text Controler" Height="200" Width="600" ResizeMode="NoResize" Visibility="Visible" UseLayoutRounding="False">
@@ -51,7 +51,7 @@
-
+
/// MainWindow.xaml 的交互逻辑
///
///
-
+
public static class StrMop
{
public static char CharAt(this string str, int index)
{
if (index > str.Length)
return ' ';
-
string res = str.Substring(index, 1);
return Convert.ToChar(res);
}
}
public partial class MainWindow : Window
{
+ //TestA
+ public static InitData initdata = new InitData();
+ public Advance AdvanceSetting = new Advance();//ChangeGToT
+
+ [DllImport("cs2_patch.dll", EntryPoint = "ChangeGToT")]
+ public static extern void ChangeGToT();
+ [DllImport("cs2_patch.dll", EntryPoint = "ChangeTToG")]
+ public static extern void ChangeTToG();
+
+ [DllImport("cs2_patch.dll", EntryPoint = "TestA")]
+ public static extern void TestA();
+ [DllImport("cs2_patch.dll", EntryPoint = "StartReplace")]
+ public static extern void StartReplace();
+ [DllImport("cs2_patch.dll", EntryPoint = "EndReplace")]
+ public static extern void EndReplace();
[DllImport("Kernel32.dll", EntryPoint = "WaitForSingleObject")]
public extern static int WaitForSingleObject(uint hHandle, uint dwMilliseconds);
-
[DllImport("cs2_patch.dll", EntryPoint = "InjectSelfTo")]
public static extern uint pStart(string path);
-
[DllImport("cs2_patch.dll", EntryPoint = "CreateDataExport")]
public static extern void CreateData([MarshalAs(UnmanagedType.LPWStr)] string path);
[DllImport("Kernel32.dll", EntryPoint = "TerminateProcess")]
public static extern bool TerminateProcess(uint hThread, uint dwExitCode);
[DllImport("Kernel32.dll", EntryPoint = "OpenProcess")]
public static extern uint OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId);
-
- int pSaveProcess = 0;
- uint hThread = 0;
- int ms_str = 0;
- int ptPid = 0;
-
+ [DllImport("Kernel32.dll", EntryPoint = "GetCurrentProcess")]
+ public static extern uint GetCurrentProcess();
+ public static uint pSaveProcess = 0;
+ public static uint hThread = 0;
+ public static uint ms_str = 0;
+ public static uint ns_str = 0;
+ public static uint ptPid = 0;
+ public static uint ppMode;
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if(this.Visibility != Visibility.Visible){
@@ -74,7 +86,6 @@ namespace cs2_chs
e.Cancel = false;
unsafe
{
-
TerminateProcess(OpenProcess(0x0001, false, *(uint*)ptPid), 1);
}
}
@@ -83,45 +94,94 @@ namespace cs2_chs
e.Cancel = true;
}
}
-
public MainWindow()
{
InitializeComponent();
this.Closing += Window_Closing;
}
-
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
// char[] a = { '1', '2', '3' };
- hThread = pStart("cs2.exe");
+ // MessageBox.Show("");
+ TestA();
int hMod = DllTools.GetModuleHandleA("cs2_patch.dll");
+
+ if (!initdata.successedLoad)
+ {
+ MessageBox.Show("error:failed to load Init.xml!","Error!",MessageBoxButton.OK,MessageBoxImage.Error);
+ TerminateProcess(GetCurrentProcess(), 1);
+ return;
+ }
+ uint ppAddr = (uint)DllTools.GetProcAddress(hMod, "m_Addr");//m_Addr
+ MainWindow.ppMode = (uint)DllTools.GetProcAddress(hMod, "VioMode");//m_Addr
+ unsafe
+ {
+ (*(uint*)ppAddr) = initdata.Addr;
+ (*(int*)ppMode) = initdata.VioMode;
+ }
+
+ AdvanceSetting.StartUpEdit.Text = initdata.StartUp;
+ AdvanceSetting.StartUpEdit.Foreground = new SolidColorBrush(Colors.Black);
+ AdvanceSetting.AddressEdit.Text = Convert.ToString(initdata.Addr, 16);
+ AdvanceSetting.AddressEdit.Foreground = new SolidColorBrush(Colors.Black);
+ AdvanceSetting.EnvioMode.IsChecked = initdata.Envio;
+ AdvanceSetting.EnvioMode.Foreground = new SolidColorBrush(Colors.Black);
+
+
+ // MessageBox.Show("");
+ switch (initdata.VioMode)
+ {
+ case 0:
+ AdvanceSetting.OM_GPY.IsChecked = true;
+ break;
+ case 1:
+ AdvanceSetting.OM_TOT.IsChecked = true;
+ break;
+ }
+ // MessageBox.Show("");
+ AdvanceSetting.enChanged = false;
+
+ // MessageBox.Show(initdata.StartUp);
+ hThread = pStart(initdata.StartUp);//VioMode
+ if (initdata.Envio)
+ {
+ AdvanceSetting.OM_GPY.IsEnabled = true;
+ AdvanceSetting.OM_TOT.IsEnabled = true;
+ AdvanceSetting.OutPutLog.IsEnabled = true;
+ EndReplace();
+ }
+ else
+ {
+ AdvanceSetting.OM_GPY.IsEnabled = false;
+ AdvanceSetting.OM_TOT.IsEnabled = false;
+ AdvanceSetting.OutPutLog.IsEnabled = false;
+ StartReplace();
+ }
if (hMod == 0)
MessageBox.Show("error");
- pSaveProcess = DllTools.GetProcAddress(hMod, "saveProcess");
- ms_str = DllTools.GetProcAddress(hMod, "ms_str");
- ptPid = DllTools.GetProcAddress(hMod, "tPid");
+ pSaveProcess = (uint)DllTools.GetProcAddress(hMod, "saveProcess");
+ ms_str = (uint)DllTools.GetProcAddress(hMod, "ms_str");
+ ns_str = (uint)DllTools.GetProcAddress(hMod, "ns_str");
+ ptPid = (uint)DllTools.GetProcAddress(hMod, "tPid");
+
Thread threadExit = new Thread(delegate ()
{
WaitForSingleObject(hThread, 0xFFFFFFFF);
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
{
- this.Close();
+ TerminateProcess(GetCurrentProcess(), 1);
});
});
threadExit.Start();
}
-
+
private void Grid_MouseUp(object sender, MouseButtonEventArgs e)
{
// this.Visibility = Visibility.Visible;
}
-
private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
-
}
-
-
private void Button_Click(object sender, RoutedEventArgs e)
{
Thread thread1 = new Thread(delegate ()
@@ -134,7 +194,6 @@ namespace cs2_chs
CreateData(LocalS);
});
thread1.Start();
-
Thread thread2 = new Thread(delegate ()
{
unsafe
@@ -145,7 +204,6 @@ namespace cs2_chs
apply.IsEnabled = false;
PBS.Visibility = Visibility.Visible;
});
-
while (*saveProcess != 1)
{
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
@@ -154,7 +212,6 @@ namespace cs2_chs
});
Thread.Sleep(15);
}
-
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate ()
{
apply.IsEnabled = true;
@@ -165,28 +222,24 @@ namespace cs2_chs
});
thread2.Start();
}
-
private void Button_Click_1(object sender, RoutedEventArgs e)
{
unsafe
{
char* pms_str = (char*)ms_str;
-
string MsStr = new string(pms_str);
TEXT_INPUT.Text = MsStr;
}
}
-
private void CommandBinding_ShowMainWindow_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
- e.CanExecute = false;
+ // AdvanceSetting.
+ e.CanExecute = true;
}
-
private void CommandBinding_ShowMainWindow_Executed(object sender, ExecutedRoutedEventArgs e)
{
- //this.Visibility = Visibility.Visible;
+ AdvanceSetting.Show();
}
-
private void Grid_Unloaded(object sender, RoutedEventArgs e)
{
// MessageBox.Show("");
diff --git a/cs2_chs/Properties/AssemblyInfo.cs b/cs2_chs/Properties/AssemblyInfo.cs
index 5d1e214..149a50f 100644
--- a/cs2_chs/Properties/AssemblyInfo.cs
+++ b/cs2_chs/Properties/AssemblyInfo.cs
@@ -3,7 +3,6 @@ using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
-
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
@@ -15,22 +14,17 @@ using System.Windows;
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
-
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
-
//若要开始生成可本地化的应用程序,请设置
//.csproj 文件中的 CultureYouAreCodingWith
//例如,如果您在源文件中使用的是美国英语,
//使用的是美国英语,请将 设置为 en-US。 然后取消
//对以下 NeutralResourceLanguage 特性的注释。 更新
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
-
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
-
-
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //主题特定资源词典所处位置
//(未在页面中找到资源时使用,
@@ -39,8 +33,6 @@ using System.Windows;
//(未在页面中找到资源时使用,
//、应用程序或任何主题专用资源字典中找到时使用)
)]
-
-
// 程序集的版本信息由下列四个值组成:
//
// 主版本
diff --git a/cs2_chs/Properties/Resources.Designer.cs b/cs2_chs/Properties/Resources.Designer.cs
index 47c6276..8c5dd7d 100644
--- a/cs2_chs/Properties/Resources.Designer.cs
+++ b/cs2_chs/Properties/Resources.Designer.cs
@@ -7,7 +7,6 @@
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
-
namespace cs2_chs.Properties {
using System;
diff --git a/cs2_chs/Properties/Resources.resx b/cs2_chs/Properties/Resources.resx
index af7dbeb..c7951a0 100644
--- a/cs2_chs/Properties/Resources.resx
+++ b/cs2_chs/Properties/Resources.resx
@@ -53,7 +53,6 @@
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
-
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
diff --git a/cs2_chs/Properties/Settings.Designer.cs b/cs2_chs/Properties/Settings.Designer.cs
index 7cab741..276713e 100644
--- a/cs2_chs/Properties/Settings.Designer.cs
+++ b/cs2_chs/Properties/Settings.Designer.cs
@@ -7,7 +7,6 @@
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
-
namespace cs2_chs.Properties {
diff --git a/cs2_chs/bin/x86/Debug/Microsoft.IdentityModel.Logging.dll b/cs2_chs/bin/x86/Debug/Microsoft.IdentityModel.Logging.dll
new file mode 100644
index 0000000..247b87d
Binary files /dev/null and b/cs2_chs/bin/x86/Debug/Microsoft.IdentityModel.Logging.dll differ
diff --git a/cs2_chs/bin/x86/Debug/Microsoft.IdentityModel.Logging.xml b/cs2_chs/bin/x86/Debug/Microsoft.IdentityModel.Logging.xml
new file mode 100644
index 0000000..2b45edd
--- /dev/null
+++ b/cs2_chs/bin/x86/Debug/Microsoft.IdentityModel.Logging.xml
@@ -0,0 +1,398 @@
+
+
+
+ Microsoft.IdentityModel.Logging
+
+
+
+
+ Event source based logger to log different events.
+
+
+
+
+ Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way.
+
+
+
+
+ Flag which indicates whether or not PII is shown in logs. False by default.
+
+
+
+
+ String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false.
+
+
+
+
+ Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written.
+
+
+
+
+ The log message that indicates the current library version.
+
+
+
+
+ The log message that indicates the date.
+
+
+
+
+ The log message that is shown when PII is off.
+
+
+
+
+ The log message that is shown when PII is off.
+
+
+
+
+ Writes an event log by using the provided string argument and current UTC time.
+ No level filtering is done on the event.
+
+ The log message.
+ No level filtering.
+
+
+
+ Writes an event log by using the provided string argument, current UTC time and the provided arguments list.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Writes a verbose event log by using the provided string argument and current UTC time.
+
+ The log message.
+
+
+
+ Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Writes an information event log by using the provided string argument and current UTC time.
+
+ The log message.
+
+
+
+ Writes an information event log by using the provided string argument, current UTC time and the provided arguments list.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Writes a warning event log by using the provided string argument and current UTC time.
+
+ The log message.
+
+
+
+ Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Writes an error event log by using the provided string argument and current UTC time.
+
+ The log message.
+
+
+
+ Writes an error event log by using the provided string argument, current UTC time and the provided arguments list.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Writes a critical event log by using the provided string argument and current UTC time.
+
+ The log message.
+
+
+
+ Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time.
+
+
+
+ The log message.
+
+
+
+ Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time.
+
+
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Minimum log level to log events. Default is Warning.
+
+
+
+
+ Helper class for logging.
+
+
+
+
+ Logs an exception using the event source logger and returns new exception.
+
+ argument that is null or empty.
+ EventLevel is set to Error.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ message to log.
+ EventLevel is set to Error.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the argument whose value generated the ArgumentException.
+ message to log.
+ EventLevel is set to Error.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+ EventLevel is set to Error.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the argument whose value generated the ArgumentException.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+ EventLevel is set to Error.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ the inner to be added to the outer exception.
+ message to log.
+ EventLevel is set to Error.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the argument whose value generated the ArgumentException.
+ the inner to be added to the outer exception.
+ message to log.
+ EventLevel is set to Error.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ the inner to be added to the outer exception.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+ EventLevel is set to Error.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the argument whose value generated the ArgumentException.
+ the inner to be added to the outer exception.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+ EventLevel is set to Error.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ message to log.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ Identifies the argument whose value generated the ArgumentException.
+ message to log.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ Identifies the argument whose value generated the ArgumentException.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ the inner to be added to the outer exception.
+ message to log.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ Identifies the argument whose value generated the ArgumentException.
+ the inner to be added to the outer exception.
+ message to log.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ the inner to be added to the outer exception.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs an argument exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ Identifies the argument whose value generated the ArgumentException.
+ the inner to be added to the outer exception.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs an exception using the event source logger.
+
+ The exception to log.
+
+
+
+ Logs an exception using the event source logger.
+
+ Identifies the level of an event to be logged.
+ The exception to log.
+
+
+
+ Logs an information event.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs a verbose event.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs a warning event.
+
+ The log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Logs an exception using the event source logger and returns new typed exception.
+
+ Identifies the level of an event to be logged.
+ Identifies the argument whose value generated the ArgumentException.
+ the inner to be added to the outer exception.
+ Format string of the log message.
+ An object array that contains zero or more objects to format.
+
+
+
+ Formats the string using InvariantCulture
+
+ Format string.
+ Format arguments.
+ Formatted string.
+
+
+
+ Log messages and codes for Microsoft.IdentityModel.Logging
+
+
+
+
+ Event listener that writes logs to a file or a fileStream provided by user.
+
+
+
+
+ Name of the default log file, excluding its path.
+
+
+
+
+ Initializes a new instance of that writes logs to text file.
+
+
+
+
+ Initializes a new instance of that writes logs to text file.
+
+ location of the file where log messages will be written.
+
+
+
+ Initializes a new instance of that writes logs to text file.
+
+ StreamWriter where logs will be written.
+
+
+
+ Called whenever an event has been written by an event source for which the event listener has enabled events.
+
+
+
+
+
+ Releases all resources used by the current instance of the class.
+
+
+
+
diff --git a/cs2_chs/bin/x86/Debug/WebDriver.dll b/cs2_chs/bin/x86/Debug/WebDriver.dll
new file mode 100644
index 0000000..41d471f
Binary files /dev/null and b/cs2_chs/bin/x86/Debug/WebDriver.dll differ
diff --git a/cs2_chs/bin/x86/Debug/WebDriver.xml b/cs2_chs/bin/x86/Debug/WebDriver.xml
new file mode 100644
index 0000000..64ba1a5
Binary files /dev/null and b/cs2_chs/bin/x86/Debug/WebDriver.xml differ
diff --git a/cs2_chs/bin/x86/Debug/cs2_chs.exe b/cs2_chs/bin/x86/Debug/cs2_chs.exe
new file mode 100644
index 0000000..8924f61
Binary files /dev/null and b/cs2_chs/bin/x86/Debug/cs2_chs.exe differ
diff --git a/cs2_chs/bin/x86/Debug/cs2_chs.exe.config b/cs2_chs/bin/x86/Debug/cs2_chs.exe.config
new file mode 100644
index 0000000..ecdcf8a
--- /dev/null
+++ b/cs2_chs/bin/x86/Debug/cs2_chs.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/cs2_chs/bin/x86/Debug/cs2_chs.pdb b/cs2_chs/bin/x86/Debug/cs2_chs.pdb
new file mode 100644
index 0000000..3723076
Binary files /dev/null and b/cs2_chs/bin/x86/Debug/cs2_chs.pdb differ
diff --git a/cs2_chs/cs2_chs.csproj b/cs2_chs/cs2_chs.csproj
index fb42810..94e6eb6 100644
--- a/cs2_chs/cs2_chs.csproj
+++ b/cs2_chs/cs2_chs.csproj
@@ -61,6 +61,9 @@
true
true
+
+ Logo.ico
+
..\packages\Microsoft.IdentityModel.Logging.5.6.0\lib\net461\Microsoft.IdentityModel.Logging.dll
@@ -90,16 +93,24 @@
MSBuild:Compile
Designer
+
+ Designer
+ MSBuild:Compile
+
MSBuild:Compile
Designer
+
+ Advance.xaml
+
App.xaml
Code
+
MainWindow.xaml
Code
@@ -138,5 +149,16 @@
+
+
+
+
+
+ Always
+
+
+
+
+
\ No newline at end of file
diff --git a/cs2_chs/obj/x86/Debug/Advance.baml b/cs2_chs/obj/x86/Debug/Advance.baml
new file mode 100644
index 0000000..ac69603
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/Advance.baml differ
diff --git a/cs2_chs/obj/x86/Debug/Advance.g.cs b/cs2_chs/obj/x86/Debug/Advance.g.cs
new file mode 100644
index 0000000..fba9807
--- /dev/null
+++ b/cs2_chs/obj/x86/Debug/Advance.g.cs
@@ -0,0 +1,182 @@
+#pragma checksum "..\..\..\Advance.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "27958547282BFED18838A7B0DB22FB28577463A01440ACA04CA1E2B3E8C9409E"
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using cs2_chs;
+
+
+namespace cs2_chs {
+
+
+ ///
+ /// Advance
+ ///
+ public partial class Advance : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 14 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox StartUpEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 22 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox AddressEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 23 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox EnvioMode;
+
+ #line default
+ #line hidden
+
+
+ #line 24 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_GPY;
+
+ #line default
+ #line hidden
+
+
+ #line 25 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_TOT;
+
+ #line default
+ #line hidden
+
+
+ #line 26 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox OutPutLog;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/advance.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\Advance.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+ this.StartUpEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 14 "..\..\..\Advance.xaml"
+ this.StartUpEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.StartUpEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+
+ #line 16 "..\..\..\Advance.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 3:
+ this.AddressEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 22 "..\..\..\Advance.xaml"
+ this.AddressEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.AddressEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.EnvioMode = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 23 "..\..\..\Advance.xaml"
+ this.EnvioMode.Click += new System.Windows.RoutedEventHandler(this.EnvioMode_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.OM_GPY = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 24 "..\..\..\Advance.xaml"
+ this.OM_GPY.Checked += new System.Windows.RoutedEventHandler(this.OM_GPY_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.OM_TOT = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 25 "..\..\..\Advance.xaml"
+ this.OM_TOT.Checked += new System.Windows.RoutedEventHandler(this.OM_TOT_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.OutPutLog = ((System.Windows.Controls.TextBox)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/cs2_chs/obj/x86/Debug/Advance.g.i.cs b/cs2_chs/obj/x86/Debug/Advance.g.i.cs
new file mode 100644
index 0000000..fba9807
--- /dev/null
+++ b/cs2_chs/obj/x86/Debug/Advance.g.i.cs
@@ -0,0 +1,182 @@
+#pragma checksum "..\..\..\Advance.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "27958547282BFED18838A7B0DB22FB28577463A01440ACA04CA1E2B3E8C9409E"
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using cs2_chs;
+
+
+namespace cs2_chs {
+
+
+ ///
+ /// Advance
+ ///
+ public partial class Advance : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 14 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox StartUpEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 22 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox AddressEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 23 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox EnvioMode;
+
+ #line default
+ #line hidden
+
+
+ #line 24 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_GPY;
+
+ #line default
+ #line hidden
+
+
+ #line 25 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_TOT;
+
+ #line default
+ #line hidden
+
+
+ #line 26 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox OutPutLog;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/advance.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\Advance.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+ this.StartUpEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 14 "..\..\..\Advance.xaml"
+ this.StartUpEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.StartUpEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+
+ #line 16 "..\..\..\Advance.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 3:
+ this.AddressEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 22 "..\..\..\Advance.xaml"
+ this.AddressEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.AddressEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.EnvioMode = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 23 "..\..\..\Advance.xaml"
+ this.EnvioMode.Click += new System.Windows.RoutedEventHandler(this.EnvioMode_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.OM_GPY = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 24 "..\..\..\Advance.xaml"
+ this.OM_GPY.Checked += new System.Windows.RoutedEventHandler(this.OM_GPY_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.OM_TOT = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 25 "..\..\..\Advance.xaml"
+ this.OM_TOT.Checked += new System.Windows.RoutedEventHandler(this.OM_TOT_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.OutPutLog = ((System.Windows.Controls.TextBox)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/cs2_chs/obj/x86/Debug/App.baml b/cs2_chs/obj/x86/Debug/App.baml
new file mode 100644
index 0000000..ce16f6c
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/App.baml differ
diff --git a/cs2_chs/obj/x86/Debug/App.g.cs b/cs2_chs/obj/x86/Debug/App.g.cs
new file mode 100644
index 0000000..ce01800
--- /dev/null
+++ b/cs2_chs/obj/x86/Debug/App.g.cs
@@ -0,0 +1,83 @@
+#pragma checksum "..\..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "5EE4FB2D2750083127A6673A009D2DA762ABE28530F3E6BD3C3684F089511E6B"
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using cs2_chs;
+
+
+namespace cs2_chs {
+
+
+ ///
+ /// App
+ ///
+ public partial class App : System.Windows.Application {
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+
+ #line 5 "..\..\..\App.xaml"
+ this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
+
+ #line default
+ #line hidden
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/app.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\App.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ ///
+ /// Application Entry Point.
+ ///
+ [System.STAThreadAttribute()]
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public static void Main() {
+ cs2_chs.App app = new cs2_chs.App();
+ app.InitializeComponent();
+ app.Run();
+ }
+ }
+}
+
diff --git a/cs2_chs/obj/x86/Debug/App.g.i.cs b/cs2_chs/obj/x86/Debug/App.g.i.cs
index 45d10ba..ce01800 100644
--- a/cs2_chs/obj/x86/Debug/App.g.i.cs
+++ b/cs2_chs/obj/x86/Debug/App.g.i.cs
@@ -1,4 +1,4 @@
-#pragma checksum "..\..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "47A6ABC1F984D2628127870792B9669A74CD780D5065D75E37A3BA999C302E28"
+#pragma checksum "..\..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "5EE4FB2D2750083127A6673A009D2DA762ABE28530F3E6BD3C3684F089511E6B"
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
@@ -40,16 +40,29 @@ namespace cs2_chs {
///
public partial class App : System.Windows.Application {
+ private bool _contentLoaded;
+
///
/// InitializeComponent
///
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
#line 5 "..\..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
+ #line default
+ #line hidden
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/app.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\App.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
#line default
#line hidden
}
diff --git a/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache b/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..a7bdf91
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 27cf9ae..149bc0a 100644
Binary files a/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/cs2_chs/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/cs2_chs/obj/x86/Debug/MainWindow.baml b/cs2_chs/obj/x86/Debug/MainWindow.baml
new file mode 100644
index 0000000..95c878c
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/MainWindow.baml differ
diff --git a/cs2_chs/obj/x86/Debug/MainWindow.g.cs b/cs2_chs/obj/x86/Debug/MainWindow.g.cs
new file mode 100644
index 0000000..8102799
--- /dev/null
+++ b/cs2_chs/obj/x86/Debug/MainWindow.g.cs
@@ -0,0 +1,165 @@
+#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "F004E4358EBAA317663957C95CDCBDC56C5FFAC230C7FE76F16BF31B44EE5CE4"
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using cs2_chs;
+
+
+namespace cs2_chs {
+
+
+ ///
+ /// MainWindow
+ ///
+ public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 17 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox TEXT_INPUT;
+
+ #line default
+ #line hidden
+
+
+ #line 32 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button apply;
+
+ #line default
+ #line hidden
+
+
+ #line 40 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ProgressBar PBS;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/mainwindow.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\MainWindow.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Grid_Loaded);
+
+ #line default
+ #line hidden
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.Grid_MouseUp);
+
+ #line default
+ #line hidden
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.Grid_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).Unloaded += new System.Windows.RoutedEventHandler(this.Grid_Unloaded);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.TEXT_INPUT = ((System.Windows.Controls.TextBox)(target));
+ return;
+ case 3:
+ this.apply = ((System.Windows.Controls.Button)(target));
+
+ #line 32 "..\..\..\MainWindow.xaml"
+ this.apply.Click += new System.Windows.RoutedEventHandler(this.Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.PBS = ((System.Windows.Controls.ProgressBar)(target));
+ return;
+ case 5:
+
+ #line 41 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_1);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+
+ #line 58 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.CommandBinding_ShowMainWindow_CanExecute);
+
+ #line default
+ #line hidden
+
+ #line 59 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.CommandBinding_ShowMainWindow_Executed);
+
+ #line default
+ #line hidden
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/cs2_chs/obj/x86/Debug/MainWindow.g.i.cs b/cs2_chs/obj/x86/Debug/MainWindow.g.i.cs
index cd0b137..8102799 100644
--- a/cs2_chs/obj/x86/Debug/MainWindow.g.i.cs
+++ b/cs2_chs/obj/x86/Debug/MainWindow.g.i.cs
@@ -1,4 +1,4 @@
-#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "F057702BFD72AA7AA90C434C7677C42026F3D87C5998DD20BC1D7D0294BF503E"
+#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "F004E4358EBAA317663957C95CDCBDC56C5FFAC230C7FE76F16BF31B44EE5CE4"
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
@@ -40,6 +40,30 @@ namespace cs2_chs {
///
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+ #line 17 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox TEXT_INPUT;
+
+ #line default
+ #line hidden
+
+
+ #line 32 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.Button apply;
+
+ #line default
+ #line hidden
+
+
+ #line 40 "..\..\..\MainWindow.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.ProgressBar PBS;
+
+ #line default
+ #line hidden
+
private bool _contentLoaded;
///
@@ -75,6 +99,61 @@ namespace cs2_chs {
#line 9 "..\..\..\MainWindow.xaml"
((System.Windows.Controls.Grid)(target)).Loaded += new System.Windows.RoutedEventHandler(this.Grid_Loaded);
+ #line default
+ #line hidden
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).MouseUp += new System.Windows.Input.MouseButtonEventHandler(this.Grid_MouseUp);
+
+ #line default
+ #line hidden
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.Grid_MouseDown);
+
+ #line default
+ #line hidden
+
+ #line 9 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Grid)(target)).Unloaded += new System.Windows.RoutedEventHandler(this.Grid_Unloaded);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.TEXT_INPUT = ((System.Windows.Controls.TextBox)(target));
+ return;
+ case 3:
+ this.apply = ((System.Windows.Controls.Button)(target));
+
+ #line 32 "..\..\..\MainWindow.xaml"
+ this.apply.Click += new System.Windows.RoutedEventHandler(this.Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.PBS = ((System.Windows.Controls.ProgressBar)(target));
+ return;
+ case 5:
+
+ #line 41 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_1);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+
+ #line 58 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.CommandBinding_ShowMainWindow_CanExecute);
+
+ #line default
+ #line hidden
+
+ #line 59 "..\..\..\MainWindow.xaml"
+ ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.CommandBinding_ShowMainWindow_Executed);
+
#line default
#line hidden
return;
diff --git a/cs2_chs/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll b/cs2_chs/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll
index c9cb8e0..6df0d68 100644
Binary files a/cs2_chs/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll and b/cs2_chs/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.Properties.Resources.resources b/cs2_chs/obj/x86/Debug/cs2_chs.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/cs2_chs.Properties.Resources.resources differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.csproj.CopyComplete b/cs2_chs/obj/x86/Debug/cs2_chs.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.csproj.FileListAbsolute.txt b/cs2_chs/obj/x86/Debug/cs2_chs.csproj.FileListAbsolute.txt
index e69de29..7b236cf 100644
--- a/cs2_chs/obj/x86/Debug/cs2_chs.csproj.FileListAbsolute.txt
+++ b/cs2_chs/obj/x86/Debug/cs2_chs.csproj.FileListAbsolute.txt
@@ -0,0 +1,22 @@
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\cs2_chs.exe.config
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\cs2_chs.exe
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\cs2_chs.pdb
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\Microsoft.IdentityModel.Logging.dll
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\WebDriver.dll
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\Microsoft.IdentityModel.Logging.xml
+D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Debug\WebDriver.xml
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\Advance.g.cs
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\MainWindow.g.cs
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\App.g.cs
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs_MarkupCompile.cache
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs_MarkupCompile.lref
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\App.baml
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\Advance.baml
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\MainWindow.baml
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.g.resources
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.Properties.Resources.resources
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.csproj.GenerateResource.cache
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.csproj.CopyComplete
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.exe
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.pdb
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\cs2_chs.csprojAssemblyReference.cache
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.csproj.GenerateResource.cache b/cs2_chs/obj/x86/Debug/cs2_chs.csproj.GenerateResource.cache
new file mode 100644
index 0000000..c15e928
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/cs2_chs.csproj.GenerateResource.cache differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.csprojAssemblyReference.cache b/cs2_chs/obj/x86/Debug/cs2_chs.csprojAssemblyReference.cache
new file mode 100644
index 0000000..9df95b7
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/cs2_chs.csprojAssemblyReference.cache differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.exe b/cs2_chs/obj/x86/Debug/cs2_chs.exe
new file mode 100644
index 0000000..8924f61
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/cs2_chs.exe differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.g.resources b/cs2_chs/obj/x86/Debug/cs2_chs.g.resources
new file mode 100644
index 0000000..eba39ea
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/cs2_chs.g.resources differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs.pdb b/cs2_chs/obj/x86/Debug/cs2_chs.pdb
new file mode 100644
index 0000000..3723076
Binary files /dev/null and b/cs2_chs/obj/x86/Debug/cs2_chs.pdb differ
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.cache b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.cache
new file mode 100644
index 0000000..1f6b954
--- /dev/null
+++ b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.cache
@@ -0,0 +1,20 @@
+cs2_chs
+
+
+winexe
+C#
+.cs
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Debug\
+cs2_chs
+none
+false
+DEBUG;TRACE
+D:\VSProject\cs2\cs2_united\cs2_chs\App.xaml
+2-1834107634
+
+9-330204798
+171117567902
+Advance.xaml;MainWindow.xaml;
+
+False
+
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.cache b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.cache
index ce19c0f..cade4d5 100644
--- a/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.cache
+++ b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.cache
@@ -10,11 +10,11 @@ none
false
DEBUG;TRACE
D:\VSProject\cs2\cs2_united\cs2_chs\App.xaml
-11151548125
+2-1834107634
-6-1262306213
-13152784993
-MainWindow.xaml;
+10-1440126486
+171117567902
+Advance.xaml;MainWindow.xaml;
True
diff --git a/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.lref b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.lref
index 63882a1..2bf2071 100644
--- a/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.lref
+++ b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.i.lref
@@ -1,4 +1,4 @@
-FD:\VSProject\cs2\cs2_united\cs2_chs\MainWindow.xaml;;
+FD:\VSProject\cs2\cs2_united\cs2_chs\Advance.xaml;;
diff --git a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.lref b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.lref
similarity index 67%
rename from cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.lref
rename to cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.lref
index 2af1230..16bb52a 100644
--- a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.lref
+++ b/cs2_chs/obj/x86/Debug/cs2_chs_MarkupCompile.lref
@@ -1,4 +1,5 @@
FD:\VSProject\cs2\cs2_united\cs2_chs\App.xaml;;
+FD:\VSProject\cs2\cs2_united\cs2_chs\Advance.xaml;;
FD:\VSProject\cs2\cs2_united\cs2_chs\MainWindow.xaml;;
diff --git a/cs2_chs/obj/x86/Release/Advance.baml b/cs2_chs/obj/x86/Release/Advance.baml
new file mode 100644
index 0000000..d54d7dd
Binary files /dev/null and b/cs2_chs/obj/x86/Release/Advance.baml differ
diff --git a/cs2_chs/obj/x86/Release/Advance.g.cs b/cs2_chs/obj/x86/Release/Advance.g.cs
new file mode 100644
index 0000000..9a5dd9c
--- /dev/null
+++ b/cs2_chs/obj/x86/Release/Advance.g.cs
@@ -0,0 +1,190 @@
+#pragma checksum "..\..\..\Advance.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "7023714179C69488DCE97B057C3E8A24BD5443F9A245B9FFE55E6AE4581D23C4"
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using cs2_chs;
+
+
+namespace cs2_chs {
+
+
+ ///
+ /// Advance
+ ///
+ public partial class Advance : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 14 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox StartUpEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 22 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox AddressEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 23 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox EnvioMode;
+
+ #line default
+ #line hidden
+
+
+ #line 24 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_GPY;
+
+ #line default
+ #line hidden
+
+
+ #line 25 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_TOT;
+
+ #line default
+ #line hidden
+
+
+ #line 26 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox OutPutLog;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/advance.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\Advance.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 8 "..\..\..\Advance.xaml"
+ ((cs2_chs.Advance)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Window_MouseMove);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.StartUpEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 14 "..\..\..\Advance.xaml"
+ this.StartUpEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.StartUpEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 3:
+
+ #line 16 "..\..\..\Advance.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.AddressEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 22 "..\..\..\Advance.xaml"
+ this.AddressEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.AddressEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.EnvioMode = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 23 "..\..\..\Advance.xaml"
+ this.EnvioMode.Click += new System.Windows.RoutedEventHandler(this.EnvioMode_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.OM_GPY = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 24 "..\..\..\Advance.xaml"
+ this.OM_GPY.Checked += new System.Windows.RoutedEventHandler(this.OM_GPY_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.OM_TOT = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 25 "..\..\..\Advance.xaml"
+ this.OM_TOT.Checked += new System.Windows.RoutedEventHandler(this.OM_TOT_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 8:
+ this.OutPutLog = ((System.Windows.Controls.TextBox)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/cs2_chs/obj/x86/Release/Advance.g.i.cs b/cs2_chs/obj/x86/Release/Advance.g.i.cs
new file mode 100644
index 0000000..9a5dd9c
--- /dev/null
+++ b/cs2_chs/obj/x86/Release/Advance.g.i.cs
@@ -0,0 +1,190 @@
+#pragma checksum "..\..\..\Advance.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "7023714179C69488DCE97B057C3E8A24BD5443F9A245B9FFE55E6AE4581D23C4"
+//------------------------------------------------------------------------------
+//
+// 此代码由工具生成。
+// 运行时版本:4.0.30319.42000
+//
+// 对此文件的更改可能会导致不正确的行为,并且如果
+// 重新生成代码,这些更改将会丢失。
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Automation;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Media.Effects;
+using System.Windows.Media.Imaging;
+using System.Windows.Media.Media3D;
+using System.Windows.Media.TextFormatting;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using System.Windows.Shell;
+using cs2_chs;
+
+
+namespace cs2_chs {
+
+
+ ///
+ /// Advance
+ ///
+ public partial class Advance : System.Windows.Window, System.Windows.Markup.IComponentConnector {
+
+
+ #line 14 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox StartUpEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 22 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox AddressEdit;
+
+ #line default
+ #line hidden
+
+
+ #line 23 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.CheckBox EnvioMode;
+
+ #line default
+ #line hidden
+
+
+ #line 24 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_GPY;
+
+ #line default
+ #line hidden
+
+
+ #line 25 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.RadioButton OM_TOT;
+
+ #line default
+ #line hidden
+
+
+ #line 26 "..\..\..\Advance.xaml"
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
+ internal System.Windows.Controls.TextBox OutPutLog;
+
+ #line default
+ #line hidden
+
+ private bool _contentLoaded;
+
+ ///
+ /// InitializeComponent
+ ///
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent() {
+ if (_contentLoaded) {
+ return;
+ }
+ _contentLoaded = true;
+ System.Uri resourceLocater = new System.Uri("/cs2_chs;component/advance.xaml", System.UriKind.Relative);
+
+ #line 1 "..\..\..\Advance.xaml"
+ System.Windows.Application.LoadComponent(this, resourceLocater);
+
+ #line default
+ #line hidden
+ }
+
+ [System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
+ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
+ switch (connectionId)
+ {
+ case 1:
+
+ #line 8 "..\..\..\Advance.xaml"
+ ((cs2_chs.Advance)(target)).MouseMove += new System.Windows.Input.MouseEventHandler(this.Window_MouseMove);
+
+ #line default
+ #line hidden
+ return;
+ case 2:
+ this.StartUpEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 14 "..\..\..\Advance.xaml"
+ this.StartUpEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.StartUpEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 3:
+
+ #line 16 "..\..\..\Advance.xaml"
+ ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 4:
+ this.AddressEdit = ((System.Windows.Controls.TextBox)(target));
+
+ #line 22 "..\..\..\Advance.xaml"
+ this.AddressEdit.TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.AddressEdit_TextChanged);
+
+ #line default
+ #line hidden
+ return;
+ case 5:
+ this.EnvioMode = ((System.Windows.Controls.CheckBox)(target));
+
+ #line 23 "..\..\..\Advance.xaml"
+ this.EnvioMode.Click += new System.Windows.RoutedEventHandler(this.EnvioMode_Click);
+
+ #line default
+ #line hidden
+ return;
+ case 6:
+ this.OM_GPY = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 24 "..\..\..\Advance.xaml"
+ this.OM_GPY.Checked += new System.Windows.RoutedEventHandler(this.OM_GPY_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 7:
+ this.OM_TOT = ((System.Windows.Controls.RadioButton)(target));
+
+ #line 25 "..\..\..\Advance.xaml"
+ this.OM_TOT.Checked += new System.Windows.RoutedEventHandler(this.OM_TOT_Checked);
+
+ #line default
+ #line hidden
+ return;
+ case 8:
+ this.OutPutLog = ((System.Windows.Controls.TextBox)(target));
+ return;
+ }
+ this._contentLoaded = true;
+ }
+ }
+}
+
diff --git a/cs2_chs/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache b/cs2_chs/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache
index fde7a65..6a36b0b 100644
Binary files a/cs2_chs/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache and b/cs2_chs/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/cs2_chs/obj/x86/Release/MainWindow.baml b/cs2_chs/obj/x86/Release/MainWindow.baml
index 49ef80f..9d0ba4e 100644
Binary files a/cs2_chs/obj/x86/Release/MainWindow.baml and b/cs2_chs/obj/x86/Release/MainWindow.baml differ
diff --git a/cs2_chs/obj/x86/Release/MainWindow.g.cs b/cs2_chs/obj/x86/Release/MainWindow.g.cs
index fd676d0..8102799 100644
--- a/cs2_chs/obj/x86/Release/MainWindow.g.cs
+++ b/cs2_chs/obj/x86/Release/MainWindow.g.cs
@@ -1,4 +1,4 @@
-#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "E3D04CBB8BE3DB8E4A418B3C7A26D391DBAAA15D174ECA9E0843C2E91A401268"
+#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "F004E4358EBAA317663957C95CDCBDC56C5FFAC230C7FE76F16BF31B44EE5CE4"
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
diff --git a/cs2_chs/obj/x86/Release/MainWindow.g.i.cs b/cs2_chs/obj/x86/Release/MainWindow.g.i.cs
index fd676d0..8102799 100644
--- a/cs2_chs/obj/x86/Release/MainWindow.g.i.cs
+++ b/cs2_chs/obj/x86/Release/MainWindow.g.i.cs
@@ -1,4 +1,4 @@
-#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "E3D04CBB8BE3DB8E4A418B3C7A26D391DBAAA15D174ECA9E0843C2E91A401268"
+#pragma checksum "..\..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "F004E4358EBAA317663957C95CDCBDC56C5FFAC230C7FE76F16BF31B44EE5CE4"
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
diff --git a/cs2_chs/obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll b/cs2_chs/obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll
index 5a23b1a..eebafeb 100644
Binary files a/cs2_chs/obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll and b/cs2_chs/obj/x86/Release/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/cs2_chs/obj/x86/Release/cs2_chs.csproj.FileListAbsolute.txt b/cs2_chs/obj/x86/Release/cs2_chs.csproj.FileListAbsolute.txt
index 406fc87..c1cba3c 100644
--- a/cs2_chs/obj/x86/Release/cs2_chs.csproj.FileListAbsolute.txt
+++ b/cs2_chs/obj/x86/Release/cs2_chs.csproj.FileListAbsolute.txt
@@ -1,19 +1,24 @@
D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Release\cs2_chs.exe.config
D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Release\cs2_chs.exe
D:\VSProject\cs2\cs2_united\cs2_chs\bin\x86\Release\cs2_chs.pdb
+D:\VSProject\cs2\cs2_united\Release\cs2_chs.exe.config
+D:\VSProject\cs2\cs2_united\Release\cs2_chs.exe
+D:\VSProject\cs2\cs2_united\Release\cs2_chs.pdb
+D:\VSProject\cs2\cs2_united\Debug\cs2_chs.exe.config
+D:\VSProject\cs2\cs2_united\Debug\cs2_chs.exe
+D:\VSProject\cs2\cs2_united\Debug\cs2_chs.pdb
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\Advance.g.cs
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\MainWindow.g.cs
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\App.g.cs
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs_MarkupCompile.cache
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs_MarkupCompile.lref
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\App.baml
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\Advance.baml
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\MainWindow.baml
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.g.resources
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.Properties.Resources.resources
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.csproj.GenerateResource.cache
+D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.csproj.CopyComplete
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.exe
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.pdb
-D:\VSProject\cs2\cs2_united\Release\cs2_chs.exe.config
-D:\VSProject\cs2\cs2_united\Release\cs2_chs.exe
-D:\VSProject\cs2\cs2_united\Release\cs2_chs.pdb
D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.csprojAssemblyReference.cache
-D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\cs2_chs.csproj.CopyComplete
-D:\VSProject\cs2\cs2_united\cs2_chs\obj\x86\Release\App.baml
diff --git a/cs2_chs/obj/x86/Release/cs2_chs.csproj.GenerateResource.cache b/cs2_chs/obj/x86/Release/cs2_chs.csproj.GenerateResource.cache
index f94fe4c..c15e928 100644
Binary files a/cs2_chs/obj/x86/Release/cs2_chs.csproj.GenerateResource.cache and b/cs2_chs/obj/x86/Release/cs2_chs.csproj.GenerateResource.cache differ
diff --git a/cs2_chs/obj/x86/Release/cs2_chs.csprojAssemblyReference.cache b/cs2_chs/obj/x86/Release/cs2_chs.csprojAssemblyReference.cache
index ff692cf..2dfd684 100644
Binary files a/cs2_chs/obj/x86/Release/cs2_chs.csprojAssemblyReference.cache and b/cs2_chs/obj/x86/Release/cs2_chs.csprojAssemblyReference.cache differ
diff --git a/cs2_chs/obj/x86/Release/cs2_chs.exe b/cs2_chs/obj/x86/Release/cs2_chs.exe
index 83f88f4..28fabe2 100644
Binary files a/cs2_chs/obj/x86/Release/cs2_chs.exe and b/cs2_chs/obj/x86/Release/cs2_chs.exe differ
diff --git a/cs2_chs/obj/x86/Release/cs2_chs.g.resources b/cs2_chs/obj/x86/Release/cs2_chs.g.resources
index 309679d..d349643 100644
Binary files a/cs2_chs/obj/x86/Release/cs2_chs.g.resources and b/cs2_chs/obj/x86/Release/cs2_chs.g.resources differ
diff --git a/cs2_chs/obj/x86/Release/cs2_chs.pdb b/cs2_chs/obj/x86/Release/cs2_chs.pdb
index bded446..38cb733 100644
Binary files a/cs2_chs/obj/x86/Release/cs2_chs.pdb and b/cs2_chs/obj/x86/Release/cs2_chs.pdb differ
diff --git a/cs2_chs/obj/x86/Release/cs2_chs_Content.g.i.cs b/cs2_chs/obj/x86/Release/cs2_chs_Content.g.i.cs
index 8e64b29..5e3f815 100644
--- a/cs2_chs/obj/x86/Release/cs2_chs_Content.g.i.cs
+++ b/cs2_chs/obj/x86/Release/cs2_chs_Content.g.i.cs
@@ -8,6 +8,6 @@
//
//------------------------------------------------------------------------------
-[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("02.png")]
+[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("03.png")]
diff --git a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.cache b/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.cache
index eb64a81..c301fe4 100644
--- a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.cache
+++ b/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.cache
@@ -10,11 +10,11 @@ none
false
TRACE
D:\VSProject\cs2\cs2_united\cs2_chs\App.xaml
-11151548125
+2-1834107634
-7-1981105727
+9-330204798
171117567902
-MainWindow.xaml;
+Advance.xaml;MainWindow.xaml;
False
diff --git a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.cache b/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.cache
index 007a65a..7274c9e 100644
--- a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.cache
+++ b/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.i.cache
@@ -10,11 +10,11 @@ none
false
TRACE
D:\VSProject\cs2\cs2_united\cs2_chs\App.xaml
-11151548125
+2-1834107634
-81203939881
+10-1440126486
171117567902
-MainWindow.xaml;
+Advance.xaml;MainWindow.xaml;
-True
+False
diff --git a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.lref b/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.lref
index 2af1230..16bb52a 100644
--- a/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.lref
+++ b/cs2_chs/obj/x86/Release/cs2_chs_MarkupCompile.lref
@@ -1,4 +1,5 @@
FD:\VSProject\cs2\cs2_united\cs2_chs\App.xaml;;
+FD:\VSProject\cs2\cs2_united\cs2_chs\Advance.xaml;;
FD:\VSProject\cs2\cs2_united\cs2_chs\MainWindow.xaml;;
diff --git a/cs2_patch/BuildIn.cpp b/cs2_patch/BuildIn.cpp
index f261110..499a055 100644
--- a/cs2_patch/BuildIn.cpp
+++ b/cs2_patch/BuildIn.cpp
@@ -2,28 +2,90 @@
#include "BuildIn.h"
#include "Data.h"
+extern "C" extern DLLAPI wchar_t ns_str[6192];
extern HMODULE hMod;
extern "C" extern DLLAPI wchar_t ms_str[3096];
extern "C" extern DLLAPI int nID;
-
extern "C" extern DLLAPI DWORD tPid;
-
extern MicroData* Index;
extern MicroBinary* Data;
+extern "C" extern DLLAPI DWORD m_Addr;
+extern "C" extern DLLAPI DWORD VioMode;
-signed int (*sub_5FC1C0)() = (signed int(*)(void))0x5FC1C0;//real function point
+signed int (*Sur_Sub)() = (signed int(*)(void))m_Addr;//real function point
HMODULE SelfHandle = NULL;
-bool start_falg = false;
+bool start_falg = false;
+bool start_g_flag = false;
+bool start_t_flag = false;
+
+PVOID GetProcAddressEx(HANDLE hProc, HMODULE hModule, LPCSTR lpProcName)
+{
+ PVOID pAddress = NULL;
+ SIZE_T OptSize;
+ IMAGE_DOS_HEADER DosHeader;
+ SIZE_T ProcNameLength = lstrlenA(lpProcName) + sizeof(CHAR);//'\0'
+ //读DOS头
+ if (ReadProcessMemory(hProc, hModule, &DosHeader, sizeof(DosHeader), &OptSize))
+ {
+ IMAGE_NT_HEADERS NtHeader;
+ //读NT头
+ if (ReadProcessMemory(hProc, (PVOID)((SIZE_T)hModule + DosHeader.e_lfanew), &NtHeader, sizeof(NtHeader), &OptSize))
+ {
+ IMAGE_EXPORT_DIRECTORY ExpDir;
+ SIZE_T ExportVirtualAddress = NtHeader.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress;
+ //读输出表
+ if (ExportVirtualAddress && ReadProcessMemory(hProc, (PVOID)((SIZE_T)hModule + ExportVirtualAddress), &ExpDir, sizeof(ExpDir), &OptSize))
+ {
+ if (ExpDir.NumberOfFunctions)
+ {
+ //x64待定:地址数组存放RVA的数据类型是4字节还是8字节???
+ SIZE_T* pProcAddressTable = (SIZE_T*)GlobalAlloc(GPTR, ExpDir.NumberOfFunctions * sizeof(SIZE_T));
+ //读函数地址表
+ if (ReadProcessMemory(hProc, (PVOID)((SIZE_T)hModule + ExpDir.AddressOfFunctions), pProcAddressTable, ExpDir.NumberOfFunctions * sizeof(PVOID), &OptSize))
+ {
+ //x64待定:名称数组存放RVA的数据类型是4字节还是8字节???
+ SIZE_T* pProcNamesTable = (SIZE_T*)GlobalAlloc(GPTR, ExpDir.NumberOfNames * sizeof(SIZE_T));
+ //读函数名称表
+ if (ReadProcessMemory(hProc, (PVOID)((SIZE_T)hModule + ExpDir.AddressOfNames), pProcNamesTable, ExpDir.NumberOfNames * sizeof(PVOID), &OptSize))
+ {
+ CHAR* pProcName = (CHAR*)GlobalAlloc(GPTR, ProcNameLength);
+ //遍历函数名称
+ for (DWORD i = 0; i < ExpDir.NumberOfNames; i++)
+ {
+ if (ReadProcessMemory(hProc, (PVOID)((SIZE_T)hModule + pProcNamesTable[i]), pProcName, ProcNameLength, &OptSize))
+ {
+ if (RtlEqualMemory(lpProcName, pProcName, ProcNameLength))
+ {
+ //x64待定:函数在地址数组索引的数据类型是2字节还是???
+ WORD NameOrdinal;
+ //获取函数在地址表的索引
+ if (ReadProcessMemory(hProc, (PVOID)((SIZE_T)hModule + ExpDir.AddressOfNameOrdinals + sizeof(NameOrdinal) * i), &NameOrdinal, sizeof(NameOrdinal), &OptSize))
+ {
+ pAddress = (PVOID)((SIZE_T)hModule + pProcAddressTable[NameOrdinal]);
+ }
+ break;//for
+ }
+ }
+ }
+ GlobalFree(pProcName);
+ }
+ GlobalFree(pProcNamesTable);
+ }
+ GlobalFree(pProcAddressTable);
+ }
+ }
+ }
+ }
+ return pAddress;
+}
BOOL InjectDLL(HANDLE hProcess, LPCWSTR dllFilePathName)
{
if (!hProcess)
return FALSE;
int cch = 1 + lstrlenW(dllFilePathName);
int cb = cch * sizeof(wchar_t);
-
LPWSTR PszLibFileRemote = (LPWSTR)VirtualAllocEx(hProcess, NULL, cb, MEM_COMMIT, PAGE_READWRITE);
-
if (!PszLibFileRemote)
return FALSE;
if (!WriteProcessMemory(hProcess, PszLibFileRemote, (LPVOID)dllFilePathName, cb, NULL))
@@ -32,16 +94,27 @@ BOOL InjectDLL(HANDLE hProcess, LPCWSTR dllFilePathName)
LoadLibraryW, PszLibFileRemote, 0, NULL);
if (!hThread) return FALSE;
WaitForSingleObject(hThread, INFINITE);
-
return TRUE;
}
+extern char IpfData[16];
+#define PutInt(a) _itoa_s(a,IpfData,10);MessageBoxA(0,IpfData,"num",0);
+
+DWORD(WINAPI* pGetGlyphOutlineW)(
+ _In_ HDC hdc,
+ _In_ UINT uChar,
+ _In_ UINT fuFormat,
+ _Out_ LPGLYPHMETRICS lpgm,
+ _In_ DWORD cjBuffer,
+ _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
+ _In_ CONST MAT2* lpmat2
+ ) = GetGlyphOutlineW;
+BOOL(WINAPI* pTextOutW)(_In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCWSTR lpString, _In_ int c) = TextOutW;
+
HANDLE InjectSelfTo(LPCSTR inptr)
{
// MessageBoxA(0, inptr,"",0);
-
HANDLE currentThread = NULL;
-
LPPROCESS_INFORMATION info = new PROCESS_INFORMATION;
STARTUPINFOA si = { sizeof(si) };
do {
@@ -55,9 +128,6 @@ HANDLE InjectSelfTo(LPCSTR inptr)
// MessageBox(0, L"1", L"", 0);
wchar_t m_Path[MAX_PATH];
GetModuleFileName(hMod, m_Path, MAX_PATH);
-
-
-
if (!InjectDLL(info->hProcess, m_Path)) {
MessageBoxA(0, "", "", 0);
return 0;
@@ -65,25 +135,22 @@ HANDLE InjectSelfTo(LPCSTR inptr)
currentThread = info->hThread;
tPid = info->dwProcessId;
} while (0);
-
HANDLE hHookStart = CreateRemoteThread(info->hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)
- ::GetProcAddress(hMod, "start"), 0, 0, NULL);
-
+ ::GetProcAddressEx(info->hProcess, hMod, "LoadExerte"), 0, 0, NULL);
if (!hHookStart)
{
- MessageBox(0, L"Failed to create remote thread", L"error", MB_ICONERROR);
- return 0;
+ PutInt(GetLastError());
+ MessageBox(0, L"Failed to create remote thread(LoadExerte)", L"error", MB_ICONERROR);
+ return 0;
}
- WaitForSingleObject(hHookStart, 0);
+ WaitForSingleObject(hHookStart, 0xFFFFFFFF);
ResumeThread(info->hThread);
delete info;
-
lstrcpyW(ms_str, L" ");
-
+ ns_str[0] = L'\0';
return currentThread;
}
-
-signed int Fakesub_5FC1C0()
+signed int Fake_Sub()
{
DWORD leax, lebx, lecx, ledx, lesi, ledi;
__asm {
@@ -105,8 +172,7 @@ signed int Fakesub_5FC1C0()
mov esi, dword ptr[lesi]
mov edi, dword ptr[ledi]
}
-
- return sub_5FC1C0();
+ return Sur_Sub();
}
DWORD WINAPI Th(LPVOID lp) {
char a[16];
@@ -117,29 +183,218 @@ DWORD WINAPI Th(LPVOID lp) {
}
return 0;
}
+DWORD WINAPI fGetGlyphOutlineW(
+ _In_ HDC hdc,
+ _In_ UINT uChar,
+ _In_ UINT fuFormat,
+ _Out_ LPGLYPHMETRICS lpgm,
+ _In_ DWORD cjBuffer,
+ _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
+ _In_ CONST MAT2* lpmat2
+)
+{
+ wstring loca = L"";
+ loca += (WCHAR)uChar;
+ if(lstrlenW(ns_str)>=5999)
+ ns_str[0] = L'\0';
+ lstrcatW(ns_str, loca.c_str());
+ return pGetGlyphOutlineW(hdc, L'A', fuFormat, lpgm, cjBuffer, pvBuffer, lpmat2);
+}
+BOOL WINAPI fTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCWSTR lpString, _In_ int c)
+{
+ return pTextOutW(hdc, x, y, L"A", c);
+}
void start()
{
-
+ // MessageBoxA(0,"b","",0);
+ if (start_falg)
+ return;
DetourRestoreAfterWith();
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
- DetourAttach(&(PVOID&)sub_5FC1C0, Fakesub_5FC1C0);
+ DetourAttach(&(PVOID&)Sur_Sub, Fake_Sub);
DetourTransactionCommit();
-
- Index = new MicroData(L"Index.ax", sizeof(IndexData));
- Data = new MicroBinary(L"Data.ax");
-
- Index->Load();
- Data->Load();
+
start_falg = TRUE;
-
// CreateThread(0,0,Th,0,0,0);
}
-
void end()
{
+ // MessageBoxA(0,"a","",0);
+ if (!start_falg)
+ return;
+ start_falg = FALSE;
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
- DetourDetach(&(PVOID&)sub_5FC1C0, Fakesub_5FC1C0);
+ DetourDetach(&(PVOID&)Sur_Sub, Fake_Sub);
+ DetourTransactionCommit();
+
+}
+ void start_g()
+{
+ if (start_g_flag)
+ return;
+ start_g_flag = TRUE;
+ DetourRestoreAfterWith();
+ DetourTransactionBegin();
+ DetourUpdateThread(GetCurrentThread());
+ DetourAttach(&(PVOID&)pGetGlyphOutlineW, fGetGlyphOutlineW);
DetourTransactionCommit();
}
+ void end_g()
+{
+ if (!start_g_flag)
+ return;
+ start_g_flag = FALSE;
+ DetourTransactionBegin();
+ DetourUpdateThread(GetCurrentThread());
+ DetourDetach(&(PVOID&)pGetGlyphOutlineW, fGetGlyphOutlineW);
+ DetourTransactionCommit();
+}
+
+ void start_t()
+ {
+ if (start_t_flag)
+ return;
+ start_t_flag = TRUE;
+ DetourRestoreAfterWith();
+ DetourTransactionBegin();
+ DetourUpdateThread(GetCurrentThread());
+ DetourAttach(&(PVOID&)pTextOutW, fTextOutW);
+ DetourTransactionCommit();
+ }
+ void end_t()
+ {
+ if (!start_t_flag)
+ return;
+ start_t_flag = FALSE;
+ DetourTransactionBegin();
+ DetourUpdateThread(GetCurrentThread());
+ DetourDetach(&(PVOID&)pTextOutW, fTextOutW);
+ DetourTransactionCommit();
+ }
+
+
+void StartReplace()
+{
+ HANDLE terp = OpenProcess(PROCESS_ALL_ACCESS, FALSE, tPid);
+ HANDLE hHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp,hMod, "start"), 0, 0, NULL);
+ if (!hHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hHookStart, 0xFFFFFFFF);
+ if (VioMode == 0) {
+
+ HANDLE hgHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "end_g"), 0, 0, NULL);
+ if (!hgHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hgHookStart, 0xFFFFFFFF);
+ }
+ if (VioMode == 1) {
+
+ HANDLE hgHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "end_t"), 0, 0, NULL);
+ if (!hgHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hgHookStart, 0xFFFFFFFF);
+ }
+ CloseHandle(terp);
+
+}
+ void EndReplace()
+ {
+ HANDLE terp = OpenProcess(PROCESS_ALL_ACCESS, FALSE, tPid);
+ HANDLE hHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "end"), 0, 0, NULL);
+ if (!hHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(EndReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hHookStart, 0xFFFFFFFF);
+
+ if (VioMode == 0) {
+ HANDLE hgHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "start_g"), 0, 0, NULL);
+ if (!hgHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(EndReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hgHookStart, 0xFFFFFFFF);
+
+ }
+ if (VioMode == 1) {
+
+ HANDLE hgHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "start_t"), 0, 0, NULL);
+ if (!hgHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hgHookStart, 0xFFFFFFFF);
+ }
+ CloseHandle(terp);
+ }
+ void ChangeGToT()
+ {
+ HANDLE terp = OpenProcess(PROCESS_ALL_ACCESS, FALSE, tPid);
+ HANDLE hgHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "end_g"), 0, 0, NULL);
+ if (!hgHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hgHookStart, 0xFFFFFFFF);
+
+ HANDLE htHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "start_t"), 0, 0, NULL);
+ if (!htHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(htHookStart, 0xFFFFFFFF);
+ CloseHandle(terp);
+ }
+ void ChangeTToG()
+ {
+ HANDLE terp = OpenProcess(PROCESS_ALL_ACCESS, FALSE, tPid);
+ HANDLE hgHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "end_t"), 0, 0, NULL);
+ if (!hgHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(hgHookStart, 0xFFFFFFFF);
+
+ HANDLE htHookStart = CreateRemoteThread(terp, NULL, 0, (LPTHREAD_START_ROUTINE)
+ ::GetProcAddressEx(terp, hMod, "start_g"), 0, 0, NULL);
+ if (!htHookStart)
+ {
+ MessageBox(0, L"Failed to create remote thread(StartReplace)", L"error", MB_ICONERROR);
+ return;
+ }
+ WaitForSingleObject(htHookStart, 0xFFFFFFFF);
+ CloseHandle(terp);
+ }
+ void LoadExerte()
+{
+ Index = new MicroData(L"Index.ax", sizeof(IndexData));
+ Data = new MicroBinary(L"Data.ax");
+ Index->Load();
+ Data->Load();
+}
diff --git a/cs2_patch/BuildIn.h b/cs2_patch/BuildIn.h
index 990620a..0879e0f 100644
--- a/cs2_patch/BuildIn.h
+++ b/cs2_patch/BuildIn.h
@@ -1,13 +1,38 @@
#pragma once
#include
#define DLLAPI __declspec(dllexport)
-
-
BOOL InjectDLL(HANDLE hProcess, LPCWSTR dllFilePathName);//Inject dll to the signal process
extern "C" DLLAPI HANDLE InjectSelfTo(LPCSTR inptr);//Inject self
+signed int Fake_Sub();//hooked function point
-signed int Fakesub_5FC1C0();//hooked function point
+DWORD WINAPI fGetGlyphOutlineW(
+ _In_ HDC hdc,
+ _In_ UINT uChar,
+ _In_ UINT fuFormat,
+ _Out_ LPGLYPHMETRICS lpgm,
+ _In_ DWORD cjBuffer,
+ _Out_writes_bytes_opt_(cjBuffer) LPVOID pvBuffer,
+ _In_ CONST MAT2* lpmat2
+);
+BOOL WINAPI fTextOutW(_In_ HDC hdc, _In_ int x, _In_ int y, _In_reads_(c) LPCWSTR lpString, _In_ int c);
+
extern "C" DLLAPI void start();//start hook
-void end();//end hook
\ No newline at end of file
+extern "C" DLLAPI void end();//end hook
+
+extern "C" DLLAPI void start_g();//start hook
+extern "C" DLLAPI void end_g();//end hook
+
+extern "C" DLLAPI void start_t();//start hook
+extern "C" DLLAPI void end_t();//end hook
+
+extern "C" DLLAPI void StartReplace();
+extern "C" DLLAPI void EndReplace();
+
+extern "C" DLLAPI void ChangeGToT();
+extern "C" DLLAPI void ChangeTToG();
+
+extern "C" DLLAPI void LoadExerte();
+
+PVOID GetProcAddressEx(HANDLE hProc, HMODULE hModule, LPCSTR lpProcName);
\ No newline at end of file
diff --git a/cs2_patch/Data.cpp b/cs2_patch/Data.cpp
index a99c622..28d9825 100644
--- a/cs2_patch/Data.cpp
+++ b/cs2_patch/Data.cpp
@@ -1,31 +1,29 @@
#include "pch.h"
#include "Data.h"
-
-
extern MicroData* Index;
extern MicroBinary* Data;
-
extern "C" extern DLLAPI double saveProcess;
extern HMODULE hMod;
extern "C" extern DLLAPI wchar_t ms_str[3096];
extern "C" extern DLLAPI int nID;
extern "C" extern DLLAPI DWORD tPid;
-
-
DWORD CreateDataExportEx(LPCWSTR data)
{
// MessageBoxW(0, data,L"",0);
WCHAR sjp[3096];
WCHAR scn[3096];
-
int lasger = GEtLargestID();
-
+ if (nID == 0) {
+ MessageBox(0, L"the ID value seems not available,therefore this action has been refused", L"error", MB_ICONERROR);
+ saveProcess = 1.0;
+ return 1;
+ }
if (nID - lasger > 2) {
MessageBox(0, L"the ID value seems not available,therefore this action has been refused", L"error", MB_ICONERROR);
+ saveProcess = 1.0;
return 1;
}
if (!GetDataByID(nID - 1, sjp, scn)) {
-
CreateDataByID(nID - 1, ms_str, 2 * (lstrlenW(ms_str) + 1), data, 2 * (lstrlenW(data) + 1));
WCHAR abv[16];
_itow_s(nID - 1, abv, 10);
@@ -37,6 +35,7 @@ DWORD CreateDataExportEx(LPCWSTR data)
str += L"->";
str += data;
MessageBoxW(NULL, str.c_str(), L"successed to add rule", MB_ICONINFORMATION);
+ saveProcess = 1.0;
return 1;
}
else {
@@ -53,8 +52,6 @@ DWORD CreateDataExportEx(LPCWSTR data)
saveProcess = 1.0;
return 1;
}
-
-
int p = 0;
MicroData *_Index=new MicroData(L"~Index.ax", sizeof(IndexData));
MicroBinary* _Data = new MicroBinary(L"~Data.ax");
@@ -64,12 +61,10 @@ DWORD CreateDataExportEx(LPCWSTR data)
createData.Id = p;
createData.JpLength = 2 * (lstrlenW(sjp) + 1);
createData.CnLength = 2 * (lstrlenW(data) + 1);
-
createData.JpBass = _Data->Size();
_Data->Push(sjp, 2 * (lstrlenW(sjp) + 1));
createData.CnBass = _Data->Size();
_Data->Push(data, 2 * (lstrlenW(data) + 1));
-
_Index->Push(&createData);
_Index->Save();
_Data->Save();
@@ -79,12 +74,10 @@ DWORD CreateDataExportEx(LPCWSTR data)
createData.Id = p;
createData.JpLength = 2 * (lstrlenW(sjp) + 1);
createData.CnLength = 2 * (lstrlenW(scn) + 1);
-
createData.JpBass = _Data->Size();
_Data->Push(sjp, 2 * (lstrlenW(sjp) + 1));
createData.CnBass = _Data->Size();
_Data->Push(scn, 2 * (lstrlenW(scn) + 1));
-
_Index->Push(&createData);
_Index->Save();
_Data->Save();
@@ -93,7 +86,6 @@ DWORD CreateDataExportEx(LPCWSTR data)
p++;
}
-
delete _Index;
delete _Data;
delete Index;
@@ -102,19 +94,15 @@ DWORD CreateDataExportEx(LPCWSTR data)
saveProcess = 1;
DeleteFile(L"Data.ax");
DeleteFile(L"Index.ax");
-
rename("~Data.ax", "Data.ax");
rename("~Index.ax", "Index.ax");
-
Index = new MicroData(L"Index.ax", sizeof(IndexData));
Data = new MicroBinary(L"Data.ax");
-
Index->Load();
Data->Load();
return 1;
}
}
-
void CreateDataExport(WCHAR data[])
{
DWORD dwOld;
@@ -125,48 +113,39 @@ void CreateDataExport(WCHAR data[])
if (!PszLibFileRemote)
MessageBoxA(0, "", "", 0);
WriteProcessMemory(hTr, PszLibFileRemote, data, 2 * (lstrlenW(data) + 1), &dwOld);
-
HANDLE hHookStart = CreateRemoteThread(hTr, NULL, 0, (LPTHREAD_START_ROUTINE)
::GetProcAddress(hMod, "CreateDataExportEx"), PszLibFileRemote, 0, NULL);
if (!hHookStart)
MessageBoxA(0, "", "", 0);
WaitForSingleObject(hHookStart, INFINITE);
}
-
-
BOOL CreateDataByID(int ID, LPCWSTR jpBuff, int ljp, LPCWSTR cnBuffer, int lcn)
{
IndexData createData;
createData.Id = ID;
createData.JpLength = ljp;
createData.CnLength = lcn;
-
createData.JpBass = Data->Size();
Data->Push(jpBuff, ljp);
createData.CnBass = Data->Size();
Data->Push(cnBuffer, lcn);
-
Index->Push(&createData);
Index->Save();
Data->Save();
return 0;
}
-
BOOL GetDataByJP(int* ID, LPCWSTR jpBuff, LPWSTR cnBuffer)
{
IndexData index;
-
WCHAR njp[3096];
WCHAR ncn[3096];
(*Index) = 0;
do {
Index->Get(&index);
-
( *Data) = index.JpBass;
Data->Sub(njp, index.JpLength);
(* Data) = index.CnBass;
Data->Sub(ncn, index.CnLength);
-
if (lstrcmpW(jpBuff, njp) == 0) {
*ID = index.Id;
lstrcpyW(cnBuffer, ncn);
@@ -174,7 +153,6 @@ BOOL GetDataByJP(int* ID, LPCWSTR jpBuff, LPWSTR cnBuffer)
(*Data) = 0;
return 1;
}
-
if ((*Index)++)
continue;
else {
@@ -184,16 +162,13 @@ BOOL GetDataByJP(int* ID, LPCWSTR jpBuff, LPWSTR cnBuffer)
}
} while (1);
}
-
BOOL GetDataByID(int ID, LPWSTR jpBuff, LPWSTR cnBuffer)
{
//
if (ID < 0)return 0;
-
IndexData index;
(*Index) = ID;
Index->Get(&index);
-
if (index.Id != ID)
{
(*Index) = 0;
@@ -209,18 +184,14 @@ BOOL GetDataByID(int ID, LPWSTR jpBuff, LPWSTR cnBuffer)
}
} while (1);
}
-
(*Data) = index.JpBass;
Data->Sub(jpBuff, index.JpLength);
-
(*Data) = index.CnBass;
Data->Sub(cnBuffer, index.CnLength);
-
(*Data) = 0;
(*Index) = 0;
return 1;
}
-
int GEtLargestID()
{
IndexData index;
@@ -230,7 +201,6 @@ int GEtLargestID()
if (index.Id > result)
result = index.Id;
} while ((*Index)++);
-
(*Index) = 0;
return result;
}
diff --git a/cs2_patch/Data.h b/cs2_patch/Data.h
index f374f76..1dd3a53 100644
--- a/cs2_patch/Data.h
+++ b/cs2_patch/Data.h
@@ -1,13 +1,9 @@
#pragma once
#include
#define DLLAPI __declspec(dllexport)
-
-
-
extern "C" DLLAPI void CreateDataExport(WCHAR data[]);
BOOL CreateDataByID(int ID, LPCWSTR jpBuff, int ljp, LPCWSTR cnBuffer, int lcn);
BOOL GetDataByJP(int* ID, LPCWSTR jpBuff, LPWSTR cnBuffer);
BOOL GetDataByID(int ID, LPWSTR jpBuff, LPWSTR cnBuffer);
int GEtLargestID();
-
extern "C" DLLAPI DWORD CreateDataExportEx(LPCWSTR path);
\ No newline at end of file
diff --git a/cs2_patch/Debug/BuildIn.obj b/cs2_patch/Debug/BuildIn.obj
new file mode 100644
index 0000000..540bda9
Binary files /dev/null and b/cs2_patch/Debug/BuildIn.obj differ
diff --git a/cs2_patch/Debug/Data.obj b/cs2_patch/Debug/Data.obj
new file mode 100644
index 0000000..5ae4c3e
Binary files /dev/null and b/cs2_patch/Debug/Data.obj differ
diff --git a/cs2_patch/Debug/Replace.obj b/cs2_patch/Debug/Replace.obj
new file mode 100644
index 0000000..61b8c72
Binary files /dev/null and b/cs2_patch/Debug/Replace.obj differ
diff --git a/cs2_patch/Debug/cs2_patch.log b/cs2_patch/Debug/cs2_patch.log
index 5f28270..3df60fc 100644
--- a/cs2_patch/Debug/cs2_patch.log
+++ b/cs2_patch/Debug/cs2_patch.log
@@ -1 +1,9 @@
-
\ No newline at end of file
+ pch.cpp
+ BuildIn.cpp
+ Data.cpp
+ dllmain.cpp
+ Replace.cpp
+D:\VSProject\cs2\cs2_united\cs2_patch\Replace.cpp(56,23): warning C4018: “<”: 有符号/无符号不匹配
+ 正在生成代码...
+ 正在创建库 D:\VSProject\cs2\cs2_united\Debug\cs2_patch.lib 和对象 D:\VSProject\cs2\cs2_united\Debug\cs2_patch.exp
+ cs2_patch.vcxproj -> D:\VSProject\cs2\cs2_united\Debug\cs2_patch.dll
diff --git a/cs2_patch/Debug/cs2_patch.pch b/cs2_patch/Debug/cs2_patch.pch
new file mode 100644
index 0000000..d957dfd
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.pch differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/CL.command.1.tlog b/cs2_patch/Debug/cs2_patch.tlog/CL.command.1.tlog
new file mode 100644
index 0000000..0d46f1b
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/CL.command.1.tlog differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/CL.read.1.tlog b/cs2_patch/Debug/cs2_patch.tlog/CL.read.1.tlog
new file mode 100644
index 0000000..e5e3b73
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/CL.read.1.tlog differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/CL.write.1.tlog b/cs2_patch/Debug/cs2_patch.tlog/CL.write.1.tlog
new file mode 100644
index 0000000..05df7d5
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/CL.write.1.tlog differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/cs2_patch.lastbuildstate b/cs2_patch/Debug/cs2_patch.tlog/cs2_patch.lastbuildstate
new file mode 100644
index 0000000..1d6b564
--- /dev/null
+++ b/cs2_patch/Debug/cs2_patch.tlog/cs2_patch.lastbuildstate
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.0:PlatformToolSet=v142:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0
+Debug|Win32|D:\VSProject\cs2\cs2_united\|
diff --git a/cs2_patch/Debug/cs2_patch.tlog/cs2_patch.write.1u.tlog b/cs2_patch/Debug/cs2_patch.tlog/cs2_patch.write.1u.tlog
new file mode 100644
index 0000000..2e89fbc
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/cs2_patch.write.1u.tlog differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/link.command.1.tlog b/cs2_patch/Debug/cs2_patch.tlog/link.command.1.tlog
new file mode 100644
index 0000000..ac1fe94
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/link.command.1.tlog differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/link.read.1.tlog b/cs2_patch/Debug/cs2_patch.tlog/link.read.1.tlog
new file mode 100644
index 0000000..ca22114
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/link.read.1.tlog differ
diff --git a/cs2_patch/Debug/cs2_patch.tlog/link.write.1.tlog b/cs2_patch/Debug/cs2_patch.tlog/link.write.1.tlog
new file mode 100644
index 0000000..7b13bfa
Binary files /dev/null and b/cs2_patch/Debug/cs2_patch.tlog/link.write.1.tlog differ
diff --git a/cs2_patch/Debug/dllmain.obj b/cs2_patch/Debug/dllmain.obj
new file mode 100644
index 0000000..85b2995
Binary files /dev/null and b/cs2_patch/Debug/dllmain.obj differ
diff --git a/cs2_patch/Debug/pch.obj b/cs2_patch/Debug/pch.obj
new file mode 100644
index 0000000..14ad4d1
Binary files /dev/null and b/cs2_patch/Debug/pch.obj differ
diff --git a/cs2_patch/Debug/vc142.idb b/cs2_patch/Debug/vc142.idb
new file mode 100644
index 0000000..2b7509b
Binary files /dev/null and b/cs2_patch/Debug/vc142.idb differ
diff --git a/cs2_patch/Debug/vc142.pdb b/cs2_patch/Debug/vc142.pdb
new file mode 100644
index 0000000..914d3c9
Binary files /dev/null and b/cs2_patch/Debug/vc142.pdb differ
diff --git a/cs2_patch/Release/BuildIn.obj b/cs2_patch/Release/BuildIn.obj
index af88050..1f8f20c 100644
Binary files a/cs2_patch/Release/BuildIn.obj and b/cs2_patch/Release/BuildIn.obj differ
diff --git a/cs2_patch/Release/Data.obj b/cs2_patch/Release/Data.obj
index 3387493..0f388c6 100644
Binary files a/cs2_patch/Release/Data.obj and b/cs2_patch/Release/Data.obj differ
diff --git a/cs2_patch/Release/Replace.obj b/cs2_patch/Release/Replace.obj
index c7b407c..d5035e6 100644
Binary files a/cs2_patch/Release/Replace.obj and b/cs2_patch/Release/Replace.obj differ
diff --git a/cs2_patch/Release/cs2_patch.Build.CppClean.log b/cs2_patch/Release/cs2_patch.Build.CppClean.log
index a0d2abf..6a99e20 100644
--- a/cs2_patch/Release/cs2_patch.Build.CppClean.log
+++ b/cs2_patch/Release/cs2_patch.Build.CppClean.log
@@ -1,14 +1,15 @@
d:\vsproject\cs2\cs2_united\cs2_patch\release\cs2_patch.pch
d:\vsproject\cs2\cs2_united\cs2_patch\release\vc142.pdb
d:\vsproject\cs2\cs2_united\cs2_patch\release\pch.obj
-d:\vsproject\cs2\cs2_united\cs2_patch\release\dllmain.obj
d:\vsproject\cs2\cs2_united\cs2_patch\release\replace.obj
-d:\vsproject\cs2\cs2_united\cs2_patch\release\buildin.obj
+d:\vsproject\cs2\cs2_united\cs2_patch\release\dllmain.obj
d:\vsproject\cs2\cs2_united\cs2_patch\release\data.obj
+d:\vsproject\cs2\cs2_united\cs2_patch\release\buildin.obj
d:\vsproject\cs2\cs2_united\release\cs2_patch.lib
d:\vsproject\cs2\cs2_united\release\cs2_patch.exp
d:\vsproject\cs2\cs2_united\release\cs2_patch.ipdb
d:\vsproject\cs2\cs2_united\release\cs2_patch.iobj
+d:\vsproject\cs2\cs2_united\release\cs2_patch.dll
d:\vsproject\cs2\cs2_united\release\cs2_patch.pdb
d:\vsproject\cs2\cs2_united\cs2_patch\release\cs2_patch.tlog\cl.command.1.tlog
d:\vsproject\cs2\cs2_united\cs2_patch\release\cs2_patch.tlog\cl.read.1.tlog
diff --git a/cs2_patch/Release/cs2_patch.log b/cs2_patch/Release/cs2_patch.log
index ac86286..91fae4f 100644
--- a/cs2_patch/Release/cs2_patch.log
+++ b/cs2_patch/Release/cs2_patch.log
@@ -1,8 +1,9 @@
- dllmain.cpp
+ BuildIn.cpp
+ dllmain.cpp
正在创建库 D:\VSProject\cs2\cs2_united\Release\cs2_patch.lib 和对象 D:\VSProject\cs2\cs2_united\Release\cs2_patch.exp
正在生成代码
- 0 of 112 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
+ 79 of 129 functions (61.2%) were compiled, the rest were copied from previous compilation.
0 functions were new in current compilation
- 0 functions had inline decision re-evaluated but remain unchanged
+ 6 functions had inline decision re-evaluated but remain unchanged
已完成代码的生成
cs2_patch.vcxproj -> D:\VSProject\cs2\cs2_united\Release\cs2_patch.dll
diff --git a/cs2_patch/Release/cs2_patch.pch b/cs2_patch/Release/cs2_patch.pch
index 0d05f8b..1f12bf4 100644
Binary files a/cs2_patch/Release/cs2_patch.pch and b/cs2_patch/Release/cs2_patch.pch differ
diff --git a/cs2_patch/Release/cs2_patch.tlog/CL.command.1.tlog b/cs2_patch/Release/cs2_patch.tlog/CL.command.1.tlog
index b3475f2..f082450 100644
Binary files a/cs2_patch/Release/cs2_patch.tlog/CL.command.1.tlog and b/cs2_patch/Release/cs2_patch.tlog/CL.command.1.tlog differ
diff --git a/cs2_patch/Release/cs2_patch.tlog/CL.read.1.tlog b/cs2_patch/Release/cs2_patch.tlog/CL.read.1.tlog
index 6a76af6..6619fa0 100644
Binary files a/cs2_patch/Release/cs2_patch.tlog/CL.read.1.tlog and b/cs2_patch/Release/cs2_patch.tlog/CL.read.1.tlog differ
diff --git a/cs2_patch/Release/cs2_patch.tlog/CL.write.1.tlog b/cs2_patch/Release/cs2_patch.tlog/CL.write.1.tlog
index dbc0ca9..c3bad9f 100644
Binary files a/cs2_patch/Release/cs2_patch.tlog/CL.write.1.tlog and b/cs2_patch/Release/cs2_patch.tlog/CL.write.1.tlog differ
diff --git a/cs2_patch/Release/cs2_patch.tlog/cs2_patch.write.1u.tlog b/cs2_patch/Release/cs2_patch.tlog/cs2_patch.write.1u.tlog
index 8c11501..ac43161 100644
Binary files a/cs2_patch/Release/cs2_patch.tlog/cs2_patch.write.1u.tlog and b/cs2_patch/Release/cs2_patch.tlog/cs2_patch.write.1u.tlog differ
diff --git a/cs2_patch/Release/cs2_patch.tlog/link.delete.1.tlog b/cs2_patch/Release/cs2_patch.tlog/link.delete.1.tlog
index 1220c4c..2e8c7ca 100644
Binary files a/cs2_patch/Release/cs2_patch.tlog/link.delete.1.tlog and b/cs2_patch/Release/cs2_patch.tlog/link.delete.1.tlog differ
diff --git a/cs2_patch/Release/cs2_patch.tlog/link.read.1.tlog b/cs2_patch/Release/cs2_patch.tlog/link.read.1.tlog
index b5b3f83..1daaef6 100644
Binary files a/cs2_patch/Release/cs2_patch.tlog/link.read.1.tlog and b/cs2_patch/Release/cs2_patch.tlog/link.read.1.tlog differ
diff --git a/cs2_patch/Release/dllmain.obj b/cs2_patch/Release/dllmain.obj
index 8caf33d..cebb4a1 100644
Binary files a/cs2_patch/Release/dllmain.obj and b/cs2_patch/Release/dllmain.obj differ
diff --git a/cs2_patch/Release/pch.obj b/cs2_patch/Release/pch.obj
index 0c24d7d..391e433 100644
Binary files a/cs2_patch/Release/pch.obj and b/cs2_patch/Release/pch.obj differ
diff --git a/cs2_patch/Release/vc142.pdb b/cs2_patch/Release/vc142.pdb
index 1a6456f..5e448ee 100644
Binary files a/cs2_patch/Release/vc142.pdb and b/cs2_patch/Release/vc142.pdb differ
diff --git a/cs2_patch/Replace.cpp b/cs2_patch/Replace.cpp
index e0c0bd8..2eecf82 100644
--- a/cs2_patch/Replace.cpp
+++ b/cs2_patch/Replace.cpp
@@ -1,11 +1,9 @@
#include "pch.h"
#include "Replace.h"
-
int npID = 0;
extern HMODULE hModL;
extern "C" extern DLLAPI wchar_t ms_str[3096];
extern "C" extern DLLAPI int nID;
-
void BuildCV(TESTDATA* pcv, TESTDATA flt, DWORD posinCross, DWORD posInLine, DWORD m_count, WCHAR nchar)
{
pcv->ForCast = flt.ForCast;
@@ -23,23 +21,17 @@ void BuildCV(TESTDATA* pcv, TESTDATA flt, DWORD posinCross, DWORD posInLine, DWO
pcv->Flag7 = posInLine;
pcv->Flag8 = flt.Flag8;
pcv->Flagn8 = flt.Flagn8;
-
pcv->FlagnW = flt.FlagnW;
pcv->FlagnQ = flt.FlagnQ;
pcv->nWQ = flt.nWQ;
pcv->ntime = flt.ntime;
pcv->ntime2 = flt.ntime2;
-
pcv->Over1 = flt.Over1;
pcv->Over2 = flt.Over2;
-
return;
}
-
void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id)
{
-
-
wstring localString = ws;
if (!pDf)return;
if (!ws)return;
@@ -51,7 +43,6 @@ void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id)
TESTDATA loadFirst = *nCView;//�����һ������
int posInLine = 0;//�����
int posinCross = 0xD;//�����
-
// SetWindowTextW(m_hWnd, L"����ѭ��");
for (int i = 0; i < localString.length(); i++)
{
@@ -73,10 +64,8 @@ void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id)
}
// SetWindowTextW(m_hWnd, L"����ѭ��");
*(DWORD*)(pDf + 4) = (DWORD)nCView;
-
VirtualProtect(nCView, 10 + (localString.length() * 2), pOld, NULL);
}
-
int TranSplete(DWORD lp)
{
// MessageBox(0,L"Transplete start",L"",0);
@@ -89,18 +78,13 @@ void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id)
if (!Df)return -1;
DWORD pEnd = *(DWORD*)(pDf + 4);
if (!pEnd)return -1;
-
WCHAR sjp[1024];
WCHAR scn[1024];
-
DWORD Num = (pEnd - Df) / 96;
-
wstring nStr;
TESTDATA* nCView = (TESTDATA*)Df;
-
for (DWORD i = 0; i < Num; i++) {
if (nCView->nChar == 0xFFFF) {
-
}
else if (nCView->nChar == 0) {
nStr += L'\n';
@@ -108,7 +92,6 @@ void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id)
else {
nStr += nCView->nChar;
}
-
nCView++;
}
npID++;
@@ -123,23 +106,17 @@ void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id)
}
// MessageBoxW(0, L"1", L"", 0);
if (lstrcmpW(nStr.c_str(), cscn) == 0) {
-
// MessageBoxW(0, nStr.c_str(), L"", 0);
return -1;
}
-
// MessageBoxW(0, L"2", L"", 0);
if (wcsstr(nStr.c_str(), L"………")) {
-
return -1;
}
if (wcsstr(nStr.c_str(), L"…ああ"))
return -1;
-
if (wcsstr(nStr.c_str(), L"ふふふっ"))
return -1;
-
-
lstrcpyW(ms_str, nStr.c_str());
if (!GetDataByID(nID, sjp, scn)) {
int pID = 0;
diff --git a/cs2_patch/Replace.h b/cs2_patch/Replace.h
index 09c3007..81ef35d 100644
--- a/cs2_patch/Replace.h
+++ b/cs2_patch/Replace.h
@@ -1,43 +1,32 @@
#pragma once
-
#include
#include "Data.h"
#define DLLAPI __declspec(dllexport)
-
typedef unsigned long long QWORD;
struct TESTDATA {
- DWORD ForCast;//;
+ DWORD ForCast;//������;������
wchar_t nChar;
-
- WORD Flag1;//;ΪBAAD
+ WORD Flag1;//������;����ΪBAAD
DWORD Flag2;//FFC8C8C8
DWORD Flag3;//FF352519
-
DWORD nCross;
DWORD nLine;
-
DWORD Flag4; //0000001A
DWORD Flagn4;//0000001A
QWORD Flag5; //0
-
DWORD Flag6; //FFFFFFFF
DWORD count; //mayba it shows the position of string
-
DWORD Flag7;
-
DWORD Flag8; //0000000100000001
DWORD Flagn8;
-
DWORD FlagnW;//1
QWORD FlagnQ;//0
DWORD ntime;//1E
DWORD ntime2;//1E
DWORD nWQ;//0
-
DWORD Over1;
QWORD Over2;
};
-
void BuildCV(TESTDATA* pcv, TESTDATA flt, DWORD posinCross, DWORD posInLine, DWORD m_count, WCHAR nchar);
void ApplyStringToCV(LPCWSTR ws, DWORD pDf, int id);
extern "C" DLLAPI int TranSplete(DWORD lp);
diff --git a/cs2_patch/dllmain.cpp b/cs2_patch/dllmain.cpp
index 8fd530d..ee28e5f 100644
--- a/cs2_patch/dllmain.cpp
+++ b/cs2_patch/dllmain.cpp
@@ -1,33 +1,27 @@
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
-
#include "Data.h"
#include "BuildIn.h"
#pragma data_seg("PublicData") // 声明共享数据段,并命名该数据段
-
extern "C" DLLAPI double saveProcess = 0.0;
HMODULE hMod = NULL;
extern "C" DLLAPI wchar_t ms_str[3096] = { 0 };
+extern "C" DLLAPI wchar_t ns_str[6192] = { 0 };
extern "C" DLLAPI int nID = 0;
extern "C" DLLAPI DWORD tPid = 0;
-
+extern "C" DLLAPI DWORD m_Addr = 0xFFFFFFFF;
+extern "C" DLLAPI DWORD VioMode = 0;
#pragma data_seg()
#pragma comment(linker, "/section:PublicData,rws")
-
MicroData* Index = NULL;
MicroBinary* Data = NULL;
-
char IpfData[16];
#define PutInt(a) _itoa_s(a,IpfData,10);MessageBoxA(0,IpfData,"num",0);
-
-
extern HMODULE SelfHandle ;
extern bool start_falg ;
-
-
-
+extern "C" DLLAPI void TestA(){}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
@@ -50,4 +44,3 @@ BOOL APIENTRY DllMain( HMODULE hModule,
}
return TRUE;
}
-
diff --git a/cs2_patch/framework.h b/cs2_patch/framework.h
index 5f72adf..68cafbc 100644
--- a/cs2_patch/framework.h
+++ b/cs2_patch/framework.h
@@ -1,21 +1,15 @@
#pragma once
-
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的内容
// Windows 头文件
#include
-
#include "MicroFile.h"
#pragma comment(lib,"MicroFile.lib")
-
#include "include/detours.h"
#pragma comment (lib,"detours.lib")
-
#include
#include
using namespace std;
-
#define DLLAPI __declspec(dllexport)
-
struct IndexData {
int Id;
DWORD JpBass;
@@ -24,5 +18,3 @@ struct IndexData {
DWORD CnLength;
};
-
-
diff --git a/cs2_patch/pch.cpp b/cs2_patch/pch.cpp
index b6fb8f4..33a23ee 100644
--- a/cs2_patch/pch.cpp
+++ b/cs2_patch/pch.cpp
@@ -1,5 +1,3 @@
// pch.cpp: 与预编译标头对应的源文件
-
#include "pch.h"
-
// 当使用预编译的头时,需要使用此源文件,编译才能成功。
diff --git a/cs2_patch/pch.h b/cs2_patch/pch.h
index 9660927..63e0e86 100644
--- a/cs2_patch/pch.h
+++ b/cs2_patch/pch.h
@@ -3,11 +3,8 @@
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
-
#ifndef PCH_H
#define PCH_H
-
// 添加要在此处预编译的标头
#include "framework.h"
-
#endif //PCH_H
diff --git a/cs2_united.sln b/cs2_united.sln
index bbfc7a4..08bf69e 100644
--- a/cs2_united.sln
+++ b/cs2_united.sln
@@ -21,8 +21,8 @@ Global
{460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|x64.ActiveCfg = Debug|Any CPU
{460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|x64.Build.0 = Debug|Any CPU
- {460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|x86.ActiveCfg = Release|x86
- {460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|x86.Build.0 = Release|x86
+ {460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|x86.ActiveCfg = Debug|x86
+ {460F93FF-C32C-455C-A2F6-BB81E86961AE}.Debug|x86.Build.0 = Debug|x86
{460F93FF-C32C-455C-A2F6-BB81E86961AE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{460F93FF-C32C-455C-A2F6-BB81E86961AE}.Release|Any CPU.Build.0 = Release|Any CPU
{460F93FF-C32C-455C-A2F6-BB81E86961AE}.Release|x64.ActiveCfg = Release|Any CPU
@@ -32,8 +32,8 @@ Global
{DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|Any CPU.ActiveCfg = Debug|Win32
{DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|x64.ActiveCfg = Debug|x64
{DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|x64.Build.0 = Debug|x64
- {DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|x86.ActiveCfg = Release|Win32
- {DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|x86.Build.0 = Release|Win32
+ {DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|x86.ActiveCfg = Debug|Win32
+ {DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Debug|x86.Build.0 = Debug|Win32
{DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Release|Any CPU.ActiveCfg = Release|Win32
{DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Release|x64.ActiveCfg = Release|x64
{DB403E75-A69B-4B8E-AD02-9CF48E7C93A7}.Release|x64.Build.0 = Release|x64