ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

06.07.2006, 15:32
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
nerezus проще диск от краклаб купить всего 300р зато там ВСЕ
и то, что по моим ссылкам?
неужели =)))
|
|
|

06.07.2006, 15:47
|
|
Постоянный
Регистрация: 09.10.2005
Сообщений: 333
Провел на форуме: 1387660
Репутация:
74
|
|
там крякмисы специально для твоего сайта сделаны? если да, то красавчег )
|
|
|

06.07.2006, 15:50
|
|
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме: 9751364
Репутация:
1847
|
|
Тиксон =)) ... там туторы от Nerezus'a =)
|
|
|

06.07.2006, 16:03
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Тиксон =)) ... там туторы от Nerezus'a =)
не от меня, а от соавтора ) наш сайт с ним 
|
|
|

01.08.2006, 18:33
|
|
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме: 2630617
Репутация:
245
|
|
Начало на ссылка
Продолжение.
###Убираем наги.###
Наг- это назойливое окошко, которое присуще любой триальной программе.
Смысл окошка- напомнить пользователю о том, что програмисты тожелюблять кушать,
поэтому покупка програмы была бы очень кстати. Общий принцип таков.
Во время запуска приложения , осуществляется простая проверка- заригистрированая
ли програма или нет. Индикацией того, что приложение зарегистрировано, может быть
наличие некоторого файла, ключа реестра или, что более вероятно, что прога уже
зарегистрирована, то никакого наг-окна не выводится, и программа продолжает
обычную работу. В противном случае управление передается прочедуре, которая выводит
наг на екран и в большинстве случаев требуетнажать клавиши для продолжения работы.
Как правило убрать наг-окно не представляет труда, в этом можнолегко убедиться на
примере FaNt0ms CrackMe #2.После запуска проги пользователя одаривают не один,
а сразу двумя наг-окошками, но задача от этого практически не усложняеися.
к сожалению, взможность негистрации не предусмотрена, поэтому единствинное,
что остается сделать, - это вручную убрать из кода левые фрагменты програмы.
Или точнее говоря, вызовы процедур, выводящих на экран эти назойливые сообщения.
В принципе это можно сделать с помощью дизассамблера и НЕХ-редактора, но удобнее и
уместнее все-такм использовать отладчик (или и то, и другое одновременно) - скоро
ты в этом убедишся.
Итак, запускаю OllyDBG, а с помощью меню отрой файл CrackMe2.exe. В принципе, найти
нужный фрагмент кода, содержащий вызовы левых процедур, можно по описаному ранее
алгоритму в(часть №1).Для етого нужно кликнуть правой мыши в окне с ассемблерным кодом.
и в контекстном меню выбрать пункт Search for -> All referenced text string.
В появившемся списке ты срвзу же увидишь текст сообщения выводимый в окне нага, а
двойным кликом сможешь перейти туда, где н используется. Но мы пойдем по другоу пити
и изучим еще один ключевой пример, которой активно используеться во время взлома программ.
Если ты уж когда-то пробовал ломать програмы, то наверняка, слышал о так называемых
брейкпоинтах (breakpoints).Брейкпоинт - это место останова програмы, то есть точка,
в которой программа приостанавливает свое выполнение и указывает адрес текущей команды
в отладике. Использовать ето черезвычайно полезный прием очень просто. Нам уже извесно
что, небольшое окошко с сообщением легко может бытьвыведено на экран с помщью функции
MessageBoxA. Теперь все, что от нас требуется - установить точку останова на вызове этой
функции, а после остановки программы всего лишь вырезать из кода ее вызов. Попробуем.?)
Если правильно установил OllyDBG и подключил чрезвычайно полезный плагин CommandBar, то в
нижней части экрана должно светиться окно для ввода команды. Введем команду для установки
точки останова на вызове функции MessageBoxA: bpx MessageBoxA. Правильност установки
брейкпойнта можно проверитьв окне Breakpoints (меню View-> Breakpoints). Там же его можно
на время деактивизировать, или вовсе удалить.
|
|
|

01.08.2006, 18:42
|
|
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме: 2630617
Репутация:
245
|
|
Далее необходимо запустить программу из
отладчика для этого нажми клавишу F9 или выбери в меню Debug->Run.Программа сразу же
остановилась на команде с адресом 004010DE:
004010DE CALL <JMP.USER32.MessageBoxA> ; MessageBoxA
Мы получили то, что хотели - программа остановилась до вызова функции MessageBoxA. Если ты
выполняеш действия параллельно сомной то, наверняка приятно удивлен, что OllyDBG приводит
разшифровкупараметров, которыепередаются этой процедуре. Очень наглядно и удобно.
###Нет операции.###
Тепрь рзберемося, как этот вызов можно убрать. В этом нам поможет специальная инструкция
ассемблера - нет операции (NOP). Для того, чтобы убрать вызов процедуры (или любой
другой код), достаточто забыить его машинный код командами NOP. В результате в программе
образуется своеобразная дырка, но на работоспособность она ни коем образом не повлияет.
Правда , здесь есть один нюанс. машинный эквивалент команды NOP (в шестнадцатеричном
представлении - 90) занимает один байт,в то же время машинная командя, вызывающая функцию
MessageBoxA (E8 C5010000) - целых 5. Несоответствия быть не должно, и чтобы полностью
перекпытьисходною комануду нужно исползоватьуоманду NOP 5 раз. К счастю, OllyDBG полностью
избавляет нас от лишнего неорроя.Кликни правой кнопкой мыши на строке, где произашла точка
останова, и выбери в меню Binary->Fill with NOPs. Отладчик самостоятелно заполнит комануду
Nopаминужно число раз. Теперь можно продолжыть выполнения программы - нажымаем F9. Сразу
выясняется две новости: одна хорошая, другая - нет((. Начну с хорошей: первый наг-скрин мы
убрали. Плохая новостьзаключается в том, что другой наш остался на месте. Почему? Видимо,
он отображатся с помощю другой АРІ-функцей,на которою брейкпоинт не установле. Не беда.
Открываетм окно Referencer (view-> Referencer): после установки первого брейкпоинта сюда
записалася список всех вызываемых програмой функций. С базовымизначениями АРІ (или мануалом
под рукой) можно предложыть, что наг выводится с помощю функции DialogBoxParamA. Предлагаю
проверить проверить тебе самому. Все изменения можно вручнуювнести через НЕХ-ркдактор, с
помощю которого байты по нужным адресам перезаписать числом 90.Или же автоматически записать
все изменения с помощью самого OllyDBG: первый клик по исправленниму ассемблерному коду, меню
Copy to Executable-> All modifications.
Всё..)..
Последний раз редактировалось HakNet; 06.08.2006 в 14:50..
Причина: /// убрал...
|
|
|

01.08.2006, 20:05
|
|
Участник форума
Регистрация: 31.08.2003
Сообщений: 177
Провел на форуме: 249275
Репутация:
22
|
|
...специальной танслятор -ассамблер. Если из ассамблерного листинга...
Супротив граматнасти ниче протев не емею, но емей совисть, пеши хатябы "ассемблер" правильна. Родной язык машины заслуживает того чтобы его название писали правильно, в отличие от васиков, сей, пырлов, дэбльфей и проч=)
В общем случае программа состоит из трех областей памяти(сегментов): сегментов кода (CS), сегментов кода (DS) и сегментов кода (SS).
Без коментариеф.
00401296 cnp eax, 00000000
.
----------------------
А воще статья довольно примитивная. Реальные защиты далеко не так примитивны.
1) можно обойтись без мессадж боксов, зарегив класс окна и назначив ему простенькую оконную процедурку на выньапи
2) можно сделать сплайсинг в АПИ МесаджБоксА
3) можно замаскировать саму проверку: соотв. CMP будет не так то просто обнаружить если в случ неудачной проверки запустить поток который подождав пару сек вызовет МессаджБоксА (или еще свое окно как наприм. сделано в выньраре).
4) еще один поток может висеть в это время в памяти и периодически проверять чексум критического участка кода, причем этот поток можно даже внедрить (такое дело токма в хрюхе но всерано) в совершенно левый процесс (напр в эксплорер.ехе). Ессесно вылет произойдет даже тогда когда в этот код просто поставить точку останова (int 3), что обычно и делает дебагер.
5)Как вариант такую проверку может осуществлять совершенно безобидная на первый взгляд АПИ-функция, которую ессесно перехватили. Трассировка перехваченных АПИ функций геморойное дело. Например если это была инъекция (или первые 6 байт меняются) то поставив туда точку останова мы или вылетим нах из отладчика или уйдем лесом (в зависимости от варианта реализации и самого отладчика).
6) динамическая шифрация/расшифрация очень затруднит фикс проги, даже если в памяти мы его успешно крякнули.
7) методов ухода из-под дыбугера (валом) ну и так дальше. просто влом писать все методы постановки палок в колеса кракерам. их очень много.
Последний раз редактировалось Rabid Rabbit; 02.08.2006 в 11:02..
|
|
|

02.08.2006, 15:13
|
|
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме: 2630617
Репутация:
245
|
|
Чувак..)
ТеМа: Cracking для новичков...
я неспорю есть много ищо нюансов...
но ето для профи..
а статя разчитана на новичков.)
|
|
|

02.08.2006, 16:19
|
|
Участник форума
Регистрация: 31.08.2003
Сообщений: 177
Провел на форуме: 249275
Репутация:
22
|
|
HakNet Слы, а почему все на ачате пишут "для новичков"? Откуда такая забота о новичках=)
Ламер тот кто считает себя хакером Ага - одно из определений, на мой взгляд довольно удачное (слава богу я считаю себя програмером  )
|
|
|

02.08.2006, 17:58
|
|
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме: 4226592
Репутация:
2175
|
|
кстать, давно бы пора (в который раз) открыть отдельный раздел низкоуровневого программирования, крякинга и реверсинга...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|