Все начиналось с того, что я однажды родился. Я очень скоро узнал, что все на свете мне нельзя. Нельзя похачить мне сервак, нельзя использовать мне Napster, и нельзя на километр приближаться к Биллу Гейтсу ..... =)
Как сказал Гагарин - ПОЕХАЛИ !
Сегодня мой маленький друг я расскажу тебе сказку о .... Хотя ты уже должен был бы подрасти, если конечно читал мои прошлые статьи =). Ну да ладно, сегодня я поведую вам о том, как обойти AtGuard-a ( есть такой firewall) ). Достаточно известная вещь и многие им пользуются. В статье я приведу пример своего кода на языке АССЕМБЛЕР, а именно MASM32. Хочу сразу сказать, что учу я его не давно, так же как и WIN API функции, и если вы вдруг найдете у меня ошибки, то сообщите мне о них. И вот еще,не надо мне писать, что мой код не оптимизирован, я это сам знаю, это было сделанно для простоты его понимания.
AtGuard в своей работе очень активно использует реестр, ( я это выяснил с помощью утилиты Regmon ) все свои настройки он содержит там, в том числе и FireWall Rule. В реестре это выглядит примерно так:
-IPFilterRules
|
|---Rule0
|---Rule1
|---Rule2
|---Rule3
|---Rule4
В каждом из этих RuleXX содержится информация о том, какие пакеты могут проходить через firewall, а какие нет. Основные вещи которые нас интересуют в этих Rule:
-- RuleAction ( запрет/разрешение на прохождение пакетов )
и
-- RuleProtocol ( отвечает за используемый протокол для этого Rule )
Если при сканирование этих параметров мы встретим RuleAction раным 2, а RuleProtocol равным 6 то это то что на надо ! Далее, мы изменяем/стираем некоторые значения, для того что бы наши пакеты могли проходить сквозь firewall.А вот собственно и сам код:
.data
RuleAction db "RuleAction",0 ; см. выше
RuleDirect db "RuleDirection",0 ; Направление пакетов
RuleProt db "RuleProtocol",0 ; см. выше
RuleLog db "RuleLogging",0 ; Запись в лог
RuleLocal db "RuleLocalServiceObject",0 ; Local Service
RuleRemote db "RuleRemoteServiceObject",0 ; Remote Service
RuleApp db "RuleApplicationObject",0 ; Какая программа это правило использует
dwRuleDir dd 00000003H
dwRuleLog dd 00000000H
ReeFltPath db "Software\WRQ\IAM\FirewallObjects\IPFilterRules\",0