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