From 1db5ee59357dce33cd1e18ed0f8d8732f7b4276e Mon Sep 17 00:00:00 2001
From: 201580ag <39054577+201580ag@users.noreply.github.com>
Date: Thu, 9 Nov 2023 03:23:12 +0900
Subject: [PATCH] Add files via upload
---
.../AssaltCubeGameHack.sln | 25 +
.../AssaltCubeGameHack/App.config | 6 +
.../AssaltCubeGameHack.csproj | 93 ++++
.../AssaltCubeGameHack/Form1.Designer.cs | 251 ++++++++++
.../AssaltCubeGameHack/Form1.cs | 274 +++++++++++
.../AssaltCubeGameHack/Form1.resx | 126 +++++
.../OverlayForm.Designer.cs | 57 +++
.../AssaltCubeGameHack/OverlayForm.cs | 170 +++++++
.../AssaltCubeGameHack/OverlayForm.resx | 123 +++++
.../AssaltCubeGameHack/PlayerData.cs | 100 ++++
.../AssaltCubeGameHack/ProcessMemoryReader.cs | 442 ++++++++++++++++++
.../AssaltCubeGameHack/Program.cs | 59 +++
.../Properties/AssemblyInfo.cs | 36 ++
.../Properties/Resources.Designer.cs | 71 +++
.../Properties/Resources.resx | 117 +++++
.../Properties/Settings.Designer.cs | 30 ++
.../Properties/Settings.settings | 7 +
.../bin/Debug/AssaltCubeGameHack.exe.config | 6 +
.../Debug/AssaltCubeGameHack.Form1.resources | Bin 0 -> 180 bytes
.../AssaltCubeGameHack.OverlayForm.resources | Bin 0 -> 180 bytes
...ubeGameHack.Properties.Resources.resources | Bin 0 -> 180 bytes
...ltCubeGameHack.csproj.FileListAbsolute.txt | 31 ++
...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0
...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0
...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0
25 files changed, 2024 insertions(+)
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack.sln
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/App.config
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/AssaltCubeGameHack.csproj
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.Designer.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.resx
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.Designer.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.resx
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/PlayerData.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/ProcessMemoryReader.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Program.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/AssemblyInfo.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.Designer.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.resx
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.Designer.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.settings
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/bin/Debug/AssaltCubeGameHack.exe.config
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.Form1.resources
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.OverlayForm.resources
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.Properties.Resources.resources
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.csproj.FileListAbsolute.txt
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
create mode 100644 AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack.sln b/AssaultCubeGameHack-master/AssaltCubeGameHack.sln
new file mode 100644
index 0000000..8b10102
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2027
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssaltCubeGameHack", "AssaltCubeGameHack\AssaltCubeGameHack.csproj", "{8E1A7A35-7B30-4EDD-B762-4F45DB2EE457}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8E1A7A35-7B30-4EDD-B762-4F45DB2EE457}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8E1A7A35-7B30-4EDD-B762-4F45DB2EE457}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8E1A7A35-7B30-4EDD-B762-4F45DB2EE457}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8E1A7A35-7B30-4EDD-B762-4F45DB2EE457}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {96898AB6-6769-42F4-A91C-0E6A710A9B5A}
+ EndGlobalSection
+EndGlobal
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/App.config b/AssaultCubeGameHack-master/AssaltCubeGameHack/App.config
new file mode 100644
index 0000000..016d28f
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/AssaltCubeGameHack.csproj b/AssaultCubeGameHack-master/AssaltCubeGameHack/AssaltCubeGameHack.csproj
new file mode 100644
index 0000000..ee7aff0
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/AssaltCubeGameHack.csproj
@@ -0,0 +1,93 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {8E1A7A35-7B30-4EDD-B762-4F45DB2EE457}
+ WinExe
+ AssaltCubeGameHack
+ AssaltCubeGameHack
+ v4.7
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.cs
+
+
+ Form
+
+
+ OverlayForm.cs
+
+
+
+
+
+
+ Form1.cs
+
+
+ OverlayForm.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.Designer.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.Designer.cs
new file mode 100644
index 0000000..4c4ac45
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.Designer.cs
@@ -0,0 +1,251 @@
+namespace AssaltCubeGameHack
+{
+ partial class Form1
+ {
+ ///
+ /// 필수 디자이너 변수입니다.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 사용 중인 모든 리소스를 정리합니다.
+ ///
+ /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form 디자이너에서 생성한 코드
+
+ ///
+ /// 디자이너 지원에 필요한 메서드입니다.
+ /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.TitleLBL = new System.Windows.Forms.Label();
+ this.HealthBT = new System.Windows.Forms.Button();
+ this.AmmoBT = new System.Windows.Forms.Button();
+ this.ExitBT = new System.Windows.Forms.Button();
+ this.comboBox1 = new System.Windows.Forms.ComboBox();
+ this.PlayerDataBox = new System.Windows.Forms.GroupBox();
+ this.AngleLBL = new System.Windows.Forms.Label();
+ this.PositionLBL = new System.Windows.Forms.Label();
+ this.BulletProofLBL = new System.Windows.Forms.Label();
+ this.AmmoLBL = new System.Windows.Forms.Label();
+ this.HealthLBL = new System.Windows.Forms.Label();
+ this.SelectProcessLBL = new System.Windows.Forms.Label();
+ this.timer1 = new System.Windows.Forms.Timer(this.components);
+ this.HealthHLBL = new System.Windows.Forms.Label();
+ this.ammoHLBL = new System.Windows.Forms.Label();
+ this.WallHackCHB = new System.Windows.Forms.CheckBox();
+ this.PlayerDataBox.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // TitleLBL
+ //
+ this.TitleLBL.AutoSize = true;
+ this.TitleLBL.Font = new System.Drawing.Font("맑은 고딕", 36F, ((System.Drawing.FontStyle)(((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)
+ | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.TitleLBL.Location = new System.Drawing.Point(88, 9);
+ this.TitleLBL.Name = "TitleLBL";
+ this.TitleLBL.Size = new System.Drawing.Size(569, 65);
+ this.TitleLBL.TabIndex = 0;
+ this.TitleLBL.Text = "AssaultCube GameHack";
+ //
+ // HealthBT
+ //
+ this.HealthBT.Location = new System.Drawing.Point(67, 164);
+ this.HealthBT.Name = "HealthBT";
+ this.HealthBT.Size = new System.Drawing.Size(139, 23);
+ this.HealthBT.TabIndex = 1;
+ this.HealthBT.Text = "Health Hack";
+ this.HealthBT.UseVisualStyleBackColor = true;
+ this.HealthBT.Click += new System.EventHandler(this.HealthBT_Click);
+ //
+ // AmmoBT
+ //
+ this.AmmoBT.Location = new System.Drawing.Point(67, 193);
+ this.AmmoBT.Name = "AmmoBT";
+ this.AmmoBT.Size = new System.Drawing.Size(138, 23);
+ this.AmmoBT.TabIndex = 1;
+ this.AmmoBT.Text = "Ammo Hack";
+ this.AmmoBT.UseVisualStyleBackColor = true;
+ this.AmmoBT.Click += new System.EventHandler(this.AmmoBT_Click);
+ //
+ // ExitBT
+ //
+ this.ExitBT.Location = new System.Drawing.Point(849, 243);
+ this.ExitBT.Name = "ExitBT";
+ this.ExitBT.Size = new System.Drawing.Size(75, 23);
+ this.ExitBT.TabIndex = 1;
+ this.ExitBT.Text = "닫기";
+ this.ExitBT.UseVisualStyleBackColor = true;
+ this.ExitBT.Click += new System.EventHandler(this.ExitBT_Click);
+ //
+ // comboBox1
+ //
+ this.comboBox1.FormattingEnabled = true;
+ this.comboBox1.Location = new System.Drawing.Point(67, 118);
+ this.comboBox1.Name = "comboBox1";
+ this.comboBox1.Size = new System.Drawing.Size(252, 20);
+ this.comboBox1.TabIndex = 2;
+ this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
+ this.comboBox1.Click += new System.EventHandler(this.comboBox1_Click);
+ //
+ // PlayerDataBox
+ //
+ this.PlayerDataBox.Controls.Add(this.AngleLBL);
+ this.PlayerDataBox.Controls.Add(this.PositionLBL);
+ this.PlayerDataBox.Controls.Add(this.BulletProofLBL);
+ this.PlayerDataBox.Controls.Add(this.AmmoLBL);
+ this.PlayerDataBox.Controls.Add(this.HealthLBL);
+ this.PlayerDataBox.Location = new System.Drawing.Point(384, 98);
+ this.PlayerDataBox.Name = "PlayerDataBox";
+ this.PlayerDataBox.Size = new System.Drawing.Size(540, 128);
+ this.PlayerDataBox.TabIndex = 3;
+ this.PlayerDataBox.TabStop = false;
+ this.PlayerDataBox.Text = "Player Data";
+ this.PlayerDataBox.Enter += new System.EventHandler(this.PlayerDataBox_Enter);
+ //
+ // AngleLBL
+ //
+ this.AngleLBL.AutoSize = true;
+ this.AngleLBL.Location = new System.Drawing.Point(139, 20);
+ this.AngleLBL.Name = "AngleLBL";
+ this.AngleLBL.Size = new System.Drawing.Size(41, 12);
+ this.AngleLBL.TabIndex = 0;
+ this.AngleLBL.Text = "Angle:";
+ //
+ // PositionLBL
+ //
+ this.PositionLBL.AutoSize = true;
+ this.PositionLBL.Location = new System.Drawing.Point(139, 53);
+ this.PositionLBL.Name = "PositionLBL";
+ this.PositionLBL.Size = new System.Drawing.Size(35, 12);
+ this.PositionLBL.TabIndex = 0;
+ this.PositionLBL.Text = "Pos: ";
+ //
+ // BulletProofLBL
+ //
+ this.BulletProofLBL.AutoSize = true;
+ this.BulletProofLBL.Location = new System.Drawing.Point(18, 95);
+ this.BulletProofLBL.Name = "BulletProofLBL";
+ this.BulletProofLBL.Size = new System.Drawing.Size(69, 12);
+ this.BulletProofLBL.TabIndex = 0;
+ this.BulletProofLBL.Text = "BulletProof:";
+ //
+ // AmmoLBL
+ //
+ this.AmmoLBL.AutoSize = true;
+ this.AmmoLBL.Location = new System.Drawing.Point(18, 53);
+ this.AmmoLBL.Name = "AmmoLBL";
+ this.AmmoLBL.Size = new System.Drawing.Size(50, 12);
+ this.AmmoLBL.TabIndex = 0;
+ this.AmmoLBL.Text = "Ammo: ";
+ //
+ // HealthLBL
+ //
+ this.HealthLBL.AutoSize = true;
+ this.HealthLBL.Location = new System.Drawing.Point(18, 20);
+ this.HealthLBL.Name = "HealthLBL";
+ this.HealthLBL.Size = new System.Drawing.Size(48, 12);
+ this.HealthLBL.TabIndex = 0;
+ this.HealthLBL.Text = "Health: ";
+ //
+ // SelectProcessLBL
+ //
+ this.SelectProcessLBL.AutoSize = true;
+ this.SelectProcessLBL.Location = new System.Drawing.Point(65, 98);
+ this.SelectProcessLBL.Name = "SelectProcessLBL";
+ this.SelectProcessLBL.Size = new System.Drawing.Size(145, 12);
+ this.SelectProcessLBL.TabIndex = 4;
+ this.SelectProcessLBL.Text = "프로세스를 선택해주세요.";
+ //
+ // timer1
+ //
+ this.timer1.Enabled = true;
+ this.timer1.Interval = 1;
+ this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
+ //
+ // HealthHLBL
+ //
+ this.HealthHLBL.AutoSize = true;
+ this.HealthHLBL.Location = new System.Drawing.Point(230, 169);
+ this.HealthHLBL.Name = "HealthHLBL";
+ this.HealthHLBL.Size = new System.Drawing.Size(57, 12);
+ this.HealthHLBL.TabIndex = 5;
+ this.HealthHLBL.Text = "동작 안함";
+ //
+ // ammoHLBL
+ //
+ this.ammoHLBL.AutoSize = true;
+ this.ammoHLBL.Location = new System.Drawing.Point(230, 198);
+ this.ammoHLBL.Name = "ammoHLBL";
+ this.ammoHLBL.Size = new System.Drawing.Size(57, 12);
+ this.ammoHLBL.TabIndex = 5;
+ this.ammoHLBL.Text = "동작 안함";
+ //
+ // WallHackCHB
+ //
+ this.WallHackCHB.AutoSize = true;
+ this.WallHackCHB.Location = new System.Drawing.Point(67, 231);
+ this.WallHackCHB.Name = "WallHackCHB";
+ this.WallHackCHB.Size = new System.Drawing.Size(79, 16);
+ this.WallHackCHB.TabIndex = 7;
+ this.WallHackCHB.Text = "Wall Hack";
+ this.WallHackCHB.UseVisualStyleBackColor = true;
+ this.WallHackCHB.CheckedChanged += new System.EventHandler(this.WallHackCHB_CheckedChanged);
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(970, 301);
+ this.Controls.Add(this.WallHackCHB);
+ this.Controls.Add(this.ammoHLBL);
+ this.Controls.Add(this.HealthHLBL);
+ this.Controls.Add(this.SelectProcessLBL);
+ this.Controls.Add(this.PlayerDataBox);
+ this.Controls.Add(this.comboBox1);
+ this.Controls.Add(this.ExitBT);
+ this.Controls.Add(this.AmmoBT);
+ this.Controls.Add(this.HealthBT);
+ this.Controls.Add(this.TitleLBL);
+ this.Name = "Form1";
+ this.Text = "AssaultCube GameHack";
+ this.Load += new System.EventHandler(this.Form1_Load);
+ this.PlayerDataBox.ResumeLayout(false);
+ this.PlayerDataBox.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label TitleLBL;
+ private System.Windows.Forms.Button HealthBT;
+ private System.Windows.Forms.Button AmmoBT;
+ private System.Windows.Forms.Button ExitBT;
+ private System.Windows.Forms.ComboBox comboBox1;
+ private System.Windows.Forms.GroupBox PlayerDataBox;
+ private System.Windows.Forms.Label AngleLBL;
+ private System.Windows.Forms.Label PositionLBL;
+ private System.Windows.Forms.Label BulletProofLBL;
+ private System.Windows.Forms.Label AmmoLBL;
+ private System.Windows.Forms.Label HealthLBL;
+ private System.Windows.Forms.Label SelectProcessLBL;
+ private System.Windows.Forms.Timer timer1;
+ private System.Windows.Forms.Label HealthHLBL;
+ private System.Windows.Forms.Label ammoHLBL;
+ private System.Windows.Forms.CheckBox WallHackCHB;
+ }
+}
+
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.cs
new file mode 100644
index 0000000..95c0c7f
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.cs
@@ -0,0 +1,274 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Diagnostics;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+using ProcessMemoryReaderLib;
+
+namespace AssaltCubeGameHack
+{
+ public partial class Form1 : Form
+ {
+
+ Process[] MyProcess; // 프로세스를 목록을 저장할 장소
+ ProcessMemoryReader mem = new ProcessMemoryReader();
+ Process attachProc;
+ OverlayForm overlayForm = new OverlayForm();
+
+ bool attach = false;
+ bool healthHack = false;
+ bool ammoHack = false;
+ bool wallHack = false;
+
+ PlayerData mainPlayer;
+ PlayerData[] enemyPlayer = new PlayerData[30];
+
+
+
+ public Form1()
+ {
+ InitializeComponent();
+ }
+
+ private void Form1_Load(object sender, EventArgs e)
+ {
+
+ }
+
+ private void ExitBT_Click(object sender, EventArgs e)
+ {
+ DialogResult result; // 닫기 실행할 꺼냐?? 정말??
+ result = MessageBox.Show("종료하시겠습니까?", "종료메시지", MessageBoxButtons.OKCancel);
+
+ if (result == DialogResult.OK)
+ {
+ this.DialogResult = DialogResult.Abort;
+ Application.Exit();
+ }
+ }
+
+ // 클릭했을 때 프로세스 목록
+ private void comboBox1_Click(object sender, EventArgs e)
+ {
+ comboBox1.Items.Clear(); // 기존의 프로세스 목록을 초기화
+ MyProcess = Process.GetProcesses(); // 프로세스 목록을 불러옴 (30개)
+
+ for (int i = 0; i < MyProcess.Length; i++)
+ {
+ // 여기에 작성되는 내용이 총 MyProcess.Length번 진행됨
+ string text = MyProcess[i].ProcessName + "-" + MyProcess[i].Id;
+ comboBox1.Items.Add(text);
+ }
+
+ }
+
+
+ // 콤보박스 메뉴중에 어떤 항목을 클릭했을 때 동작할 내용
+ // 프로세스를 선택했을 때 어떤 행동을 할지 정하는 애
+ private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ try
+ {
+ // 해당 프로세스에 대한 권한을 가져온다
+ // 프로세스 메모리 읽기/수정
+ if (comboBox1.SelectedIndex != -1) // 목록을 선택했다면
+ {
+ string selectedItem = comboBox1.SelectedItem.ToString(); // KakaoTalk-704
+ int pid = int.Parse(selectedItem.Split('-')[selectedItem.Split('-').Length - 1]); // 문자열을 -로 나눈후 가장 마지막 문자열으르 가져온다.
+ attachProc = Process.GetProcessById(pid);
+
+ // 프로세스를 열어야함! (권한)
+ mem.ReadProcess = attachProc; // 어떤 프로세스를 열지를 저장
+ mem.OpenProcess(); // 프로세스를 열기
+
+ MessageBox.Show("프로세스 열기 성공! " + attachProc.ProcessName);
+ int base_ptr = attachProc.MainModule.BaseAddress.ToInt32() + 0x00169A38;
+ int player_base = mem.ReadInt(base_ptr);
+ mainPlayer = new PlayerData(player_base);
+
+ attach = true;
+ }
+ }
+ catch (Exception ex) // 시도했을 때 예외 처리
+ {
+ attach = false;
+ MessageBox.Show("프로세스 열기 실패: " + ex.Message);
+ }
+
+ }
+
+ private void timer1_Tick(object sender, EventArgs e) // 0.001초마다 동작
+ {
+ if (attach)
+ {
+ try
+ {
+ mainPlayer.SetPlayerData(mem); // 데이터 모니터링
+ if (healthHack)
+ {
+ mainPlayer.hackHealth(mem);
+ }
+
+ if (ammoHack)
+ {
+ mainPlayer.hackAmmo(mem);
+ }
+
+ // 마우스 오른쪽 키에 대한 상태를 확인
+ int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02);
+
+ if (wallHack || (hotkey & 0x8000) != 0)
+ {
+ GetEnemyState(mem); // 적들에 대한 정보 습득
+ }
+
+ if (wallHack)
+ {
+ overlayForm.hackWall(mainPlayer, enemyPlayer);
+ }
+
+
+ if ((hotkey & 0x8000) != 0) // 키가 눌려있다면...
+ {
+ float min_err = 100000; // 에러를 굉장히 큰 값으로 초기화
+ float err = 0;
+ double min_x_angle = 0;
+ double min_y_angle = 0;
+
+
+ for (int i = 0; i < 30; i++)
+ {
+ // aim hack algorithm
+
+ err = mainPlayer.getAimErr(mem, enemyPlayer[i].head_x_angle, enemyPlayer[i].head_y_angle);
+ if (min_err > err)
+ {
+ min_err = err;
+ min_x_angle = enemyPlayer[i].head_x_angle;
+ min_y_angle = enemyPlayer[i].head_y_angle;
+ }
+ }
+
+ mainPlayer.hackAim(mem, min_x_angle, min_y_angle);
+ }
+
+
+
+ HealthLBL.Text = "Health: " + mainPlayer.health; // Health: 100
+ AmmoLBL.Text = "Ammo: " + mainPlayer.ammo;
+ BulletProofLBL.Text = "BulletProof: " + mainPlayer.bullet_proof;
+ AngleLBL.Text = "Angle: " + mainPlayer.x_angle.ToString("#.##") + " | " + mainPlayer.y_angle.ToString("#.##");
+ PositionLBL.Text = "Pos: " + mainPlayer.x_pos.ToString("#.##") + ", " + mainPlayer.y_pos.ToString("#.##") + "," + mainPlayer.z_pos.ToString("#.##");
+ }
+ catch { }
+ }
+ }
+
+ private double GetYDegree(PlayerData mainPlayer, PlayerData enemyPlayer)
+ {
+ double xz_distance = Math.Sqrt(Math.Pow(mainPlayer.x_pos - enemyPlayer.x_pos, 2) + Math.Pow(mainPlayer.z_pos - enemyPlayer.z_pos, 2));
+ double y = mainPlayer.y_pos - enemyPlayer.y_pos;
+ double correction = 1;
+
+ if (y > 0)
+ {
+ correction = -1;
+ }
+ return correction * Math.Abs( Math.Atan(y / xz_distance) * 180 / Math.PI);
+ }
+
+ private double Get2DDegree(PlayerData mainPlayer, PlayerData enemyPlayer)
+ {
+ double x = mainPlayer.x_pos - enemyPlayer.x_pos;
+ double z = mainPlayer.z_pos - enemyPlayer.z_pos;
+ double correction = 270;
+
+ if (x < 0) correction = 90;
+
+ return correction + Math.Atan(z / x) * 180 / Math.PI;
+ }
+
+ private double GetDistance(PlayerData mainPlayer, PlayerData enemyPlayer)
+ {
+ //피타고라스의 법칙을 사용해 xz_distance를 먼저 구함 (2D)
+ double xz_distance = Math.Sqrt(Math.Pow(mainPlayer.x_pos- enemyPlayer.x_pos, 2) + Math.Pow(mainPlayer.z_pos - enemyPlayer.z_pos, 2));
+ //피타고라스의 법칙을 사용해 distance를 구함 (3D)
+ double distance = Math.Sqrt(Math.Pow(xz_distance, 2) + Math.Pow(mainPlayer.y_pos - enemyPlayer.y_pos, 2));
+ return distance;
+ }
+
+ private void GetEnemyState(ProcessMemoryReader mem)
+ {
+ int base_ptr = attachProc.MainModule.BaseAddress.ToInt32() + 0x00176F48;
+
+ for (int i=0; i < 30; i++)
+ {
+ int[] offsetArray = { i * 4, 0 }; // 0, 4, 8, 12 총30명의 플레이어 데이터를 불러옴
+ int player_base = mem.ReadMultiLevelPointer(base_ptr, 4, offsetArray);
+ enemyPlayer[i] = new PlayerData(player_base);
+ enemyPlayer[i].SetPlayerData(mem);
+ enemyPlayer[i].distance = GetDistance(mainPlayer, enemyPlayer[i]);
+ enemyPlayer[i].head_x_angle = Get2DDegree(mainPlayer, enemyPlayer[i]);
+ enemyPlayer[i].head_y_angle = GetYDegree(mainPlayer, enemyPlayer[i]);
+ }
+
+
+ }
+
+ private void HealthBT_Click(object sender, EventArgs e)
+ {
+ if (healthHack)
+ {
+ healthHack = false;
+ HealthHLBL.Text = "동작 안함";
+ }
+ else
+ {
+ healthHack = true;
+ HealthHLBL.Text = "동작 중";
+
+ }
+ }
+
+ private void AmmoBT_Click(object sender, EventArgs e)
+ {
+ if (ammoHack)
+ {
+ ammoHack = false;
+ ammoHLBL.Text = "동작 안함";
+ }
+ else
+ {
+ ammoHack = true;
+ ammoHLBL.Text = "동작 중";
+ }
+ }
+
+ private void PlayerDataBox_Enter(object sender, EventArgs e)
+ {
+
+ }
+
+ private void WallHackCHB_CheckedChanged(object sender, EventArgs e)
+ {
+ if (WallHackCHB.Checked == true)
+ {
+ // 만약에 체크박스가 체킹돼 있다면...
+ overlayForm.Show(); // 보여준다!
+ wallHack = true;
+ }
+ else
+ {
+ // 만약에 체크박스가 체킹돼 있지 않다면 ...
+ overlayForm.Hide(); // 숨긴다!
+ wallHack = false;
+ }
+ }
+ }
+}
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.resx b/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.resx
new file mode 100644
index 0000000..9d24b35
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Form1.resx
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
+ 56
+
+
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.Designer.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.Designer.cs
new file mode 100644
index 0000000..3d88e1f
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.Designer.cs
@@ -0,0 +1,57 @@
+namespace AssaltCubeGameHack
+{
+ partial class OverlayForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.timer1 = new System.Windows.Forms.Timer(this.components);
+ this.SuspendLayout();
+ //
+ // timer1
+ //
+ this.timer1.Interval = 1;
+ this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
+ //
+ // OverlayForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(284, 261);
+ this.Name = "OverlayForm";
+ this.Text = "OverlayForm";
+ this.Load += new System.EventHandler(this.OverlayForm_Load);
+ this.Paint += new System.Windows.Forms.PaintEventHandler(this.OverlayForm_Paint);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Timer timer1;
+ }
+}
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.cs
new file mode 100644
index 0000000..869731f
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.cs
@@ -0,0 +1,170 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace AssaltCubeGameHack
+{
+
+ public partial class OverlayForm : Form
+ {
+ Graphics g;
+ Pen myPen = new Pen(Color.Red);
+ IntPtr hAssualtCube;
+ PosEnemy[] posEnemy = new PosEnemy[30];
+
+ public const string WINDOWNAME = "AssaultCube";
+ RECT rect;
+
+ [StructLayout(LayoutKind.Sequential)]
+ public struct RECT
+ {
+ public int Left; // x position of upper-left corner
+ public int Top; // y position of upper-left corner
+ public int Right; // x position of lower-right corner
+ public int Bottom; // y position of lower-right corner
+ }
+
+ public struct PosEnemy
+ {
+ public float x;
+ public float y;
+ public float size;
+ }
+
+
+ [DllImport("user32.dll")]
+ static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
+ [DllImport("user32.dll", EntryPoint = "GetWindowLong")]
+ static extern int GetWindowLong(IntPtr hWnd, int nIndex);
+
+ [DllImport("user32.dll", SetLastError = true)]
+ static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
+ [DllImport("user32")]
+ public static extern IntPtr FindWindow(String lpClassName, String lpWindowName);
+
+
+ public OverlayForm()
+ {
+ InitializeComponent();
+ }
+
+ private void OverlayForm_Load(object sender, EventArgs e)
+ {
+ /* 창에 대한 속성 조절 */
+ this.BackColor = Color.Wheat; // 배경 색 없음
+ this.TransparencyKey = Color.Wheat; // 투명한 영역에다가 이미지 업데이트
+ this.TopMost = true; // 가장 상단 노출
+ this.FormBorderStyle = FormBorderStyle.None; // 창의 틀이 완전히 삭제
+
+ int presnetStyle = GetWindowLong(this.Handle, -20);
+ SetWindowLong(this.Handle, -20, presnetStyle | 0x80000 | 0x20); // 마우스 이벤트 뒤로 전달 속성 추가
+
+ /* 창에 대한 위치와 크기 조절 */
+ hAssualtCube = FindWindow(null, WINDOWNAME); // AssaultCube 창을 찾아 핸들을 저장
+ GetWindowRect(hAssualtCube, out rect);
+
+ // 창 사이즈
+ int height = rect.Bottom - rect.Top;
+ int width = rect.Right - rect.Left;
+ this.Size = new Size(width, height);
+
+ // 창 위치
+ this.Top = rect.Top;
+ this.Left = rect.Left;
+
+
+ timer1.Enabled = true;
+ }
+
+
+
+ // 모든 창이 초기화된 뒤에 사용되도록 로드되는 마지막에 타이머 온
+ private void timer1_Tick(object sender, EventArgs e)
+ {
+ GetWindowRect(hAssualtCube, out rect);
+
+ // 창 사이즈
+ int height = rect.Bottom - rect.Top;
+ int width = rect.Right - rect.Left;
+ this.Size = new Size(width, height);
+
+ // 창 위치
+ this.Top = rect.Top;
+ this.Left = rect.Left;
+ }
+
+ private void OverlayForm_Paint(object sender, PaintEventArgs e)
+ {
+ g = e.Graphics;
+ //g.DrawRectangle(myPen, 100, 100, 150, 150);
+
+ for (int i = 0; i < 10; i++)
+ {
+ if(posEnemy[i].x != -1234)
+ {
+ g.DrawRectangle(myPen, posEnemy[i].x - posEnemy[i].size/2, posEnemy[i].y- posEnemy[i].size/2, posEnemy[i].size, posEnemy[i].size*2);
+ //g.DrawRectangle(myPen, (rect.Right - rect.Left)/ 2, (rect.Bottom - rect.Top) / 2, 10,10);
+ }
+ }
+ }
+
+ internal void hackWall(PlayerData mainPlayer, PlayerData[] enemyPlayer)
+ {
+ for (int i = 0; i < 10; i++) // 10명의 플레이어를 검사
+ {
+ float x_angle_pos = mainPlayer.x_angle - Double2Float(enemyPlayer[i].head_x_angle);
+ float y_angle_pos = mainPlayer.y_angle - Double2Float(enemyPlayer[i].head_y_angle);
+
+ // 실제 각도와 다르게 측정되는 경우, 실제 각도로 보정
+ // 예: 359 - 1 = 358 --> -2도
+ // 예: 1 - 359 = -358 --> 2도
+ if (360 - 45 <= Math.Abs(x_angle_pos) && Math.Abs(x_angle_pos) <= 360)
+ {
+ if (x_angle_pos > 0) // 360 - 0
+ x_angle_pos -= 360; // 예: 359 - 1 = 358 --> -2도
+ else
+ x_angle_pos += 360; // 예: 1 - 359 = -358 --> 2도
+ }
+
+ // 내 시야에 있는 것 체크
+ if ((Math.Abs(x_angle_pos) <= 45) && enemyPlayer[i].health > 0) //길이가 총 90도
+ {
+ float x_corr = (rect.Right - rect.Left) / 90 * x_angle_pos;
+ float y_corr = (rect.Bottom - rect.Top) / 60 * y_angle_pos;
+
+ posEnemy[i].x = ((rect.Right - rect.Left) / 2) - x_corr;
+ posEnemy[i].y = ((rect.Bottom - rect.Top) / 2) + y_corr;
+ posEnemy[i].size = Double2Float(1800 / enemyPlayer[i].distance);
+ }
+
+ else
+ {
+ posEnemy[i].x = -1234;
+ posEnemy[i].y = -1234;
+ }
+ }
+ this.Invalidate(); // 페인트 초기화
+ }
+
+ private float Double2Float(double input)
+ {
+ float result = (float)input;
+ if (float.IsPositiveInfinity(result))
+ {
+ result = float.MaxValue;
+ }
+ else if (float.IsNegativeInfinity(result))
+ {
+ result = float.MinValue;
+ }
+ return result;
+ }
+ }
+}
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.resx b/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.resx
new file mode 100644
index 0000000..1f666f2
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/OverlayForm.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/PlayerData.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/PlayerData.cs
new file mode 100644
index 0000000..0d9b479
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/PlayerData.cs
@@ -0,0 +1,100 @@
+using ProcessMemoryReaderLib;
+using System;
+using System.Diagnostics;
+
+namespace AssaltCubeGameHack
+{
+ internal class PlayerData
+ {
+ int base_addr;// "ac_client.exe"+00169A38 구조체의 위치
+
+ // 구조체 모양
+ int health_offset = 0xF8;
+ int bullet_proof_offset = 0xFC;
+ int ammo_offset = 0x150;
+ int x_pos_offset = 0x34;
+ int z_pos_offset = 0x38;
+ int y_pos_offset = 0x3C;
+ int x_angle_offset = 0x40;
+ int y_angle_offset = 0x44;
+
+ // 캐릭터 정보
+ public int health;
+ public int bullet_proof;
+ public int ammo;
+ public float x_pos;
+ public float y_pos;
+ public float z_pos;
+ public float x_angle;
+ public float y_angle;
+ public double distance;
+ public double head_x_angle;
+ public double head_y_angle;
+
+ public PlayerData(int player_base)
+ {
+ // mainPlayer 또는 적 플레이어 구조체의 위치
+ base_addr = player_base;
+ health = 0;
+ bullet_proof = 0;
+ ammo = 0;
+ x_pos = 0;
+ y_pos = 0;
+ z_pos = 0;
+ x_angle = 0;
+ y_angle = 0;
+ distance = 0;
+ head_x_angle = 0;
+ head_y_angle = 0;
+ }
+
+ public void SetPlayerData(ProcessMemoryReader mem)
+ {
+ health = mem.ReadInt(base_addr + health_offset);
+ bullet_proof = mem.ReadInt(base_addr + bullet_proof_offset);
+ ammo = mem.ReadInt(base_addr + ammo_offset);
+ x_pos = mem.ReadFloat(base_addr + x_pos_offset);
+ y_pos = mem.ReadFloat(base_addr + y_pos_offset);
+ z_pos = mem.ReadFloat(base_addr + z_pos_offset);
+ x_angle = mem.ReadFloat(base_addr + x_angle_offset);
+ y_angle = mem.ReadFloat(base_addr + y_angle_offset);
+ }
+
+ internal void hackHealth(ProcessMemoryReader mem)
+ {
+ mem.WriteInt(base_addr + health_offset, 1000); // 체력 1000으로...
+ }
+
+ internal void hackAmmo(ProcessMemoryReader mem)
+ {
+ mem.WriteInt(base_addr + ammo_offset, 1000); // 탄약 1000으로...
+ }
+
+ internal void hackAim(ProcessMemoryReader mem, double x_angle, double y_angle)
+ {
+ float _x = Double2Float(x_angle);
+ float _y = Double2Float(y_angle);
+ mem.WriteFloat(base_addr + x_angle_offset, _x); // x 각도 세팅
+ mem.WriteFloat(base_addr + y_angle_offset, _y); // y 각도 세팅
+ }
+
+ private float Double2Float(double input)
+ {
+ float result = (float)input;
+ if (float.IsPositiveInfinity(result))
+ {
+ result = float.MaxValue;
+ }
+ else if (float.IsNegativeInfinity(result))
+ {
+ result = float.MinValue;
+ }
+ return result;
+ }
+
+ internal float getAimErr(ProcessMemoryReader mem, double _x_angle, double _y_angle)
+ {
+ return Double2Float(Math.Pow(x_angle - _x_angle, 2) + Math.Pow(y_angle - _y_angle, 2));
+ }
+ }
+}
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/ProcessMemoryReader.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/ProcessMemoryReader.cs
new file mode 100644
index 0000000..ccc85be
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/ProcessMemoryReader.cs
@@ -0,0 +1,442 @@
+using System;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+using System.Windows.Forms;
+
+//ORIGINALLY CREATED BY Pingo, Edited by Fleep
+namespace ProcessMemoryReaderLib
+{
+ class ProcessMemoryReaderApi
+ {
+ public const uint PROCESS_VM_READ = (0x0010);
+ public const uint PROCESS_VM_WRITE = (0x0020);
+ public const uint PROCESS_VM_OPERATION = (0x0008);
+ public const uint PAGE_READWRITE = 0x0004;
+ public const int WM_SYSCOMMAND = 0x0112;
+ public const int WM_ACTIVATE = 0x6;
+ public const int WM_HOTKEY = 0x0312;
+ [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
+ public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
+ [DllImport("kernel32.dll")]
+ public static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);
+
+ [DllImport("kernel32.dll")]
+ public static extern Int32 CloseHandle(IntPtr hObject);
+
+ [DllImport("kernel32.dll")]
+ public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);
+
+ [DllImport("kernel32.dll")]
+ public static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesWritten);
+
+ [DllImport("kernel32", SetLastError = true)]
+ public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, UInt32 dwSize, uint flAllocationType, uint flProtect);
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ public static extern bool VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress, UInt32 dwSize, uint flNewProtect, out uint lpflOldProtect);
+
+ [DllImport("user32.dll", SetLastError = true)]
+ public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
+
+ [DllImport("user32.dll")]
+ public static extern int GetKeyState(int vKey);
+
+ }
+ public class ProcessMemoryReader
+ {
+ public ProcessMemoryReader()
+ {
+ }
+ public Process ReadProcess
+ {
+ get
+ {
+ return m_ReadProcess;
+ }
+ set
+ {
+ m_ReadProcess = value;
+ }
+ }
+ private Process m_ReadProcess = null;
+ private IntPtr m_hProcess = IntPtr.Zero;
+ public void OpenProcess()
+ {
+ m_hProcess = ProcessMemoryReaderApi.OpenProcess(ProcessMemoryReaderApi.PROCESS_VM_READ | ProcessMemoryReaderApi.PROCESS_VM_WRITE | ProcessMemoryReaderApi.PROCESS_VM_OPERATION, 1, (uint)m_ReadProcess.Id);
+ }
+ public void CloseHandle()
+ {
+ int iRetValue;
+ iRetValue = ProcessMemoryReaderApi.CloseHandle(m_hProcess);
+ if (iRetValue == 0)
+ throw new Exception("CloseHandle failed");
+ }
+
+
+
+ #region ReadMem
+ public int ReadMem(int MemoryAddress, uint bytesToRead, out byte[] buffer)
+ {
+ IntPtr procHandle = ProcessMemoryReaderApi.OpenProcess(ProcessMemoryReaderApi.PROCESS_VM_READ | ProcessMemoryReaderApi.PROCESS_VM_WRITE | ProcessMemoryReaderApi.PROCESS_VM_OPERATION, 1, (uint)m_ReadProcess.Id);
+ if (procHandle == IntPtr.Zero)
+ {
+ buffer = new byte[0];
+ return 0;
+ }
+
+ buffer = new byte[bytesToRead];
+ IntPtr ptrBytesReaded;
+ ProcessMemoryReaderApi.ReadProcessMemory(procHandle, (IntPtr)MemoryAddress, buffer, bytesToRead, out ptrBytesReaded);
+ ProcessMemoryReaderApi.CloseHandle(procHandle);
+ return ptrBytesReaded.ToInt32();
+ }
+
+ //We use this to
+ public int ReadMultiLevelPointer(int MemoryAddress, uint bytesToRead, Int32[] offsetList)
+ {
+ IntPtr procHandle = ProcessMemoryReaderApi.OpenProcess(ProcessMemoryReaderApi.PROCESS_VM_READ | ProcessMemoryReaderApi.PROCESS_VM_WRITE | ProcessMemoryReaderApi.PROCESS_VM_OPERATION, 1, (uint)m_ReadProcess.Id);
+ IntPtr pointer = (IntPtr)0x0;
+ //IF THE PROCESS isnt available we return nothing
+ if (procHandle == IntPtr.Zero)
+ {
+ return 0;
+ }
+
+ byte[] btBuffer = new byte[bytesToRead];
+ IntPtr lpOutStorage = IntPtr.Zero;
+
+ int pointerAddy = MemoryAddress;
+ //int pointerTemp = 0;
+ for (int i = 0; i < (offsetList.Length); i++)
+ {
+ if (i == 0)
+ {
+ ProcessMemoryReaderApi.ReadProcessMemory(
+ procHandle,
+ (IntPtr)(pointerAddy),
+ btBuffer,
+ (uint)btBuffer.Length,
+ out lpOutStorage);
+ }
+ pointerAddy = (BitConverter.ToInt32(btBuffer, 0) + offsetList[i]);
+ //string pointerAddyHEX = pointerAddy.ToString("X");
+
+ ProcessMemoryReaderApi.ReadProcessMemory(
+ procHandle,
+ (IntPtr)(pointerAddy),
+ btBuffer,
+ (uint)btBuffer.Length,
+ out lpOutStorage);
+ }
+ return pointerAddy;
+ }
+
+ public byte ReadByte(int MemoryAddress)
+ {
+ byte[] buffer;
+ int read = ReadMem(MemoryAddress, 1, out buffer);
+ if (read == 0)
+ return new byte();
+ else
+ return buffer[0];
+ }
+ public int ReadInt(int MemoryAddress)
+ {
+ byte[] buffer;
+ int read = ReadMem(MemoryAddress, 4, out buffer);
+ if (read == 0)
+ return 0;
+ else
+ return BitConverter.ToInt32(buffer, 0);
+ }
+ public uint ReadUInt(int MemoryAddress)
+ {
+ byte[] buffer;
+ int read = ReadMem(MemoryAddress, 4, out buffer);
+ if (read == 0)
+ return 0;
+ else
+ return BitConverter.ToUInt32(buffer, 0);
+ }
+
+ public string ReadString(int MemoryAddress)
+ {
+ byte[] buffer;
+ int length = 0;
+
+ for (int i = 0; ReadByte(MemoryAddress + i) != 0; i++) length = i + 1; // We want to find the null-terminator of the string to determine length
+
+ int read = ReadMem(MemoryAddress, (uint)length, out buffer);
+
+ if (read == 0) return "";
+ else return System.Text.Encoding.Default.GetString(buffer);
+ }
+
+ public float ReadFloat(int MemoryAddress)
+ {
+ byte[] buffer;
+ int read = ReadMem(MemoryAddress, 4, out buffer);
+ if (read == 0)
+ return 0;
+ else
+ return BitConverter.ToSingle(buffer, 0);
+ }
+ public byte[] ReadAMem(IntPtr MemoryAddress, uint bytesToRead, out int bytesReaded)
+ {
+ byte[] buffer = new byte[bytesToRead];
+
+ IntPtr ptrBytesReaded;
+ ProcessMemoryReaderApi.ReadProcessMemory(m_hProcess, MemoryAddress, buffer, bytesToRead, out ptrBytesReaded);
+ bytesReaded = ptrBytesReaded.ToInt32();
+ return buffer;
+ }
+ internal byte[] ReadAMem(int p, int p_2, out int bytesReadSize)
+ {
+ throw new NotImplementedException();
+ }
+ #endregion
+ #region WriteMem
+ public int WriteMem(int MemoryAddress, byte[] buf)
+ {
+ IntPtr procHandle = ProcessMemoryReaderApi.OpenProcess(ProcessMemoryReaderApi.PROCESS_VM_READ | ProcessMemoryReaderApi.PROCESS_VM_WRITE | ProcessMemoryReaderApi.PROCESS_VM_OPERATION, 1, (uint)m_ReadProcess.Id);
+ if (procHandle == IntPtr.Zero)
+ return 0;
+
+ uint oldProtect;
+ ProcessMemoryReaderApi.VirtualProtectEx(procHandle, (IntPtr)MemoryAddress, (uint)buf.Length, ProcessMemoryReaderApi.PAGE_READWRITE, out oldProtect);
+ IntPtr ptrBytesWritten;
+ ProcessMemoryReaderApi.WriteProcessMemory(procHandle, (IntPtr)MemoryAddress, buf, (uint)buf.Length, out ptrBytesWritten);
+ ProcessMemoryReaderApi.CloseHandle(procHandle);
+ return ptrBytesWritten.ToInt32();
+ }
+
+ public void WriteByte(int MemoryAddress, byte b)
+ {
+ WriteMem(MemoryAddress, new byte[] { b });
+ }
+ public void WriteInt(int MemoryAddress, int w)
+ {
+ byte[] buf = BitConverter.GetBytes(w);
+ WriteMem(MemoryAddress, buf);
+ }
+ public void WriteUInt(int MemoryAddress, uint u)
+ {
+ byte[] buf = BitConverter.GetBytes(u);
+ WriteMem(MemoryAddress, buf);
+ }
+ public void WriteFloat(int MemoryAddress, float f)
+ {
+ byte[] buf = BitConverter.GetBytes(f);
+ WriteMem(MemoryAddress, buf);
+ }
+ public void WriteAMem(IntPtr MemoryAddress, byte[] bytesToWrite, out int bytesWritten)
+ {
+ IntPtr ptrBytesWritten;
+ ProcessMemoryReaderApi.WriteProcessMemory(m_hProcess, MemoryAddress, bytesToWrite, (uint)bytesToWrite.Length, out ptrBytesWritten);
+
+ bytesWritten = ptrBytesWritten.ToInt32();
+ }
+ #endregion
+ #region Keys
+ [DllImport("user32.dll")]
+ public static extern short GetKeyState(Keys nVirtKey);
+ public enum VirtualKeyStates : int
+ {
+ VK_LBUTTON = 0x01,
+ VK_RBUTTON = 0x02,
+ VK_CANCEL = 0x03,
+ VK_MBUTTON = 0x04,
+ //
+ VK_XBUTTON1 = 0x05,
+ VK_XBUTTON2 = 0x06,
+ //
+ VK_BACK = 0x08,
+ VK_TAB = 0x09,
+ //
+ VK_CLEAR = 0x0C,
+ VK_RETURN = 0x0D,
+ //
+ VK_SHIFT = 0x10,
+ VK_CONTROL = 0x11,
+ VK_MENU = 0x12,
+ VK_PAUSE = 0x13,
+ VK_CAPITAL = 0x14,
+ //
+ VK_KANA = 0x15,
+ VK_HANGEUL = 0x15, /* old name - should be here for compatibility */
+ VK_HANGUL = 0x15,
+ VK_JUNJA = 0x17,
+ VK_FINAL = 0x18,
+ VK_HANJA = 0x19,
+ VK_KANJI = 0x19,
+ //
+ VK_ESCAPE = 0x1B,
+ //
+ VK_CONVERT = 0x1C,
+ VK_NONCONVERT = 0x1D,
+ VK_ACCEPT = 0x1E,
+ VK_MODECHANGE = 0x1F,
+ //
+ VK_SPACE = 0x20,
+ VK_PRIOR = 0x21,
+ VK_NEXT = 0x22,
+ VK_END = 0x23,
+ VK_HOME = 0x24,
+ VK_LEFT = 0x25,
+ VK_UP = 0x26,
+ VK_RIGHT = 0x27,
+ VK_DOWN = 0x28,
+ VK_SELECT = 0x29,
+ VK_PRINT = 0x2A,
+ VK_EXECUTE = 0x2B,
+ VK_SNAPSHOT = 0x2C,
+ VK_INSERT = 0x2D,
+ VK_DELETE = 0x2E,
+ VK_HELP = 0x2F,
+ //
+ VK_LWIN = 0x5B,
+ VK_RWIN = 0x5C,
+ VK_APPS = 0x5D,
+ //
+ VK_SLEEP = 0x5F,
+ //
+ VK_NUMPAD0 = 0x60,
+ VK_NUMPAD1 = 0x61,
+ VK_NUMPAD2 = 0x62,
+ VK_NUMPAD3 = 0x63,
+ VK_NUMPAD4 = 0x64,
+ VK_NUMPAD5 = 0x65,
+ VK_NUMPAD6 = 0x66,
+ VK_NUMPAD7 = 0x67,
+ VK_NUMPAD8 = 0x68,
+ VK_NUMPAD9 = 0x69,
+ VK_MULTIPLY = 0x6A,
+ VK_ADD = 0x6B,
+ VK_SEPARATOR = 0x6C,
+ VK_SUBTRACT = 0x6D,
+ VK_DECIMAL = 0x6E,
+ VK_DIVIDE = 0x6F,
+ VK_F1 = 0x70,
+ VK_F2 = 0x71,
+ VK_F3 = 0x72,
+ VK_F4 = 0x73,
+ VK_F5 = 0x74,
+ VK_F6 = 0x75,
+ VK_F7 = 0x76,
+ VK_F8 = 0x77,
+ VK_F9 = 0x78,
+ VK_F10 = 0x79,
+ VK_F11 = 0x7A,
+ VK_F12 = 0x7B,
+ VK_F13 = 0x7C,
+ VK_F14 = 0x7D,
+ VK_F15 = 0x7E,
+ VK_F16 = 0x7F,
+ VK_F17 = 0x80,
+ VK_F18 = 0x81,
+ VK_F19 = 0x82,
+ VK_F20 = 0x83,
+ VK_F21 = 0x84,
+ VK_F22 = 0x85,
+ VK_F23 = 0x86,
+ VK_F24 = 0x87,
+ //
+ VK_NUMLOCK = 0x90,
+ VK_SCROLL = 0x91,
+ //
+ VK_OEM_NEC_EQUAL = 0x92, // '=' key on numpad
+ //
+ VK_OEM_FJ_JISHO = 0x92, // 'Dictionary' key
+ VK_OEM_FJ_MASSHOU = 0x93, // 'Unregister word' key
+ VK_OEM_FJ_TOUROKU = 0x94, // 'Register word' key
+ VK_OEM_FJ_LOYA = 0x95, // 'Left OYAYUBI' key
+ VK_OEM_FJ_ROYA = 0x96, // 'Right OYAYUBI' key
+ //
+ VK_LSHIFT = 0xA0,
+ VK_RSHIFT = 0xA1,
+ VK_LCONTROL = 0xA2,
+ VK_RCONTROL = 0xA3,
+ VK_LMENU = 0xA4,
+ VK_RMENU = 0xA5,
+ //
+ VK_BROWSER_BACK = 0xA6,
+ VK_BROWSER_FORWARD = 0xA7,
+ VK_BROWSER_REFRESH = 0xA8,
+ VK_BROWSER_STOP = 0xA9,
+ VK_BROWSER_SEARCH = 0xAA,
+ VK_BROWSER_FAVORITES = 0xAB,
+ VK_BROWSER_HOME = 0xAC,
+ //
+ VK_VOLUME_MUTE = 0xAD,
+ VK_VOLUME_DOWN = 0xAE,
+ VK_VOLUME_UP = 0xAF,
+ VK_MEDIA_NEXT_TRACK = 0xB0,
+ VK_MEDIA_PREV_TRACK = 0xB1,
+ VK_MEDIA_STOP = 0xB2,
+ VK_MEDIA_PLAY_PAUSE = 0xB3,
+ VK_LAUNCH_MAIL = 0xB4,
+ VK_LAUNCH_MEDIA_SELECT = 0xB5,
+ VK_LAUNCH_APP1 = 0xB6,
+ VK_LAUNCH_APP2 = 0xB7,
+ //
+ VK_OEM_1 = 0xBA, // ';:' for US
+ VK_OEM_PLUS = 0xBB, // '+' any country
+ VK_OEM_COMMA = 0xBC, // ',' any country
+ VK_OEM_MINUS = 0xBD, // '-' any country
+ VK_OEM_PERIOD = 0xBE, // '.' any country
+ VK_OEM_2 = 0xBF, // '/?' for US
+ VK_OEM_3 = 0xC0, // '`~' for US
+ //
+ VK_OEM_4 = 0xDB, // '[{' for US
+ VK_OEM_5 = 0xDC, // '\|' for US
+ VK_OEM_6 = 0xDD, // ']}' for US
+ VK_OEM_7 = 0xDE, // ''"' for US
+ VK_OEM_8 = 0xDF,
+ //
+ VK_OEM_AX = 0xE1, // 'AX' key on Japanese AX kbd
+ VK_OEM_102 = 0xE2, // "<>" or "\|" on RT 102-key kbd.
+ VK_ICO_HELP = 0xE3, // Help key on ICO
+ VK_ICO_00 = 0xE4, // 00 key on ICO
+ //
+ VK_PROCESSKEY = 0xE5,
+ //
+ VK_ICO_CLEAR = 0xE6,
+ //
+ VK_PACKET = 0xE7,
+ //
+ VK_OEM_RESET = 0xE9,
+ VK_OEM_JUMP = 0xEA,
+ VK_OEM_PA1 = 0xEB,
+ VK_OEM_PA2 = 0xEC,
+ VK_OEM_PA3 = 0xED,
+ VK_OEM_WSCTRL = 0xEE,
+ VK_OEM_CUSEL = 0xEF,
+ VK_OEM_ATTN = 0xF0,
+ VK_OEM_FINISH = 0xF1,
+ VK_OEM_COPY = 0xF2,
+ VK_OEM_AUTO = 0xF3,
+ VK_OEM_ENLW = 0xF4,
+ VK_OEM_BACKTAB = 0xF5,
+ //
+ VK_ATTN = 0xF6,
+ VK_CRSEL = 0xF7,
+ VK_EXSEL = 0xF8,
+ VK_EREOF = 0xF9,
+ VK_PLAY = 0xFA,
+ VK_ZOOM = 0xFB,
+ VK_NONAME = 0xFC,
+ VK_PA1 = 0xFD,
+ VK_OEM_CLEAR = 0xFE
+ }
+ public bool Keystate(Keys key)
+ {
+ int state = GetKeyState(key);
+ if (state == -127 || state == -128)
+ {
+ return true;
+ }
+ return false;
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Program.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/Program.cs
new file mode 100644
index 0000000..999b4e9
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Program.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Security.Principal;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace AssaltCubeGameHack
+{
+ static class Program
+ {
+ ///
+ /// 해당 응용 프로그램의 주 진입점입니다.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ // 가장 첫부분
+ if (IsAdministrator() == false) // 관리자 권한으로 실행되지 않는 경우라면 ..
+ {
+ try
+ {
+ ProcessStartInfo procInfo = new ProcessStartInfo();
+ procInfo.UseShellExecute = true;
+ procInfo.FileName = Application.ExecutablePath;
+ procInfo.WorkingDirectory = Environment.CurrentDirectory;
+ procInfo.Verb = "runas";
+ Process.Start(procInfo);
+ }
+ catch (Exception ex)
+ {
+ // 사용자가 프로그램을 관리자 권한으로 실행하기를 원하지 않을 경우에 대한 처리
+ MessageBox.Show(ex.Message);
+ return;
+ }
+ }
+ else
+ { // 처음부터 프로그램은 관리자 권한으로 실행되고 있는 경우라면 ..
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Form1());
+ }
+ }
+
+ private static bool IsAdministrator()
+ {
+ WindowsIdentity identity = WindowsIdentity.GetCurrent();
+
+ if (identity != null)
+ {
+ WindowsPrincipal principal = new WindowsPrincipal(identity);
+ return principal.IsInRole(WindowsBuiltInRole.Administrator);
+ }
+
+ return false;
+ }
+ }
+}
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/AssemblyInfo.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..85166e2
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
+// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
+// 이러한 특성 값을 변경하세요.
+[assembly: AssemblyTitle("AssaltCubeGameHack")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AssaltCubeGameHack")]
+[assembly: AssemblyCopyright("Copyright © 2018")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
+// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
+// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
+[assembly: ComVisible(false)]
+
+// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
+[assembly: Guid("8e1a7a35-7b30-4edd-b762-4f45db2ee457")]
+
+// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
+//
+// 주 버전
+// 부 버전
+// 빌드 번호
+// 수정 버전
+//
+// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
+// 지정되도록 할 수 있습니다.
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.Designer.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..0c0db9f
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// 이 코드는 도구를 사용하여 생성되었습니다.
+// 런타임 버전:4.0.30319.42000
+//
+// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
+// 이러한 변경 내용이 손실됩니다.
+//
+//------------------------------------------------------------------------------
+
+namespace AssaltCubeGameHack.Properties
+{
+
+
+ ///
+ /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
+ ///
+ // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
+ // 클래스에서 자동으로 생성되었습니다.
+ // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여
+ // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AssaltCubeGameHack.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해
+ /// 현재 스레드의 CurrentUICulture 속성을 재정의합니다.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.resx b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.Designer.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..7259a91
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace AssaltCubeGameHack.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.settings b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/bin/Debug/AssaltCubeGameHack.exe.config b/AssaultCubeGameHack-master/AssaltCubeGameHack/bin/Debug/AssaltCubeGameHack.exe.config
new file mode 100644
index 0000000..016d28f
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/bin/Debug/AssaltCubeGameHack.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.Form1.resources b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.Form1.resources
new file mode 100644
index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279
GIT binary patch
literal 180
zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J
onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh
literal 0
HcmV?d00001
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.OverlayForm.resources b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.OverlayForm.resources
new file mode 100644
index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279
GIT binary patch
literal 180
zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J
onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh
literal 0
HcmV?d00001
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.Properties.Resources.resources b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.Properties.Resources.resources
new file mode 100644
index 0000000000000000000000000000000000000000..6c05a9776bd7cbae976fdcec7e3a254e93018279
GIT binary patch
literal 180
zcmX?i>is@O1_p+SK%5g?SzMBus~417oL^d$oLUTL1*ImYq!#HYR*8GxXUf^%t3Noi54ZC+|=Nl{{sjzU0bQch;FcWPxwes*e}ZIZcpqG__J
onW3ezNveT`r81^vrFkWpxv4PQgHubGfR2KJ07n-P+5+SQ04Y>DD*ylh
literal 0
HcmV?d00001
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.csproj.FileListAbsolute.txt b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..4d4201a
--- /dev/null
+++ b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/AssaltCubeGameHack.csproj.FileListAbsolute.txt
@@ -0,0 +1,31 @@
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.exe.config
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.exe
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.pdb
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csprojResolveAssemblyReference.cache
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.Form1.resources
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.Properties.Resources.resources
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csproj.GenerateResource.Cache
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csproj.CoreCompileInputs.cache
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.exe
+c:\users\최일선\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.pdb
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.exe.config
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.exe
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.pdb
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csprojResolveAssemblyReference.cache
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.Form1.resources
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.Properties.Resources.resources
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csproj.GenerateResource.Cache
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.exe
+C:\Users\Administrator\source\repos\AssaltCubeGameHack\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.pdb
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.exe.config
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.exe
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\bin\Debug\AssaltCubeGameHack.pdb
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csprojResolveAssemblyReference.cache
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.Form1.resources
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.Properties.Resources.resources
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csproj.GenerateResource.Cache
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.csproj.CoreCompileInputs.cache
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.exe
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.pdb
+C:\Users\Administrator\source\repos\AssaltCubeGameHack3\AssaltCubeGameHack\obj\Debug\AssaltCubeGameHack.OverlayForm.resources
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/AssaultCubeGameHack-master/AssaltCubeGameHack/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29