Трейнер - C#

Узнай цену своей работы

Формулировка задачи:

Написал трейнер для игры Tony Hawk's Undeground 2 (THUG 2), но я то написал, а сам нормально не понял в чём польза от этого трейнера Объясню: Писал я по видео уроку, и по этому полностью не понял смысл Не нужно мне расписывать весь код, а только - как с помощью него изменить данные в игре (точнее взломать игру)? Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        [DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
 
        [DllImport("kernel32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool CloseHandle(IntPtr hObject);
 
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out UIntPtr lpNumberOfBytesWritten);
 
        public int pID;
 
        public Form1()
        {
            InitializeComponent();
            GetProcess("THUG2");
            WriteBytes();
        }
 
        public void GetProcess(string name)
        {
        var pList = Process.GetProcesses();
 
            if (pList.Count() != 0)
            {
                foreach (var process in pList)
                {
                    if (process.ProcessName == name)
                    {
                        pID = process.Id;
                        MessageBox.Show("Процесс игры найден!");
                        return;
                    }
                }
            }
            return;
        }
 
        public void WriteBytes()
        {
            var scoreAddress = 0x137C54C;
            byte[] scoreBytes = { 0x00, 0x00, 0x00, 0x00 };
            var size = 4;
            var dummy = new UIntPtr();
            var handle = OpenProcess(0x001F0FFF, false, pID);
            WriteProcessMemory(handle, (IntPtr)scoreAddress, scoreBytes, (uint)size, out dummy);
            CloseHandle(handle);
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
    }
}

Решение задачи: «Трейнер»

textual
Листинг программы
int* p1, p2, p3;   // Ok
int *p1, *p2, *p3;   // Invalid in C#

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5