Merlin

Подмена mac -адреса определённого процесса

13 сообщений в этой теме

Добрый день!

Хотелось бы узнать мнение спецов, реально ли подменить mac -адрес определённого процесса, окна игры?

Например:

Запущено 4 окна (процесса) игры, каждый процесс производит TCP -обмен с разным mac -адресом.

Через гугл реализации такого на C++ или C# не нашёл, существуют примеры, но они подменяют физический адрес всей операционной системы в целом, а не TCP обмен определённого процесса.

Был бы рад, если кто-нибудь подсказал алгоритм реализации через WinAPI.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На винде можно опуститься только до сетевого уровня.

Да и то, все равно геморра много: тебе придется перехватывать создание всех сокетов, чтобы установить им нужные параметры и делать еще кучу всякой хрени, потому что сам процесс будет работать с сокетом как с TCP, а на деле он "сырой", поэтому придется доделывать работу за него. И то это я сейчас так на глаз прикинул, не факт что получится. Скорее всего придется спускаться в ring0, но я не думаю что ты готов так далеко зайти.

Стремная тема короче, проще всего такое на линухе провернуть, там есть настоящая поддержка сырых сокетов, а не то убожество что на винде)

Либо копай под WinPcap, если свой драйвер не хочется делать. И правильно, потому что хрен ты подпишешь свой драйвер, даже проверку подписи отключить - та еще история.

Изменено пользователем uhx
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для определенного процесса только лишь эмуляцией адаптера, проще изменить для всей системы

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 минуты назад, partoftheworlD сказал:

эмуляцией адаптера

Точняк.

Что-то у меня мания на хуки.

Хотя как он заставит процессы использовать виртуальный адаптер? 

Изменено пользователем uhx
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
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)

 

Изменено пользователем partoftheworlD
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, partoftheworlD сказал:

Можешь в игре/программе поискать функцию getsockopt, она получает мак адрес адаптера и подменить его на уровне игры.

Спасибо, я уже и сам начал к этому склоняться, похоже, что для винды это единственно приемлемый вариант.

Тему наверное можно закрывать или оставить ещё на пару дней, вдруг ещё кто, что предложит.

 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 минут назад, partoftheworlD сказал:

AF_IPX

А при чем тут AF_IPX? TCP этож AF_INET, и Ethernet хедер в таком случае формируется в ядре, а не в игре. Я же сказал: на винде в ring3 ты не сможешь никак изменить Ethernet-хедер, поэтому ставить хуки в игре некуда, чтобы подменить мак. Только ядро.

Изменено пользователем uhx
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
31 минуту назад, uhx сказал:

А при чем тут AF_IPX?

Так скопировалось

 

Картинки по запросу copypasta

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, partoftheworlD сказал:

Так скопировалось

Ну в любом случае, это не прокатит.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, uhx сказал:

Ну в любом случае, это не прокатит.

Почему?

И ещё вопрос: Как найти значение mac -адреса через CheatEngine?

Чего-то никак не получается...

Изменено пользователем Merlin
раньше времени задел энтер
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Merlin сказал:

Почему?

И ещ

Мне еще раз повторить, что в винде можно опуститься только до сетевого уровня?

39 минут назад, uhx сказал:

Ethernet хедер в таком случае формируется в ядре

 

39 минут назад, uhx сказал:

Я же сказал: на винде в ring3 ты не сможешь никак изменить Ethernet-хедер, поэтому ставить хуки в игре некуда

 

1 час назад, uhx сказал:

На винде можно опуститься только до сетевого уровня

Хммм... Почему же нельзя подменить мак на винде через юзермод?? Надо подумать. Кажется, uhx на что-то намекает.

a02cf86cda2b372dc8e6518ac794b5b1.jpeg

Изменено пользователем uhx
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, Merlin сказал:

Как найти значение mac -адреса через CheatEngine?

Ты не пробиваем))

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, uhx сказал:

Ты не пробиваем))

псто когда писал ещё не видел твой пост про юсер мод -_-

Изменено пользователем Merlin
забыл приставку не
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас