Lucky Pather – программа для обхода защиты

image История борьбы пиратов и производителей цифрового контента насчитывает ни одно десятилетие. Не успел фильм выйти в прокат, как на торрент сервисах уже лежит его цифровая копия. И это несмотря на наличие современных механизмов защиты от копирования.

Сегодня решил поделиться интересным материалом о том, как такое возможно и как работают программы взломщики. Кстати, некоторые из этих программ легальные.

Как появилась защита от копирования?

imageКогда контент распространялся в аналоговом виде: на магнитных кассетах и виниловых пластинках, то о защите от пиратского копирования особо не заботились. Причина была банальна: качество вновь создаваемой копии было значительно хуже оригинала.

Когда же в мире появились цифровые носители информации в виде CD-дисков, ситуация резко изменилась: любой желающий мог сделать себе идентичную до бита цифровую копию оригинала.

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

В чем интерес пиратов?

Довольно сложно ответить точно на этот вопрос… Но попробую предположить:

  • во-первых, обычный интерес и желание получить что-то ценное «на халяву»;
  • во-вторых, это своеобразное пари-соревнование: кто «круче» (проверка своих способностей, авторитет среди программистов-пиратов);
  • в-третьих, торрент-сервисы имеют «неплохую» копеечку на интернет рекламе;
  • глупая идея в голову пришла, но вдруг… Я думаю, нечестные конкуренты могут нанимать хороших хакеров с целью нанесения ущерба, а также с целью получения исходного кода программы.
Типы программ взломщиков

1. Генератор ключей – программка, которая на основе известного кода активации генерирует псевдо-фальшивые серийные номера и коды авторизации, с помощью которых можно незаконно активизировать программу.

2. Патчи типа NoCD – программа, которая подменяет оригинальный исполняемый файл с игрой на взломанный, таким образом исключается необходимость присутствия при запуске игры оригинального диска в приводе CD/DVD.

3. Crack – программа, которая снимает с Демо-версии лицензионной программы все ограничения и предоставляет полный набор функций: делает из демо-версии полную версию программы или игры.

4. Риппер – программа, которая позволяет перенести содержимое аудио-CD, DVD, Blu-ray диска на жесткий диск в обход защиты от копирования.

5. Взломщики DRM – позволяют отключить защиту от копирования приобретённого в Интернете цифрового контента (фильмы, музыка).

6. Программы побитного копирования данных. Чаще всего технология защиты дисков с играми, программами или музыкой используют умышленное создание ошибок на цифровом носителе. В результате, при копировании такого диска система выдаст ошибку копирования и примет носитель за испорченный. Есть программы, которые могут побитно перенести информацию с диска.

Как пираты делают свое дело?

Чтобы что-то взломать, требуется провести анализ, найти слабое место и «надавить» на него. В случае с цифровым контентом, пират проводит анализ программного кода, находит модуль обеспечения защиты, удаляет его или подменяет своим. После чего компилирует измененный код и выкладывает взломанный продукт в сеть.

Есть продукты (например, продукты Windows и Adobe), которые для активации требуют онлайн соединения с Интернетом или соединения с диспетчером посредством телефона. Задумка очень простая: производители ведут базу учета активированных серийных номеров. Если введенный номер уже учтен, то продукт не будет активирован.

Метод взлома банален: оперативный перебор и генерация новых кодов активации. Упор сделан на то, что разработчики не успевают регистрировать в своей базе огромное количество ежедневно появляющихся «левых» кодов активации и серийных номеров.

Что еще «ломают» пираты?

1. Игровые консоли – существуют специальные карты, которые позволяют запускать скаченные из Интернета игры для Nintendo DS; есть чипы для Xbox и PlayStation.

2. Беспроводные сети – если в настройках адаптера установлено шифрование WEP, то взломать его не составит труда даже школьнику (в Интернете полно бесплатных программ взломщиков). WPA2 представляет уже определенную трудность. Однако, этот код также нестойкий к криптоанализу.

3. Платное телевидение – тут два варианта: либо фальшивая карта, либо специальное программное обеспечение, которое создает видимость наличия карты в слоте.

4. iOS и Android – этому можно посвятить отдельную статью. Думаю, кому интересно, уже перепрошили себе гаджет.

От себя:

1. На сегодняшний день ужесточается наказание за нарушение авторских прав. Все чаще в СМИ появляются материалы, наглядно отображающие борьбу правоохранительных органов с нелегальным использованием цифрового контента: вроде школьного учителя, установившего на ПК нелицензионное программное обеспечение. Цифровой контент становится более доступным. Подумайте, чем вы рискуете.

2. Взломанные программы и игры чаще всего более уязвимы для вредоносного кода, а иногда, и намеренно содержат его. Вы сами целенаправленно заражаете свой компьютер вирусами.

Ищете надежное приложение блокировщик сайтов, чтобы эффективнее контролировать работу сотрудников? Интересует вопрос «Как заблокировать доступ к соцсетям на работе»? Добро пожаловать в наш клуб. 

Если думаете, что вы одни сталкиваетесь с проблемой продуктивности на рабочем месте, взгляните в рабочее время на последние публикации своих друзей в Фейсбуке, твиты или истории в Instagram. Очень может быть, что дата публикации некоторых постов – не более трех минут назад! Скорее всего, что у них у всех есть более важные дела, чем соцсети.

Тому, как интернет отвлекает людей от работы, посвящены сотни исследований. Но, к нашему счастью, наряду с многочисленными сайтами, приложениями и другими убийцами продуктивности, существует не меньше разработок, которые помогают сосредоточиться и не отвлекаться.

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

К тому же, некоторые из этих систем стоят не дороже чашки кофе, а другие и вовсе бесплатные.

1. Self-Control

Self-Control – приложение, разработанное для блокировки всех лишних веб-ресурсов.

Здесь механизм весьма незамысловатый: некоторые сайты добавляются в «черный список», устанавливается таймер – и в течение определенного времени на эти ресурсы зайти будет невозможно.

Но, прежде чем кликнуть «Ок», стоит удостовериться, что выбрано нужное время, поскольку, если вдруг передумаете и решите нарушить установленный распорядок, даже перезагрузка компьютера и удаление приложения не помогут.

Разработка доступна только для Mac, извините, пользователи Windows, для вас есть другие решения.

Преимущества: Особенность Self-Control в том, что это платформа с открытым исходным кодом. То есть можно создать кастомную версию приложения или нанять кого-то для этого.

Недостатки: Self-Control настраивается индивидуально на каждом отдельном компьютере, поэтому работодателю, который с компьютера администратора хочет контролировать веб-активность подчиненных, будет неудобно.

Цена: бесплатно

2. StayFocusd

StayFocusd – расширение для браузера Google Chrome, которое очень просто устанавливается и не занимает много места на компьютере.

Здесь принцип работы, отличный от большинства подобных инструментов: вместо того, чтобы вносить в список определенные сайты, к которым нельзя получить доступ, устанавливается дневное время, в течение которого определенные ресурсы будут доступны. Так, если хотите проводить на Facebook не больше 30 минут, просто впишите это время в StayFocusd. По прошествии получаса вас отключат от социальной сети – и придется бороться со страшным синдромом отмены. Эту процедуру можно проделывать с неограниченным числом сайтов и программ.

StayFocusd содержит в себе ряд интересных функций. Например, «nuclear option» временно, но полностью блокирует интернет, за исключением сайтов, которые пользователь вносит в приложение.

Особенности: StayFocusd не только не позволяет заходить на определенные сайты, но и на их субдомены, определенные страницы и элементы контента (видео, игры, изображения), без необходимости блокировки сайта целиком.

Преимущества: 

  • Устанавливается график работы блокировщика, график ограничения времени. 
  • Можно заблокировать даже страницу расширений браузера Chrome chrome://extension.

Недостатки:

  • Разработка доступна только в браузере Chrome, поэтому достаточно переключиться на другой браузер, чтобы блокировку обойти. 
  • Отсутствует мобильная версия приложения. 
  • Нет статистики, которая бы показывала, сколько времени пользователь проводит на тех или иных ресурсах.

Цена: бесплатно

3. FocusMe

В FocusMe, помимо блокировки сайтов, присутствует тайм-трекер с функцией «Техники помидора» (метод, разработанный Франческо Цирило в конце 80-х годов). Его суть в том, что с помощью таймера рабочее время разбивается на отдельные промежутки по 25 минут, между ними делаются небольшие, пятиминутные перерывы.

FocusMe позволяет составить график блокировки ресурсов на несколько недель вперед. В системе есть отчеты и графики.

Платформы: Windows and Mac

Цена: доступна пробная версия на 14 дней.

  • Месяц: $9, 
  • Год: $29,
  • Навсегда: $119.

Недостатки: Единственный недостаток FocusMe в том, что это не совсем бесплатная программа.

Преимущества: FocusMe позволяет создать график блокировки ресурсов на несколько недель вперед.

4. Freedom для Mac или Windows

Программа с немного странным для подобного функционала названием Freedom блокирует все отвлекающие сайты и приложения и интернет целиком, более того, это единственный блокировщик, в котором синхронизированы все блоклисты на всех устройствах.

Преимущества: Freedom Premium позволяет выполнять блокировку неограниченного числа устройств и составлять индивидуальные блоклисты.

Все устройства – Mac, Windows, iOS и Android – синхронизируются, то есть не будет такого, что у пользователя заблокирован компьютер, а он достает телефон и так обходит блокировку. Если Outlook, Mail, Steam, Fortnite, или даже Chrome и Safari отвлекают от работы, можно добавить эти программы в список.

Недостатки: Ну, разве что отсутствие бесплатной версии.

Цена: Freedom предлагает три (пользовательских) тарифных плана: $6.99 в месяц. При годовой подписке придется заплатить $2.42 в месяц – меньше, чем за чашку кофе в Starbucks.

5. Интернет Цензор

Эта бесплатная программа предназначена для родительского контроля, а также для классов информатики в образовательных учреждениях, однако никто не запрещает использовать ее на работе, весь функционал для этого есть.

Программа блокирует доступ к сайтам, которые идут вразрез с законодательством РФ. Это возможность полного контроля для родителей за детьми в сети.

Фильтр сайтов, контент которых может вредить здоровью и психике подростков. Система разработана компанией «ИнтернетДом». База данных запрещенных ресурсов постоянно обновляется. Пользователи могут добавлять сайты в списки.

Цена: бесплатно

Преимущества: Программа интуитивно понятна. Даже неопытный пользователь разберется, что к чему. Разработчики программы утверждают, что ребенок не сможет удалить программу с компьютера. При попытке обхода блокировки система автоматически отправит сообщение на регистрационный email.

Недостатки: некоторые пользователи отмечают, что «белый список» сайтов несколько лет не обновляется.

6. Kerio Control

А теперь о тяжелой артиллерии. Профессиональное решение Kerio Kontrol представляет собой межсетевой экран для безопасного доступа в сеть. Надежная сетевая защита ЛВС, система экономит трафик и рабочее время сотрудников: ограничивается нецелевой доступ персонала к некоторым сайтам.

Особенности программы:

  • Локализация (16 языков, в т.ч. русский).
  • Встроенный прокси-сервер.
  • Встроенный антивирус; подключаются дополнительные защитные модули.
  • Контроль пропускной полосы.
  • Балансировка нагрузки.
  • VPN.
  • Мониторинг активности персонала в сети.

Преимущества:

  • Надежная защита корпоративной сети от всех видов угроз. 
  • Широкий спектр функциональности, а также гибкость настроек. 
  • С программой знакомы большинство администраторов. 
  • Администрировать ее можно в том числе и удаленно.

Недостатки: программа стоит дороже, как и любое профессиональное ПО, установка и настройка потребуют специальных навыков сетевого администратора.

Цена: от 8 760 рублей (в год для 5 юзеров)

7. Kaspersky Internet Security

В программе-антивирусе Kaspersky Internet Security наряду с другими функциями, есть родительский контроль, с помощью которого ограничивается запуск программ и блокируется доступ к определенным веб-ресурсам.

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

Преимущества:

  • Контроль загрузки файлов из интернета. Устанавливается тип файлов, доступных для загрузки. 
  • Переписка с определенными контактами в соцсетях. Контролируется переписка с пользователями. В отчетах отражается текст, время и адресаты. 
  • Ограничение обмена личными данными. Администратор может ограничить обмен персональными данными. При включенной функции контроля, сообщения, в которых содержатся персональные данные, будут блокироваться, а попытка пересылки будет зафиксирована в отчетах.
  • Ключевые слова: Любое ключевое слово, обнаруженное в переписке, будет отражено в отчете.

Недостатки: Ограничение обмена личными данными не всегда работает точно.

Цена: от 3 900 рублей

Почему блокировка ресурсов – не всегда панацея?

Независимо от того, какой инструмент вы выберете, чтобы добиться максимальной продуктивности, вы окажетесь впереди других организаций уже потому, что стараетесь улучшить продуктивность своего персонала.

Но все же блокировка веб-ресурсов не решает всех проблем, связанных с недобросовестными сотрудниками.

В случае с белым списком, может возникнуть ряд проблем, когда сотруднику нужно получить доступ к тому или иному сайту по рабочему вопросу. Придется оформлять заявку на админа, обосновать необходимость разблокировки, ждать решения и т.д.

В случае с черным списком – в Интернете 1 миллиард 500 миллионов сайтов. Заблокировать все непродуктивные из них попросту невозможно физически.

К тому же, отвлечься раз в 2 часа от работы и почитать новости – только полезно для здоровья и общей эффективности сотрудников. Чрезмерное ограничение свободы работников – прямой путь к текучести кадров и профессиональному выгоранию.

Кроме того, есть множество способов обойти блокировку. Приведем навскидку несколько примеров.

  1. С помощью wi-fi USB, подключенного к компьютеру. Недобросовестный сотрудник включает смартфон в режиме точки доступа и делает выход в интернет доступным из собственной сети.
  2. Если есть открытый порт, например, для TeamViewer (его можно сделать, сославшись на том, что TeamViewer якобы нужен для работы), то можно удаленно через RDP или AnyDesk подключиться к домашнему компьютеру и свободно через него серфить инет.
  3. Да и личный смартфон тоже можно использовать для серфинга… Если, конечно, у вас в организации сотрудники не сдают телефоны на время работы. Это далеко не все способы…

Наша система учета рабочего времени Kickidler работает иначе. Она не ограничивает доступ, а анализирует рабочий день сотрудника, вынося точный вердикт – продуктивно ли он трудился или нет. Даже если сотрудник сидит в интернете через телефон, она запишет это время, как бездействие.

Программа контроля сотрудников Kickidler

Понравилась статья? Подпишитесь на нас в соцсетях.

Чтобы иметь возможность ломать программы, на страже которых стоят хитрые защитные механизмы, необходимо знать разные способы нахождения этих самых механизмов в подопытном приложении. В сегодняшней статье будет показано, как это сделать, а в конце мы разберем пример работы с графическим приложением.

Содержание

Способ взлома программ 1. Поиск введенного пароля в памяти

Пароль, хранящийся в теле программы открытым текстом, — скорее из ряда вон выходящее исключение, чем правило. К чему услуги хакера, если пароль и без того виден невооруженным взглядом? Поэтому разработчики защиты всячески пытаются скрыть его от посторонних глаз (о том, как именно они это делают, мы поговорим позже).

Впрочем, учитывая размер современных пакетов, программист может без особого труда поместить пароль в каком-нибудь завалявшемся файле, попутно снабдив его «крякушами» — строками, выглядящими как пароль, но паролем не являющимися. Попробуй разберись, где тут липа, а где нет, тем более что подходящих на эту роль строк в проекте средней величины может быть несколько сотен, а то и тысяч!

РЕКОМЕНДУЕМ:Взлом приложений для Андроид с помощью отладчика

Давайте подойдем к решению проблемы от обратного — будем искать не оригинальный пароль, который нам неизвестен, а ту строку, которую мы скормили программе в качестве пароля. А найдя, установим на нее бряк, и дальше все точно так же, как и раньше. Бряк всплывает на обращение по сравнению, мы выходим из сравнивающей процедуры, корректируем JMP и…

Взглянем еще раз на исходный текст ломаемого нами примера passCompare1.cpp:

Обратите внимание — в buff читается введенный пользователем пароль, сравнивается с оригиналом, затем (при неудачном сравнении) запрашивается еще раз, но (!) при этом buff не очищается! Отсюда следует, что, если после выдачи ругательства Wrong password вызвать отладчик и пройтись по памяти контекстным поиском, можно обнаружить тот заветный buff, а остальное уже дело техники!

Итак, приступим (мы еще не знаем, во что мы ввязываемся, — но, увы, в жизни все сложнее, чем в теории). На этот раз запустим passCompare1.exe отдельно от отладчика. Затем подключимся к процессу из отладчика (Attach to process в WinDbg). Хочу обратить ваше внимание: в окне выбора процесса отображаются все запущенные процессы и для каждого из них выводится его разрядность в столбце Platform. Вводим любой пришедший на ум пароль (например, KPNC Kaspersky++), пропускаем возмущенный вопль Wrong мимо ушей и в отладчике нажимаем Break (сочетание клавиш Alt + Del).

Окно со списком процессов для выбора

Попробуем отыскать в памяти введенный пароль:

Пояснения

Первый параметр после команды s — флаг -a — определяет цель поиска как набор ASCII-символов. Второй параметр — смещение, откуда начать искать. Вообще-то начинать поиск с нулевого смещения — идея глупая. Судя по карте памяти, здесь расположен служебный код и искомого пароля быть не может. Впрочем, это ничему не вредит, и так гораздо быстрее, чем разбираться, с какого адреса загружена программа и откуда именно начинать поиск.

Третий параметр — верхний предел поиска, то есть «докуда». Здесь у нас стоит максимальное 32-битное знаковое число, таким образом мы охватываем весь возможный диапазон 32-битного процесса.

Последний параметр — собственно искомая строка. Обратите внимание, что мы ищем не всю строку, а только ее часть (KPNC Kaspersky++ против KPNC Kaspersky). Это позволяет избавиться от ложных срабатываний, возникающих из-за ссылок на внутренние буфера.

Результат (у вас значения, скорее всего, получатся другими, и они будут меняться при каждом перезапуске приложения):

Целых два вхождения! Почему два? Предположим, что при чтении ввода с клавиатуры символы сперва попадают в системный буфер, который и дает ложное срабатывание. Тем не менее не ставить же, не разобравшись, сразу обе точки останова. В данном случае четырех отладочных регистров процессора хватит, а как быть, если бы мы нашли десяток вхождений? Да и в двух бряках немудрено заблудиться с непривычки! Как отфильтровать помехи?

Начинаем думать.

На помощь приходит карта памяти — зная владельца региона, которому принадлежит буфер, можно очень многое сказать об этом буфере. Наскоро набив уже знакомую команду !dh passCompare1, мы получим приблизительно следующее (выбраны сведения только о секциях .data и .rdata):

Заодно определим базовый адрес модуля приложения: lmf m passCompare1 (в моем конкретном случае он равен 0xDE0000, а у вас значение, скорее всего, будет другим). Узнаем, куда в памяти загружена секция .rdata: 0xDE0000 + 0x2000 == 0xDE2000, а также куда загружена секция .data: 0xDE0000 + 0x3000 == 0xDE3000. Это гораздо выше найденных адресов расположения буферов с введенным паролем. Следовательно, найденные адреса не указывают в области .data и .rdata.

Думаем дальше. Адрес 0x147fd80 выходит далеко за пределы ломаемого приложения, и вообще непонятно, чему принадлежит. Почесав затылок, мы вспомним о такой «вкусности» Windows, как куча (heap). С помощью команды !heap посмотрим, где она начинается:

Из этого заключаем, что адрес 0x147fd80 явно находится в куче.

Разбираемся дальше. Поскольку стек растет снизу вверх (то есть от старших адресов к младшим), адрес 0xf9f810 находится в стеке. Уверенность подогревает тот факт, что большинство программистов размещает буфера в локальных переменных, ну а локальные переменные, в свою очередь, размещаются компилятором в стеке.

Ну что, попробуем поставить бряк по первому адресу?

На втором запросе пароля снова вводим KPNC Kaspersky++. Жмем Enter и дожидаемся сиюминутной активации отладчика. Бряк произошел на второй из этих строк:

Смотрим, что находится в регистре esi:

Впрочем, этого и следовало ожидать. Попробуем выйти из текущей функции по Shift + F11. И мы снова попадем на эту же строку. Вновь посмотрим содержимое этого регистра:

Ага, один символ откусан. Следовательно, мы находимся в сравнивающей процедуре. Выйдем из нее нажатием на F5, так как при нажатии на Shift + F11 мы перейдем следующую итерацию перебора символов.

И вот мы в теле уже хорошо нам знакомой (развивайте зрительную память!) процедуры сравнения оригинального и введенного пользователем паролей. На всякий случай для пущей убежденности выведем значение указателей EAX и ECX, чтобы узнать, что с чем сравнивается:

Как раз то, что мы ищем!

Ну а остальное мы уже проходили. Записываем адрес условного перехода (ключевую последовательность для поиска), с помощью сведений из прошлой статьи находим адрес инструкции на носителе, соответствующей спроецированной в памяти, правим исполняемый файл, и все окей.

Выводы

Итак, мы познакомились с одним более или менее универсальным способом взлома защит, основанных на сравнении пароля (позже мы увидим, что он подходит и для защит, основанных на регистрационных номерах). Его основное достоинство — простота. А недостатки… недостатков у него много:

  • если программист очистит буфера после сравнения, поиск введенного пароля ничего не даст, разве что останутся системные буфера, которые так просто не затереть, но отследить перемещения пароля из системных буферов в локальные не так-то легко;
  • служебных буферов много, и очень трудно определить, какой из них «настоящий». Программист же может располагать буфер и в сегменте данных (статический буфер), и в стеке (локальный буфер), и в куче, и даже выделять память низкоуровневыми вызовами типа VirtualAlloc или… да мало ли как разыграется его фантазия. В результате подчас приходится просеивать все найденные вхождения тупым перебором.

Способ взлома программ 2. Бряк на функции ввода пароля

Взлом приложения с GUI

Настала пора разнообразить наш объект взлома. Теперь попробуем заломить приложение с графическим интерфейсом. В качестве тренировки разберем passCompare3. Это то же самое, что и passCompare1.exe, только с графическим интерфейсом на основе MFC Dialog Based App (см. в скачиваемых материалах к статье).

Старый добрый MFC Application Wizard

Также обратите внимание на то, что работа с текстом в этом примере организована по-другому. Если раньше мы работали с базовым типом char, то здесь используется обертка — класс CString, что, скорее всего, при взломе профессиональных приложений будет встречаться нам чаще. Кроме двух кнопок, идущих в заготовке по умолчанию, добавьте на форму элемент Edit Control. Свяжите его с переменной m_password и создайте событие обработки нажатия на кнопке OK. Это и будет ключевая процедура приложения, проверяющая введенный пароль на равенство эталонному:

Кажется, никаких сюрпризов не предвидится.

При всем желании метод прямого поиска пароля в памяти элегантным назвать нельзя, да и практичным тоже. А собственно, зачем искать сам пароль, спотыкаясь о беспорядочно разбросанные буфера, когда можно поставить бряк непосредственно на функцию, его считывающую? Хм, можно и так… да вот угадать, какой именно функцией разработчик вздумал читать пароль, вряд ли будет намного проще.

На самом деле одно и то же действие может быть выполнено всего лишь несколькими функциями и их перебор не займет много времени. В частности, содержимое окна редактирования обычно добывается при помощи либо функции GetWindowTextW (чаще всего), либо функции GetDlgItemTextW (а это значительно реже). Все версии Windows NT и младше предпочитают работать с юникодом, поэтому на конце функций работы с текстом W (wide), а не A (ASCII).

Раз уж речь зашла об окнах, запустим наш GUI «крякмис» и установим точку останова на функцию GetWindowTextW (bp User32!GetWindowTextW). Хотя эта функция — системная, точка останова не будет глобальной и не затронет все приложения в системе, а будет функционировать только в контексте данного приложения.

Вводим какой-нибудь пароль (KPNC Kaspersky++, по обыкновению), нажимаем клавишу Enter, и отладчик незамедлительно всплывает:

Может случиться так, что сначала произойдет «левая» активация отладчика. Ее можно пропустить многократным нажатием F5 до тех пор, пока отладчик вновь не всплывет на этой же функции. А лучше, чтобы не пропустить нужный момент, как только мы попадем в GetWindowTextW, выйти из нее по нажатию Shift + F11 и посмотреть, куда попадаем. Если вокруг находятся вызовы перерисовки элементов, то, значит, это процедура перерисовки формы и нам не сюда.

Перерисовка элементов:

Если же после выхода из USER32!GetWindowTextW мы попадаем в passCompare3!CWnd::GetWindowTextW, делаем еще один выход. Следуя логике, мы в результате попадаем в обработчик нажатия кнопки OK на форме или Enter на клавиатуре, прямо на первую строчку приведенного ниже листинга:

Жмем F10, чтобы сделать шаг вперед в трассировке программы. Теперь можем узнать значение в регистре eax:

Хорошо, введенный пароль, есть контакт. Только почему после каждого символа стоит точка? Думаю, вы уже догадались, что она означает двухбайтовую природу символа перед ней. Отхлебнув пивка, кваса или лимонада (по желанию), вспоминаем, что, хоть класс CString и может работать с типами char (однобайтовое представление символов) и wchar_t (многобайтовое представление до четырех байт, то есть юникод в UTF-8, -16 или -32), это зависит от настроек компилятора. А именно от того, какой символ включен: MBCS — char, UNICODE — wchar_t. Чаще всего используется второй набор символов, так как по умолчанию включены именно широкие символы.

Судя по всему, где-то рядом притаился эталонный пароль. Сделаем пару шагов внутри процедуры. Мы попадаем на строку 00ef2850 8bce mov ecx, esi, которая находится в конце приведенного выше листинга.

Проверим содержимое регистра ecx:

И правда! Интуиция нас не подвела, эталонный пароль тут как тут.

Работа приложения

Изменяем тип данных

А что, если бы программист для сохранения введенного пароля воспользовался не классом CString, а по старинке — массивом широких символов wchar_t? Давайте посмотрим семпл passCompare35. Он отличается от предыдущего только изменением типа данных считываемой строки и использованием перегруженного метода для ее считывания:

Как видите, у этого метода появился параметр размерности строки, он же величина строкового буфера, добавьте его объявление в начало программы: const int MAX_PASSWORD_SIZE = 0x666;.

Натравим отладчик на исполняемый файл. Поставим бряк на функцию GetWindowTextW, как в прошлом примере. Теперь, если проследить выполнение программы после всплытия отладчика, мы не обнаружим эталонный пароль на прежнем месте.

Что же делать? Как теперь его искать? Мы пойдем другим путем, но в том же направлении. Когда мы окажемся в passCompare3!CWnd::GetWindowTextW после вызова User32!GetWindowText, у нас уже будет считанный из элемента управления буфер, содержащий строку. Если на этот буфер поставить бряк, то мы доберемся до места, где пароли сравниваются.

Вот там мы поймаем эталонный пароль. Но как узнать адрес буфера? Есть по меньшей мере два пути. Первый — воспользоваться командой kp, она выведет стек вызовов всех функций с их параметрами. На вершине будет последняя вызванная функция, в которой мы сейчас находимся, с параметрами:

WinDbg с окном Locals

Второй способ — воспользоваться сведениями из окна Locals (полезная штука): View → Locals. Если бы программист оставил пароль в локальных переменных какой-либо функции, мы бы просто увидели его в окне Locals. Удобно, безусловно. Итак, адрес буфера с паролем узнали (в вашем случае он будет другим), осталось легким движением руки поставить бряк:

Продолжим выполнение. Отладчик тут же вспыхивает снова в функции passCompare35!CpassCompare35Dlg::OnBnClickedOk, прямо на последней строке:

Выделенная строка и код до нее крайне похожи на наш защитный механизм. Проверим хранящиеся в регистрах значения:

Введенная пользователем строка и эталонный пароль, как на блюдечке с голубой каемочкой! Одно лишь изменение типа данных может преобразить процесс взлома.

РЕКОМЕНДУЕМ:Безопасность UEFI

Замечательно! Вот так, безо всяких ложных срабатываний, элегантно, быстро и красиво, мы обошли защиту программы.

Этот способ универсален, и впоследствии мы еще не раз им воспользуемся. Вся соль — определить ключевую функцию защиты и поставить на нее бряк. В Windows все поползновения (обращения к ключевому файлу, реестру и прочее) сводятся к вызову функций API, перечень которых хоть и велик, но все же конечен и известен заранее.

–>–>Главная–> » 2017 » Май » 21 » Способы обхода блокировки сайтов!
21.05.2017

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

image

Изменение DNS серверов

Самый просто способ обхода большинства блокировок это изменение серверов DNS. Провайдеры чаше всего блокируют различные сайты на уровне DNS серверов. DNS сервера преобразовывают IP адрес сайта в URL с помощью которого сайт и открывается. Если заблокировать IP адрес сайта на уровне DNS сервера, то IP не будет превращаться в URL (адрес сайта) и таким образом доступ будет ограничен.

Но обойти такую блокировку очень легко, в сетевых настройках нужно использовать публичные ДНС сервера. Идем, панель управления — центр управления сетями —  изменение параметров адаптера — выбираете ваше подключение по сети — правой кнопкой, свойства — в списке находите Ipv4 — нажимаете свойства — ставите точку, использовать следующие адреса DNS — вписываете DNSы 8.8.8.8 и 8.8.4.4 (так же вы можете вписать любые другие публичные ДНС сервера). Далее вам нужно очистить кэш DNS на компьютере. Это можно сделать например через Ccleaner (установите галочку Кэш DNS и проведите очистку) или через командную строку от имени админа:

  • netsh winsock reset и нажмите Enter иногда может потребоваться перезагрузка компьютера.

image

Если у вас роутер, то эти настройки желательно делать на самом роутере, все настройки роутера делайте крайне осторожно. В адресной строке браузера напишите 192.168.0.1 или 192.168.1.1 и нажмите Enter. Впишите логин и пароль для доступа к роутеру. Далее найдите раздел настройки WAN подключения и впишите туда вручную DNS сервера – 8.8.8.8 и 8.8.4.4 На разных роутерах это может делаться по разному и если вы сомневаетесь лучше туда не лезьте.

image

Хочу отметить не у всех провайдеров пройдет такой фокус, некоторые провайдеры не позволяют менять ДНС сервера. Но на это есть другой выход.

Разблокируем доступ к сайту через файл HOSTS

Если провайдер не позволяет сменить ДНС сервер, то вы легко можете изменить файл hosts на собственном компьютере. Как это делать я показывал в своем очень старом видео – https://www.youtube.com/watch?v=KxrWGhXyNHA. Для того что бы разблокировать сайт нужно знать его IP адрес, в этом нам поможет этот сервис. Просто зайдите на сервис и впишите адрес нужного вам сайта, так вы узнаете IP. Дальше вам нужно отредактировать ваш файл hosts и вставить туда строку с соответствием IP сайта и адреса сайта, выглядеть это будет так:

image

Но случается так, что провайдеры блокируют полный доступ к сайтам и изменение DNS, и файла хостс не помогает. Тогда есть другие варианты обхода блокировки сайтов.

Использование браузеров с турбо режимом или встроенным VPN

Для этого можно использовать множество браузеров, но я расскажу только о двух: Opera и Яндекс Браузере. В браузере Opera вы можете использовать турбо режим, включатся в настройках или использовать встроенный в браузер VPN сервис. Включить его можно так:

  • Отметьте галочку Включить VPN

После это браузер будет работать в режиме VPN и вы сможете получить доступ к любым сайтам.

В яндекс браузере нужно активировать турбо режим:

image

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

Использование плагинов к браузерам

В браузер можно установить плагины: friGate, ZenMate, Browsec или Data Saver. Данные плагины работают по принципу VPN но только для браузера. Эти плагины легко могут открыть доступ к заблокированным сайтам, это самый легкий способ обхода блокировки. За VPN я расскажу ниже.

Использование VPN сервисов

Следующая возможность обхода блокировки сайтов это использование VPN сервисов. Подключая VPN весь ваш интернет трафик шифруется, а доступ к любым сайтам открывается так трафик проходит через сервера других стран где нет запретов для наших сайтов. Однако, при использовании VPN могут наблюдаться просадки в скорости подключения. Приводить список VPN сервисов я не буду так как их много. Просто гуглите – VPN или бесплатный VPN. На данный момент таких сервисов много и вам не составит труда найти нужный, лично я рекомендую CyberGhost VPN или Open VPN (бесплатный). А тут я расскажу о топ 7 лучших бесплатных VPN!

Использование Tor браузера

Еще один хороший способ для обхода блокировки сайтов – использование веб-браузера Tor Browser. Tor браузер создает анонимную сеть которая шифрует все передаваемые данный в том числе и от провайдера, так же использует серверы разных стран для подключения к интернету. Для обеспечения конфиденциальности пользователей используется многоуровневое шифрование и маршрутизация вашего сетевого трафика по распределенной сети.Данная технология предотвращает возможность внешнему наблюдателю вашего интернет-соединения узнать какие веб-сайты вы посещаете, предотвращает возможность сайтам узнать ваше физическое местоположение, а также позволяет получить доступ к заблокированным веб-ресурсам.Но у Tor есть недостаток это низкая скорость подключения. Браузер можно использовать абсолютно бесплатно и без ограничений. О нем я более подробно рассказывал тут.

Более подробно о обходе блокировки сайтов я расскажу в своем видео:

Анонимайзеры

Что бы заходить на любы сайты можно использовать специальные сервисы анонимайзеры, они изменяют URL адрес нужного вам сайта, таким образом можно получить доступ к любому сайту. Лучшие и известные мне анонимайзеры это: Хамелион и noblockme.ru, остальные можете загуглить сами. Просто заходите на сайте анонимайзер и в строке пишете нужный вам сайт, он откроется в анонимном режиме.

Надеюсь, вам поможет обойти блокировку сайтов, один из способов описанных выше. если вы знаете еще какие либо методы, пишите их в комментариях и я добавлю этот метод в статью!

–>Категория–>:Новости Software(софт) | –>Просмотров–>:267294 | | |
–>Всего комментариев–>: 22.
Спам-сообщение скрыто.

–>

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий