c# inject - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming

Программирование / Programming
Ищете помощи в написании программы, есть сложность в выполнении задания (в институте и т.д.), пожалуйста, спросите у нас в данном форуме и мы обязательно вам поможем. При поддержке: Рейтинг серверов самых популярных online-игр

Ответ
Опции темы
Непрочитано 17.07.2018, 22:29   #1
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) c# inject

Столкнулся с такой проблемой
Делаю лаунчер и пытаюсь чтобы при запуске клиента шёл инжект .dll и смена байт по определенном адресу
Вот инжект .dll как то сделал, но сменить при этом байты по определенному адресу не знаю как
Может ли кто-нибудь дать пример как такое можно реализовать?
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.07.2018, 02:09   #2
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# inject

Вроде нашел пример, но теперь такая ошибка
Код:
System.ComponentModel.Win32Exception: "32-разрядные процессы не могут получить доступ к 64-разрядному процессу."
вот код
 
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            Process.Start("BlackDesert64.exe", "Kirito," + "135635");
            Thread.Sleep(1500);
            string strDLLName = "steam_api64.dll";
            int processId = GetProcessId("BlackDesert64");
            if (processId >= 0)
            {
                InjectDLL(OpenProcess(2035711U, 1, processId), strDLLName);
                Thread.Sleep(500);
                Process[] processesByName = Process.GetProcessesByName("BlackDesert64");
                int processHandle = OpenProcess(0x1F0FFF, false, processesByName[0].Id);
                ReadProcessMemory(processesByName[0].MainModule.BaseAddress.ToInt64() + 43055736L, 11, processHandle);
                string hex = ConvertStringToHex("127.0.0.1");
                WriteProcessMemory(processesByName[0].MainModule.BaseAddress.ToInt64() + 43055736L, StringToByteArray(hex), processHandle);
            }
        }
 
Code: C#
 
        [DllImport("kernel32.dll")]
        public static extern bool ReadProcessMemory(int hProcess, long lpBaseAddress, byte[] buffer, int size, int lpNumberOfBytesRead);
 
Code: C#

Последний раз редактировалось Boris2105; 18.07.2018 в 02:18. Причина: ReadProcessMemory
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.07.2018, 11:19   #3
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# inject

inject dll происходит, но вот изменить байты по адресу не дает
как исправить это?
Код:
32-разрядные процессы не могут получить доступ к 64-разрядному процессу.
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.07.2018, 12:20   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# inject

Ну так видимо твоё приложение работает как 32-разрядное.
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR на форуме Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 18.07.2018, 12:30   #5
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# inject

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Ну так видимо твоё приложение работает как 32-разрядное.
а как или где это исправить?
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.07.2018, 12:52   #6
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# inject

https://docs.microsoft.com/ru-ru/vis...rget-platforms

+

bool ReadProcessMemory(Int64 hProcess, ...)
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR на форуме Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 18.07.2018, 14:39   #7
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# inject

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
https://docs.microsoft.com/ru-ru/vis...rget-platforms

+

bool ReadProcessMemory(Int64 hProcess, ...)
 
Code: C#
спасибо помогло, такой еще вопрос может просто я не заметил
но у меня он меняет ip не на 127.0.0.1 а на 127.0.0.120
почему так выходит?
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.07.2018, 15:37   #8
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# inject

Покажи WriteProcessMemory и ConvertStringToHex
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR на форуме Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 18.07.2018, 15:41   #9
Забанен за кидаловo/обман/развод

Автор темы (Топик Стартер) Re: c# inject

ConvertStringToHex:
Свернуть ↑Развернуть ↓


WriteProcessMemory:
Свернуть ↑Развернуть ↓
Boris2105 вне форума Ответить с цитированием
Непрочитано 18.07.2018, 15:45   #10
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: c# inject

Ещё StringToByteArray сбрось.

Что-то ты странное делаешь.

var addressBytes = IPAddress.Parse("127.0.0.1")
    .GetAddressBytes();
 
Code: C#
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR на форуме Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ dll inject Zubastic Курилка / Yak floor 2 02.01.2016 05:14


© 2007–2018 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 04:30. Часовой пояс GMT +3.

Вверх