Merlin Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 Добрый день! Хотелось бы узнать мнение спецов, реально ли подменить mac -адрес определённого процесса, окна игры? Например: Запущено 4 окна (процесса) игры, каждый процесс производит TCP -обмен с разным mac -адресом. Через гугл реализации такого на C++ или C# не нашёл, существуют примеры, но они подменяют физический адрес всей операционной системы в целом, а не TCP обмен определённого процесса. Был бы рад, если кто-нибудь подсказал алгоритм реализации через WinAPI. Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 (изменено) На винде можно опуститься только до сетевого уровня. Да и то, все равно геморра много: тебе придется перехватывать создание всех сокетов, чтобы установить им нужные параметры и делать еще кучу всякой хрени, потому что сам процесс будет работать с сокетом как с TCP, а на деле он "сырой", поэтому придется доделывать работу за него. И то это я сейчас так на глаз прикинул, не факт что получится. Скорее всего придется спускаться в ring0, но я не думаю что ты готов так далеко зайти. Стремная тема короче, проще всего такое на линухе провернуть, там есть настоящая поддержка сырых сокетов, а не то убожество что на винде) Либо копай под WinPcap, если свой драйвер не хочется делать. И правильно, потому что хрен ты подпишешь свой драйвер, даже проверку подписи отключить - та еще история. Изменено 25 июля, 2017 пользователем uhx Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 Для определенного процесса только лишь эмуляцией адаптера, проще изменить для всей системы Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 (изменено) 12 минуты назад, partoftheworlD сказал: эмуляцией адаптера Точняк. Что-то у меня мания на хуки. Хотя как он заставит процессы использовать виртуальный адаптер? Изменено 25 июля, 2017 пользователем uhx Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 (изменено) 16 минут назад, uhx сказал: Хотя как он заставит процессы использовать виртуальный адаптер? На винде точно не скажу, вроде бы никак, но можно будет адаптер использовать как мост между подключениями. Как сделано это у виртуальных машин, например VMMare Можешь в игре/программе поискать функцию getsockopt, она получает мак адрес адаптера(переменная Data) и подменить его на уровне игры. skNum=socket(AF_IPX,SOCK_DGRAM,NSPROTO_IPX) ... Data.adapternum=i-1; iOpt=sizeof(Data); getsockopt(skNum,NSPROTO_IPX,IPX_ADDRESS,reinterpret_cast<char*>(&Data),&iOpt) Изменено 25 июля, 2017 пользователем partoftheworlD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Merlin Опубликовано 25 июля, 2017 Автор Поделиться Опубликовано 25 июля, 2017 7 минут назад, partoftheworlD сказал: Можешь в игре/программе поискать функцию getsockopt, она получает мак адрес адаптера и подменить его на уровне игры. Спасибо, я уже и сам начал к этому склоняться, похоже, что для винды это единственно приемлемый вариант. Тему наверное можно закрывать или оставить ещё на пару дней, вдруг ещё кто, что предложит. Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 (изменено) 19 минут назад, partoftheworlD сказал: AF_IPX А при чем тут AF_IPX? TCP этож AF_INET, и Ethernet хедер в таком случае формируется в ядре, а не в игре. Я же сказал: на винде в ring3 ты не сможешь никак изменить Ethernet-хедер, поэтому ставить хуки в игре некуда, чтобы подменить мак. Только ядро. Изменено 25 июля, 2017 пользователем uhx Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 31 минуту назад, uhx сказал: А при чем тут AF_IPX? Так скопировалось Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 Только что, partoftheworlD сказал: Так скопировалось Ну в любом случае, это не прокатит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Merlin Опубликовано 25 июля, 2017 Автор Поделиться Опубликовано 25 июля, 2017 (изменено) 1 минуту назад, uhx сказал: Ну в любом случае, это не прокатит. Почему? И ещё вопрос: Как найти значение mac -адреса через CheatEngine? Чего-то никак не получается... Изменено 25 июля, 2017 пользователем Merlin раньше времени задел энтер Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 (изменено) 5 минут назад, Merlin сказал: Почему? И ещ Мне еще раз повторить, что в винде можно опуститься только до сетевого уровня? 39 минут назад, uhx сказал: Ethernet хедер в таком случае формируется в ядре 39 минут назад, uhx сказал: Я же сказал: на винде в ring3 ты не сможешь никак изменить Ethernet-хедер, поэтому ставить хуки в игре некуда 1 час назад, uhx сказал: На винде можно опуститься только до сетевого уровня Хммм... Почему же нельзя подменить мак на винде через юзермод?? Надо подумать. Кажется, uhx на что-то намекает. Изменено 25 июля, 2017 пользователем uhx Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 25 июля, 2017 Поделиться Опубликовано 25 июля, 2017 7 минут назад, Merlin сказал: Как найти значение mac -адреса через CheatEngine? Ты не пробиваем)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Merlin Опубликовано 25 июля, 2017 Автор Поделиться Опубликовано 25 июля, 2017 (изменено) 2 минуты назад, uhx сказал: Ты не пробиваем)) псто когда писал ещё не видел твой пост про юсер мод Изменено 25 июля, 2017 пользователем Merlin забыл приставку не Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения