Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Создаем читы на сишарп (C#)

-

Разработка ПО для Point Blank

- Бюро разработчиков Zhyk.Ru: создание чит-программ и прочего ПО для Point Blank

Результаты опроса: Пригодилась ли вам данная тема?
Да 45 24.32%
Да[х2] 5 2.70%
Да[х3] 73 39.46%
Нет 62 33.51%
Голосовавшие: 185. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы
Старый 08.04.2012, 17:52   #1
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Создаем читы на сишарп (C#)

Создание трейнера на c#

Добрый день всем!

В этой статье я расскажу как сделать Трейнер на C#
[*]Что нам потребуется:
- Microsoft Visual Studio 2010 (Гуглим) Несколько моих вариантов:
- Желание

Обновление 28,04,2012:

Скрины не работают, ну и ладно с ними, скачиваем тестовый архив. Там все сделано.
И так, 4game переименовали процесс пб в PointBlank.exe.exe , что предотвращает поиск процесса по имени (т.к ".exe" считается как расширение, а не название. Короче работать такой принцип не будет.
Самым подходящим вариантом на мой взгляд - подключение к процессу по идентификатору. (есть еще способы, но это самый такой простой и быстрый. Более изощренные методы оставим на потом и в случае фикса такого метода, будем использовать другой
И так, делаем этот поиск по ид.
Добавляем на нашу форму combobox (выпадающий список грубо говоря).
Щелкаем по произвольной зоне формы (свободной от элементов) - делаем действие при открытии формы.
И в открывшемся окне вставляем:
Код:
foreach (Process eProcess in Process.GetProcesses())
            {
                combobox1.Items.Add(eProcess.Id.ToString() + " - " + eProcess.ProcessName);
            }
затем нап потребуется либо постоянно обновляемая функция (с помощью таймера) либо нажатие на кнопку. Короче кидаем на форму кнопку и щелкаем по ней два раза. В открывшемся окошке вставляем:
Код:
string lstbox = combobox1.SelectedItem.ToString();
int ProcessID = int.Parse(combobox1.Remove(combobox1.LastIndexOf(" - ")));
Нужно вынести переменную int ProcessID; в глобальные.

А лучше просто перекачайте архивы с вложения и будет ок (писать много - занят)
--------------------------------------------------------------------------

Если будет что то непонятное, пишем мне в ICQ или ЛС/или Здесь, но глупые вопросы просьба не задавать

Удачных экспериментов.


for objaa,

зы, Свой трейнер обновлю со дня/на день. Просто очень занят был + модерирование занимает время. Короче скоро все будет
Вложения
Тип файла: rar TestTreiner.rar (15.1 Кб, 311 просмотров)
________________


Последний раз редактировалось Skilful; 29.04.2012 в 17:32.
  Ответить с цитированием
8 пользователя(ей) сказали cпасибо:
<<AbsurD>> (27.04.2012), BLACK_DEAD (29.04.2012), GM!ZaDroT (08.04.2012), maSter™ (28.04.2012), revi994 (08.04.2012), stalkerokk (08.04.2012), the-boxi (15.04.2012), warl0ck (08.04.2012)
Старый 08.04.2012, 18:22   #2
 Разведчик
Аватар для GM!ZaDroT
 
GM!ZaDroT неизвестен в этих краяхGM!ZaDroT неизвестен в этих краяхGM!ZaDroT неизвестен в этих краях
Регистрация: 03.04.2012
Сообщений: 7
Популярность: -257
Сказал(а) спасибо: 14
Поблагодарили 7 раз(а) в 7 сообщениях
 
По умолчанию Re: Создаем читы на сишарп (C#)

Действительно интересно...
Спасибо за гайд.
Щас буду что то мутить!

Я хотел спросить на сишарпе можно вставить текстуру и делать на будон 1 ????
  Ответить с цитированием
Старый 08.04.2012, 18:34   #3
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от GM!ZaDroTПосмотреть сообщение
Действительно интересно...
Спасибо за гайд.
Щас буду что то мутить!

Я хотел спросить на сишарпе можно вставить текстуру и делать на будон 1 ????

Нет, на си шапре работа с текстурами нереальна. Есть на делфи
________________

  Ответить с цитированием
Старый 08.04.2012, 21:56   #4
 Пехотинец
Аватар для revi994
 
revi994 никому не известный тип
Регистрация: 23.05.2010
Сообщений: 55
Популярность: 1
Сказал(а) спасибо: 67
Поблагодарили 112 раз(а) в 34 сообщениях
Отправить сообщение для revi994 с помощью ICQ Отправить сообщение для revi994 с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Слушай, как сделать допустим дамаг или любую другую?
Мне без разницы какую функцию просто хочу понять как добавить.
________________
Я та-а-к быстро вспомнил о чем забыл, что забыл о чём вспомнил
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось revi994; 08.04.2012 в 22:07.
  Ответить с цитированием
Старый 08.04.2012, 22:59   #5
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Создаем читы на сишарп (C#)

тема полезная, надеюсь автор будет ее развивать.

вот исходник vamemory, полезно будет пролистать...
Код:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;

namespace Cheat
{
    internal class Memory
    {
        [DllImport("kernel32.dll")]
        private static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize,
                                                      uint lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")]
        private static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, int dwProcessId);

        [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
        private static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize,
                                                    uint flAllocationType, uint flProtect);

        [DllImport("kernel32.dll")]
        private static extern bool VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress, UIntPtr dwSize, uint flNewProtect,
                                                    out uint lpflOldProtect);
        [DllImport("kernel32.dll", SetLastError = true)]
        private static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint dwSize,
                                                     uint lpNumberOfBytesRead);
        public static IntPtr baseAddress;
        public static bool debugMode = false;
        public static Process[] mainProcess;
        public static IntPtr processHandle;
        public static ProcessModule processModule;
        public static string processName = "PointBlank";

        public static bool CheckProcess()
        {
            if (processName != null)
            {
                mainProcess = Process.GetProcessesByName(processName);
                if (mainProcess.Length == 0)
                {
                    ErrorProcessNotFound(processName);
                    return false;
                }
                processHandle = OpenProcess(0x1f0fff, false, mainProcess[0].Id);
                if (processHandle == IntPtr.Zero)
                {
                    ErrorProcessNotFound(processName);
                    return false;
                }
                return true;
            }
            MessageBox.Show("Programmer, define process name first!");
            return false;
        }

        [DllImport("kernel32.dll")]
        public static extern bool CloseHandle(IntPtr hObject);

        public static void ErrorProcessNotFound(string pProcessName)
        {
            MessageBox.Show(processName + " is not running or has not been found. Please check and try again",
                            "Process Not Found", MessageBoxButtons.OK, MessageBoxIcon.Hand);
        }

        public bool ReadBoolean(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToBoolean(ReadByteArray(pOffset, 1), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadByte" + exception.ToString());
                }
                return false;
            }
        }

        public byte ReadByte(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return ReadByteArray(pOffset, 1)[0];
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadByte" + exception.ToString());
                }
                return 0;
            }
        }

        public byte[] ReadByteArray(IntPtr pOffset, uint pSize)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                uint num;
                VirtualProtectEx(processHandle, pOffset, (UIntPtr) pSize, 4, out num);
                byte[] lpBuffer = new byte[pSize];
                ReadProcessMemory(processHandle, pOffset, lpBuffer, pSize, 0);
                VirtualProtectEx(processHandle, pOffset, (UIntPtr) pSize, num, out num);
                return lpBuffer;
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadByteArray" + exception.ToString());
                }
                return new byte[1];
            }
        }

        public char ReadChar(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToChar(ReadByteArray(pOffset, 1), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadChar" + exception.ToString());
                }
                return ' ';
            }
        }

        public double ReadDouble(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToDouble(ReadByteArray(pOffset, 8), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadDouble" + exception.ToString());
                }
                return 0.0;
            }
        }

        public float ReadFloat(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToSingle(ReadByteArray(pOffset, 4), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadFloat" + exception.ToString());
                }
                return 0f;
            }
        }

        public short ReadInt16(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToInt16(ReadByteArray(pOffset, 2), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadInt16" + exception.ToString());
                }
                return 0;
            }
        }

        public int ReadInt32(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToInt32(ReadByteArray(pOffset, 4), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadInt32" + exception.ToString());
                }
                return 0;
            }
        }

        public long ReadInt64(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToInt64(ReadByteArray(pOffset, 8), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadInt64" + exception.ToString());
                }
                return 0L;
            }
        }

        public int ReadInteger(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToInt32(ReadByteArray(pOffset, 4), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadInteger" + exception.ToString());
                }
                return 0;
            }
        }

        public long ReadLong(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToInt64(ReadByteArray(pOffset, 8), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadLong" + exception.ToString());
                }
                return 0L;
            }
        }

        public short ReadShort(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToInt16(ReadByteArray(pOffset, 2), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadInt16" + exception.ToString());
                }
                return 0;
            }
        }

        public string ReadStringASCII(IntPtr pOffset, uint pSize)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return Encoding.ASCII.GetString(ReadByteArray(pOffset, pSize), 0, (int) pSize);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadStringASCII" + exception.ToString());
                }
                return "";
            }
        }

        public string ReadStringUnicode(IntPtr pOffset, uint pSize)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return Encoding.Unicode.GetString(ReadByteArray(pOffset, pSize), 0, (int) pSize);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadStringUnicode" + exception.ToString());
                }
                return "";
            }
        }

        public ushort ReadUInt16(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToUInt16(ReadByteArray(pOffset, 2), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadUInt16" + exception.ToString());
                }
                return 0;
            }
        }

        public uint ReadUInt32(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToUInt32(ReadByteArray(pOffset, 4), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadUInt32" + exception.ToString());
                }
                return 0;
            }
        }

        public ulong ReadUInt64(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToUInt64(ReadByteArray(pOffset, 8), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadUInt64" + exception.ToString());
                }
                return 0L;
            }
        }

        public uint ReadUInteger(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToUInt32(ReadByteArray(pOffset, 4), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadUInteger" + exception.ToString());
                }
                return 0;
            }
        }

        public long ReadULong(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return (long) BitConverter.ToUInt64(ReadByteArray(pOffset, 8), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadULong" + exception.ToString());
                }
                return 0L;
            }
        }

        public ushort ReadUShort(IntPtr pOffset)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return BitConverter.ToUInt16(ReadByteArray(pOffset, 2), 0);
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: ReadUShort" + exception.ToString());
                }
                return 0;
            }
        }

        public bool WriteBoolean(IntPtr pOffset, bool pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteBoolean" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteByte(IntPtr pOffset, byte pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes((short) pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteByte" + exception.ToString());
                }
                return false;
            }
        }

        public static bool WriteByteArray(IntPtr pOffset, byte[] pBytes)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                uint num;
                VirtualProtectEx(processHandle, pOffset, (UIntPtr) pBytes.Length, 4, out num);
                bool flag = WriteProcessMemory(processHandle, pOffset, pBytes, (uint) pBytes.Length, 0);
                VirtualProtectEx(processHandle, pOffset, (UIntPtr) pBytes.Length, num, out num);
                return flag;
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteByteArray" + exception.ToString());
                }
                return false;
            }
        }

         public bool WriteChar(IntPtr pOffset, char pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteChar" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteDouble(IntPtr pOffset, double pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteDouble" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteFloat(IntPtr pOffset, float pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteFloat" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteInt16(IntPtr pOffset, short pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteInt16" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteInt32(IntPtr pOffset, int pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteInt32" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteInt64(IntPtr pOffset, long pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteInt64" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteInteger(IntPtr pOffset, int pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteInt" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteLong(IntPtr pOffset, long pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteLong" + exception.ToString());
                }
                return false;
            }
        }*/

        /*
        public bool WriteShort(IntPtr pOffset, short pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteShort" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteStringASCII(IntPtr pOffset, string pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, Encoding.ASCII.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteStringASCII" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteStringUnicode(IntPtr pOffset, string pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, Encoding.Unicode.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteStringUnicode" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteUInt16(IntPtr pOffset, ushort pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteUInt16" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteUInt32(IntPtr pOffset, uint pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteUInt32" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteUInt64(IntPtr pOffset, ulong pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteUInt64" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteUInteger(IntPtr pOffset, uint pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteUInt" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteULong(IntPtr pOffset, ulong pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteULong" + exception.ToString());
                }
                return false;
            }
        }

        public bool WriteUShort(IntPtr pOffset, ushort pData)
        {
            if (processHandle == IntPtr.Zero)
            {
                CheckProcess();
            }
            try
            {
                return WriteByteArray(pOffset, BitConverter.GetBytes(pData));
            }
            catch (Exception exception)
            {
                if (debugMode)
                {
                    Console.WriteLine("Error: WriteShort" + exception.ToString());
                }
                return false;
            }
        }

        // Properties
        public long getBaseAddress
        {
            get
            {
                baseAddress = IntPtr.Zero;
                processModule = mainProcess[0].MainModule;
                baseAddress = processModule.BaseAddress;
                return (long) baseAddress;
            }
        }

        // Nested Types
        [Flags]
        private enum ProcessAccessFlags : uint
        {
            All = 0x1f0fff,
            CreateThread = 2,
            DupHandle = 0x40,
            QueryInformation = 0x400,
            SetInformation = 0x200,
            Synchronize = 0x100000,
            Terminate = 1,
            VMOperation = 8,
            VMRead = 0x10,
            VMWrite = 0x20
        }

        private enum VirtualMemoryProtection : uint
        {
            PAGE_EXECUTE = 0x10,
            PAGE_EXECUTE_READ = 0x20,
            PAGE_EXECUTE_READWRITE = 0x40,
            PAGE_EXECUTE_WRITECOPY = 0x80,
            PAGE_GUARD = 0x100,
            PAGE_NOACCESS = 1,
            PAGE_NOCACHE = 0x200,
            PAGE_READONLY = 2,
            PAGE_READWRITE = 4,
            PAGE_WRITECOPY = 8,
            PROCESS_ALL_ACCESS = 0x1f0fff
        }

    }
}
пример:
Код:
                   private void eButton1_Click(object sender, EventArgs e)
        {
            int num = 0x5c1003;
            int num2 = 0x5c1027;
            int num3 = 0x5c10b7;
            byte[] pBytes = new byte[] { 0xeb };
            byte[] buffer2 = new byte[] { 0xeb };
            byte[] buffer3 = new byte[] { 0x90, 0x90 };
            Memory.WriteByteArray((IntPtr)num, pBytes);
            Memory.WriteByteArray((IntPtr)num2, buffer2);
            Memory.WriteByteArray((IntPtr)num3, buffer3);

        }
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
крайслер (09.04.2012), Skilful (08.04.2012)
Старый 08.04.2012, 23:17   #6
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от revi994Посмотреть сообщение
Слушай, как сделать допустим дамаг или любую другую?
Мне без разницы какую функцию просто хочу понять как добавить.

О.о сразу дамаг давай
Все функции которые работают на асме - можно переделать, что бы работало здесь.
(Как мне подсказал один посон) Нужно в IDA PRO (когда нашел нужный адрес) перейти в Hex режим, а потом выписываешь нужный аррай байт (на котором установлен курсор) и вставляешь в эту функцию (сам адрес тоже).
________________

  Ответить с цитированием
Старый 09.04.2012, 12:15   #7
 Пехотинец
Аватар для revi994
 
revi994 никому не известный тип
Регистрация: 23.05.2010
Сообщений: 55
Популярность: 1
Сказал(а) спасибо: 67
Поблагодарили 112 раз(а) в 34 сообщениях
Отправить сообщение для revi994 с помощью ICQ Отправить сообщение для revi994 с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Мне пофиг какую функцию,
Можешь хотябы написать как сделать(если можно код< без адресов а просто написать куда вставить и что)
Вот допустим ультра нож http://zhyk.ru/forum/showthread.php?t=401260
Как его добавить в программу чтоб нажал кнопку и у тебя в игре ультра нож?
За ранее спс.
________________
Я та-а-к быстро вспомнил о чем забыл, что забыл о чём вспомнил
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось revi994; 09.04.2012 в 12:25.
  Ответить с цитированием
Старый 09.04.2012, 12:39   #8
Заблокирован
 Рыцарь-лейтенант
Аватар для RChesteR
 
RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(RChesteR сломал счётчик популярности :(
Регистрация: 13.02.2011
Сообщений: 422
Популярность: 13168
Золото Zhyk.Ru: 10
Сказал(а) спасибо: 643
Поблагодарили 733 раз(а) в 369 сообщениях
Отправить сообщение для RChesteR с помощью ICQ Отправить сообщение для RChesteR с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от MathersПосмотреть сообщение
Нет, на си шапре работа с текстурами нереальна. Есть на делфи

Думаю он имел в виду.аля ховер.
Ховер можно вставитб думаю
  Ответить с цитированием
Старый 09.04.2012, 13:44   #9
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от revi994Посмотреть сообщение
Мне пофиг какую функцию,
Можешь хотябы написать как сделать(если можно код< без адресов а просто написать куда вставить и что)
Вот допустим ультра нож http://zhyk.ru/forum/showthread.php?t=401260
Как его добавить в программу чтоб нажал кнопку и у тебя в игре ультра нож?
За ранее спс.

там ассемблерный код же
  Ответить с цитированием
Старый 09.04.2012, 14:09   #10
 Пехотинец
Аватар для revi994
 
revi994 никому не известный тип
Регистрация: 23.05.2010
Сообщений: 55
Популярность: 1
Сказал(а) спасибо: 67
Поблагодарили 112 раз(а) в 34 сообщениях
Отправить сообщение для revi994 с помощью ICQ Отправить сообщение для revi994 с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Ну вот я хочу узнать можно ли такое замутить если да то как?
________________
Я та-а-к быстро вспомнил о чем забыл, что забыл о чём вспомнил
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 09.04.2012, 14:14   #11
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от revi994Посмотреть сообщение
Ну вот я хочу узнать можно ли такое замутить если да то как?

ассемблер на шарпе:
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

но в гайде приведен пример не чита в длл а в виде полноценного приложения.ехе, те память будет изменяться не в игре а в вашей программе(если вставить ассемблерный код с другой темы). придёться писать отдельные дллки на ассемблере и с помощью трейнера инжектить в игру, имхо оно того не стоит

Последний раз редактировалось warl0ck; 09.04.2012 в 14:19.
  Ответить с цитированием
Старый 09.04.2012, 15:08   #12
 Пехотинец
Аватар для revi994
 
revi994 никому не известный тип
Регистрация: 23.05.2010
Сообщений: 55
Популярность: 1
Сказал(а) спасибо: 67
Поблагодарили 112 раз(а) в 34 сообщениях
Отправить сообщение для revi994 с помощью ICQ Отправить сообщение для revi994 с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

А через vamemory можно?
Видел BassBoy вроде так, сделал трейнер.
Подскажите как?
________________
Я та-а-к быстро вспомнил о чем забыл, что забыл о чём вспомнил
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 09.04.2012, 15:24   #13
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от revi994Посмотреть сообщение
А через vamemory можно?
Видел BassBoy вроде так, сделал трейнер.
Подскажите как?

и пример же кинул, с vamemory
  Ответить с цитированием
Старый 09.04.2012, 16:57   #14
,,,,
 Командор
Аватар для Skilful
 
Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(Skilful сломал счётчик популярности :(
Регистрация: 08.05.2011
Сообщений: 752
Популярность: 18860
Золото Zhyk.Ru: 8
Сказал(а) спасибо: 383
Поблагодарили 1,069 раз(а) в 448 сообщениях
Отправить сообщение для Skilful с помощью ICQ Отправить сообщение для Skilful с помощью Skype™
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от revi994Посмотреть сообщение
А через vamemory можно?
Видел BassBoy вроде так, сделал трейнер.
Подскажите как?

Тебе же несколько раз сказали, что Функции на асме - нужно переделывать.
Как и что (в словесной фореме) - я тебе написал в прошлом посту. Гайд об этом не буду делать, т.к Если это сделать - начнется создание однотипных трейнеров.
Кстати, бассбой переделывал функции (с асм на такую). Что тебе еще нужно?
Мб ты хочешь полностью исходник трейнера получить? Нет.. В 1 посту написан пример, тебе осталось только найти адрес + аррай байт (на какой править) и все. А это все ты должен делать сам.
________________

  Ответить с цитированием
Старый 09.04.2012, 17:04   #15
Заблокирован
 Рыцарь-капитан
Аватар для warl0ck
 
warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(warl0ck сломал счётчик популярности :(
Регистрация: 29.01.2010
Сообщений: 547
Популярность: 41279
Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
 
По умолчанию Re: Создаем читы на сишарп (C#)

Цитата:
Сообщение от MathersПосмотреть сообщение
Если это сделать - начнется создание однотипных трейнеров.

я уверен, если кто-то и начнет писать трейнер на шарпе с использованием ассемблерного байт-кода то у него отпадёт желание писать читы навсегда

//obj: лучший коммент в теме, красавчик
//over:

Последний раз редактировалось Skilful; 14.04.2012 в 22:02.
  Ответить с цитированием
Пользователь сказал cпасибо:
object (14.04.2012)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Услуги] ### Создаем ICQ чаты ### Cerber1993 Товары/услуги в Сети 0 14.11.2010 21:47

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 20:57.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net