NiOl
07-07-2019, 19:13
Итак. сегодня как обычно пятница. 13е. ибо нефиг было вытаскивать меня на работу в воскресенье, тем более, когда с туч стекает конденсат.
Что бы как-то поправить настроение, было решено подшутить над ребятами из техподдержки, а если повезет - над сетевиками, которые иногда заглядывают в наш кабинет в обеденный перерывчик почесать языком.
Для шутки расположил "перехватчик" в сторонку, на самом видном месте безобидный батничек (в корень диска С:), и линк на него в автозагрузку.
http://forum.oszone.net/attachment.php?attachmentid=158051&stc=1&d=1562515866
Предлагаю всем желающим на себе опробовать шутку окошка с фальшивым Пингом (предупреждаю, шутка злая, можно схлопотать):
На рабочем столе открыто окошко с пингом яндекса, судя по которому с иНетом что-то неладное. :)
думаете сработает? Маловероятно.
Ведь если "сетевик" не поверит, закроет ваше окошко и сам наберет команду?
Понятное дело, 99%, что результат не будет совпадать с тем что было в окошке, на чем "первая часть Марлезонского балета" будет окончена.
Забегая вперед скажу, если пинг запустить через "Win + R", то шутка не прокатит, тестил по win 7 и win 10.
Но линк в автозапуске остался и есть вероятность, что кто-нибудь сунет любопытный нос внутрь батника. Вот на это "закладка" и рассчитана. Ибо внутри будет всего лишь "ping ya.ru -t"
В данном случае мы переходим ко "второй части Марлезонского балета", т.е. "спецы" запускают CMD, где обращения к родному пингеру успешно перехватываются нашим пингером :biggrin:
Как это происходит?
Запуск под CMD выполняется просто:
Сначала указанная программа ищется в текущем каталоге, потом во всех каталогах, описанных в переменной PATH. Первым (обычно) по-умолчанию там указан каталог "C:\Windows\system32" , где и находится родной пингер, Вот перед ним переносим с конца переменной каталог, добавленный какой-нибудь установленной программой. Мне ничего делать не пришлось, т.к. Java уже добавила свой каталог в начало переменной PATH.
Все, что остается сделать - положить фальшивый пингер в каталог, первым описанный в переменной PATH.
Теперь, если при запуске пинга расширение не было указано (а есть такие, кто пишет ping.exe , а не просто ping ?), то для CMD сгодится не только ping.exe, но и ping.cmd
Но полностью реализовать функционал пингера - жесть, поэтому обойдемся перехватом 2х вариантов ключей: "ya.ru -t" и "8.8.8.8 -t". Обычно этого достаточно. Можно еще добавить "mail.ru".
В остальных случаях должен выполнятся настоящий пингер, (если и он не перехвачен до нас).
* Благодаря подобному перехвату можно смело самому, на глазах у "сетевика" запустить CMD и набрать нужную кодовую фразу. Если не побъют, то веселье гарантировано.
В фальшивом режиме батник будет генерить левые задержки и 3 вида проблем:
1. Неприлично большие пинги
2. "Превышен интервал ожидания для запроса"
3. "Заданный узел недоступен"
В моем случае веселье ожидается двойное, ибо иНет на компе есть, но пинги наружу вообще идти не должны - стоит "синий плащ".
зы: Представил себе "шутник, левел мэднес": запустить пингер на компе во внутренней сети ))) Но тут реально жесть, ибо безопасники иногда просматривают скриншоты, которые периодически делаются по всем компам изолированной сети. Типо листает чел картинки, "порнуха, порнуха, порнуха, пинги, порнуха, порнуха.... ПИНГИ?!!!" :o
@echo off
setlocal EnableExtensions
rem Bad Joke / NiOl
set MinTime=15
set DefMask=7
set s=
:getPrm
set p=%1
shift
set s=%s%%p%
if "%p%"=="-t" set c1=Y
if "%p%"=="ya.ru" set c2=es& set t1=87.250.250.242&set t2=ya.ru [87.250.250.242]
if "%p%"=="8.8.8.8" set c2=es& set t1=8.8.8.8&set t2=8.8.8.8
if not "%p%"=="" Goto :getPrm
if "%c1%%c2%"=="Yes" Goto :Rumble
ping.exe %s%
exit %errorlevel%
:Rumble
title C:\Windows\system32\ping.exe %s%
rem echo C:\^>ping %s%
set IP=127.0.0.1
for /f "tokens=4" %%M in ('route print^|findstr /c:" 0.0.0.0 "') do call :getIP %%M
call :prn 2 Обмен пакетами с %t2% с 32 байтами данных:
:norm
set /a "TC=4+%random%/2000"
set Msk=%DefMask%&set Time=%MinTime%&set Ps=2
:funPing
set /a QoS=%random%
set /a "Err=%QoS% & 63"
if /i %Err% gtr 62 Call :prn 5 Ответ от %IP%: Заданный узел недоступен.&Goto :Troubles
if /i %Err% gtr 50 Call :prn 5 Превышен интервал ожидания для запроса.&Goto :Troubles
if /i %Err% lss 54 Goto :skip
if not %TC%==0 Goto :skip
:Troubles
set /a TC=1+%random%/8000
set "Msk=2047"&set "Ps=3"&set "Time=300"
:skip
if %TC%==0 Goto :ping
set /a TC-=1
if %TC%==0 Goto :norm
:ping
set /a "t=%Time% + (%QoS% & %Msk%)"
call :prn %Ps% Ответ от %t1%: число байт=32 время %t%мс TTL=63
Goto :funPing
:prn
set s=
ping.exe 127.0.0.1 -n %1 >nul
:prn1
shift
set p=%1
set s=%s%%p%
if not "%p%"=="" Goto :prn1
echo %s%
exit /b
:getIP
set p=%1
set s=%p:.=%
:getIPwo0
if "%s:~0,1%"=="0" set "s=%s:~1%"&Goto :getIPwo0
set /a s1=s
if "%s%"=="%s1%" set IP=%p%
exit /b
Что бы как-то поправить настроение, было решено подшутить над ребятами из техподдержки, а если повезет - над сетевиками, которые иногда заглядывают в наш кабинет в обеденный перерывчик почесать языком.
Для шутки расположил "перехватчик" в сторонку, на самом видном месте безобидный батничек (в корень диска С:), и линк на него в автозагрузку.
http://forum.oszone.net/attachment.php?attachmentid=158051&stc=1&d=1562515866
Предлагаю всем желающим на себе опробовать шутку окошка с фальшивым Пингом (предупреждаю, шутка злая, можно схлопотать):
На рабочем столе открыто окошко с пингом яндекса, судя по которому с иНетом что-то неладное. :)
думаете сработает? Маловероятно.
Ведь если "сетевик" не поверит, закроет ваше окошко и сам наберет команду?
Понятное дело, 99%, что результат не будет совпадать с тем что было в окошке, на чем "первая часть Марлезонского балета" будет окончена.
Забегая вперед скажу, если пинг запустить через "Win + R", то шутка не прокатит, тестил по win 7 и win 10.
Но линк в автозапуске остался и есть вероятность, что кто-нибудь сунет любопытный нос внутрь батника. Вот на это "закладка" и рассчитана. Ибо внутри будет всего лишь "ping ya.ru -t"
В данном случае мы переходим ко "второй части Марлезонского балета", т.е. "спецы" запускают CMD, где обращения к родному пингеру успешно перехватываются нашим пингером :biggrin:
Как это происходит?
Запуск под CMD выполняется просто:
Сначала указанная программа ищется в текущем каталоге, потом во всех каталогах, описанных в переменной PATH. Первым (обычно) по-умолчанию там указан каталог "C:\Windows\system32" , где и находится родной пингер, Вот перед ним переносим с конца переменной каталог, добавленный какой-нибудь установленной программой. Мне ничего делать не пришлось, т.к. Java уже добавила свой каталог в начало переменной PATH.
Все, что остается сделать - положить фальшивый пингер в каталог, первым описанный в переменной PATH.
Теперь, если при запуске пинга расширение не было указано (а есть такие, кто пишет ping.exe , а не просто ping ?), то для CMD сгодится не только ping.exe, но и ping.cmd
Но полностью реализовать функционал пингера - жесть, поэтому обойдемся перехватом 2х вариантов ключей: "ya.ru -t" и "8.8.8.8 -t". Обычно этого достаточно. Можно еще добавить "mail.ru".
В остальных случаях должен выполнятся настоящий пингер, (если и он не перехвачен до нас).
* Благодаря подобному перехвату можно смело самому, на глазах у "сетевика" запустить CMD и набрать нужную кодовую фразу. Если не побъют, то веселье гарантировано.
В фальшивом режиме батник будет генерить левые задержки и 3 вида проблем:
1. Неприлично большие пинги
2. "Превышен интервал ожидания для запроса"
3. "Заданный узел недоступен"
В моем случае веселье ожидается двойное, ибо иНет на компе есть, но пинги наружу вообще идти не должны - стоит "синий плащ".
зы: Представил себе "шутник, левел мэднес": запустить пингер на компе во внутренней сети ))) Но тут реально жесть, ибо безопасники иногда просматривают скриншоты, которые периодически делаются по всем компам изолированной сети. Типо листает чел картинки, "порнуха, порнуха, порнуха, пинги, порнуха, порнуха.... ПИНГИ?!!!" :o
@echo off
setlocal EnableExtensions
rem Bad Joke / NiOl
set MinTime=15
set DefMask=7
set s=
:getPrm
set p=%1
shift
set s=%s%%p%
if "%p%"=="-t" set c1=Y
if "%p%"=="ya.ru" set c2=es& set t1=87.250.250.242&set t2=ya.ru [87.250.250.242]
if "%p%"=="8.8.8.8" set c2=es& set t1=8.8.8.8&set t2=8.8.8.8
if not "%p%"=="" Goto :getPrm
if "%c1%%c2%"=="Yes" Goto :Rumble
ping.exe %s%
exit %errorlevel%
:Rumble
title C:\Windows\system32\ping.exe %s%
rem echo C:\^>ping %s%
set IP=127.0.0.1
for /f "tokens=4" %%M in ('route print^|findstr /c:" 0.0.0.0 "') do call :getIP %%M
call :prn 2 Обмен пакетами с %t2% с 32 байтами данных:
:norm
set /a "TC=4+%random%/2000"
set Msk=%DefMask%&set Time=%MinTime%&set Ps=2
:funPing
set /a QoS=%random%
set /a "Err=%QoS% & 63"
if /i %Err% gtr 62 Call :prn 5 Ответ от %IP%: Заданный узел недоступен.&Goto :Troubles
if /i %Err% gtr 50 Call :prn 5 Превышен интервал ожидания для запроса.&Goto :Troubles
if /i %Err% lss 54 Goto :skip
if not %TC%==0 Goto :skip
:Troubles
set /a TC=1+%random%/8000
set "Msk=2047"&set "Ps=3"&set "Time=300"
:skip
if %TC%==0 Goto :ping
set /a TC-=1
if %TC%==0 Goto :norm
:ping
set /a "t=%Time% + (%QoS% & %Msk%)"
call :prn %Ps% Ответ от %t1%: число байт=32 время %t%мс TTL=63
Goto :funPing
:prn
set s=
ping.exe 127.0.0.1 -n %1 >nul
:prn1
shift
set p=%1
set s=%s%%p%
if not "%p%"=="" Goto :prn1
echo %s%
exit /b
:getIP
set p=%1
set s=%p:.=%
:getIPwo0
if "%s:~0,1%"=="0" set "s=%s:~1%"&Goto :getIPwo0
set /a s1=s
if "%s%"=="%s1%" set IP=%p%
exit /b