ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Cracking для новичков...
  #1  
Старый 03.07.2006, 16:25
Аватар для Micr0b
Micr0b
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме:
2630617

Репутация: 245
Отправить сообщение для Micr0b с помощью ICQ
По умолчанию Cracking для новичков...

!!!CRACKING!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

###Первые шаги для начинаюшего крэкера.###

Начнем с самого простого. Что вообше нужно для того чтобы взломать програму, обойти или убрать
защиту, сгенерировать серийный код?Правильно - посмотреь исходный код програмы и при
необходимости видоизменить его.К сожалению, найим исходнник к коммерческому продукту практичыске невозможнр, поетму приодитса идти по обходимому пути.Как извесно, любая программа представлена на ПК в виде машиных команд.Ти команды понятны микропроцессору, но
програмировать с их помощю чрезвычайно сложно: открой любой ЕХЕ-файл в
НЕХ -редакторе, и ты сразу поймешь, что я имею в виду. Чтобы облегчить процес программирования был изобретен специальной танслятор -ассамблер. Если из ассамблерного листинга можно получать машишый код, то вполне возможно и обратная операцыя. Любой файл может быть представлеой в виде ассамблерных команд- етим и занимаютса дизассамблеры.Для дизассамблера IDA(www.idapro.ru ) нужно иметь опыт.Для решения несложных задач вполне достаточно удобного W32Dasm
( www.expage.com/page/w32dasm ).А чуть не незабыл нам ищо нужен отладчик (дебаггер).Он такде дизассемблирует исходный код програмы, но при етом когда программа выполнять оприделоные действия, отладчик ищет в исходном коде програмы тот код который выполнилса в даной момент...Лидер среди отладчиков есть OllyDBG (www.OllyDBG.de).

Начиная займатса крэкингом буддь рассудителен. Мой тебе совет: не спеши брать быка за рога
и срвзу браться за взлом добротнлй софтины с продуманой защитой. Без соответствующего опыта
у тебя все равно вряд ли что-то получитса. Скорее всего,ты просто закинешь это неблагородное
занятие, одновременно с этим потеряв всякий интерес к теме.Начинать, как извесно, надо с
простого: здесь будет и понимание, и интерес, исамое главное -толк. Можно, например зайти
на www.downloads.com и накачать пару десятков сомнительных программ, типа СуперКАлькулятор, ГиперБлокнот... - среди них, наверняка, найдутса экземпляры с приметивной защитой. Но я тебе рекомендую начать с так называемых крякмисов(crackme) -специальных заданых для взломщиков. Многите из них написаны специально для новичков... Идеальный вариант для новичков - серия крякмисов от
FaNt0m'a www.crackmes.de/users/fant0m/fant0mcollection. Ее и расмотрим: для лутшего усвоения рекомендую выполнить действия паралельно со мной.Только в этом случае ты будеш понимать, о чем я говорю .

#Немного теории

Возьмем первый крякмис из колекции - FaNt0m'a CrackMe #1. В задание требуется найти серийник,
при этом используя исключительно дизассемблер . Используя дебагер по условию запрещено, и не
требуется. Посмотрим что собой представляет програма: обычное окно с текстовым полем для ввода.
После ввода случайного значения (например, слова 'античат'), появится всплывающее окно с
ошыбкой Worng rassword. Keep trying, you'll get it!. От этого, соббственно, мы и будем крутиться. Текстовые строки информационных сообщений зачастую хранятся в самом коде программы.Соотвестено, если найти обращения к строке, то без труда найдется и вызов функции вывода сообщения, а там уже и процедура проверки серийника недалеко. Попробуем разобраться во всем более подробно. В общем случае программа состоит из трех областей памяти(сегментов): сегментов кода (CS), сегментов кода (DS) и сегментов кода (SS).В первом, как ты понял, хранится непосредственно код программы, то есть команды.Второй сегмент предзначен для хранения даных (переменых, констант и т.д) - по идее, выданное програмой сообщения разполагается имено там. Сегмент стека прдставляет собой специальную область памяти, предзначенную для временого хранения даных, например, параметров, представаемых процедур и функциям. Слово 'стек' подразумевает спользования принцина FILO (First In- Last Out, первым пришел- последним вышел).Последнее занисенное в стек (командой PUSH) значение, будет извлечено (комадой РОР) первым, предпоследное- вторым и т.д. Можно нагляднопредставить себе это, вобразив колоду карт.Если ты знаком с программированием под Windows то должен знать, что стандартное окно с сообщением чаще всего выводттся с помощью специальной API-функции MessageBoxA.Сама строка собщения и прочие параметры окна помещаются в стек, откуда поже извлекаются и обрабатываются функцие (это самый разпространеный способ передачи параметров функции в язык ассамблер.)Получается что после ввода неправельного ( ты же не думаешь его угадать??))) ) серийника, програма загружает в стек адрес строки и вызывает функцию MessageBoxA. W32Dams, как и многие дизассамблеры, умеют показывать где имено происходит обращения к етой или иной строке. Это значительно облегшает поиск нужного фрагмента
кода: достаточно в дизассамблированном листинге произвести поик текста сообщения, и мы сразу найдем нужный вызов функции MessageBoxA. В большынстве случаев гденибудь рядом разпологоеться и процедура
проверки серийника наша задача- с помощбю дизассамблера просмотреть правильный пароль во впемя сравнения его со введениым.

#Взлом серийника

Зпускай W32Dams, далее меню Dissembler->Open Files и выбирай файл CRACKME1.EXE. Ну и чо переднами..? да да ето дизассемблированный код програмы, но и в нем еще нужно разобраться. Наша цель- найти ту
часть кода, которая каким-то образом использует обозначенную выше строку. Самый банальный способ-
провести поиск строки (меню Search->Find Next), но есть и другой вариант. Дело в том, что W32Dams
записывает все найденные обращения к строковым даным в специальный список
(меню Refs->String Data References). Поетому вместопоиска можно просто выбратьиз списка нужную строку и дражды кликнуть по ней мышью. Так или иначе, W32Dams, автоматически переведет на следующий код:


* Possible StringData Ref from Data Obj -> "Wrong Rassword Keep trying? you'll get it"!
004012A2 6845304000 push 00403045




Комментарий указывает на то, чо в следующей команде происходит обращение к нужной строке-
Wrong Rassword Keep trying? you'll get it!. Разберем эту команду более подробно: 004012A2 ето адрес, где в памяти находится даная команда, 6845304000 - представление команды в шестезначном виде
(машинные коды). push 00403045 - непосредственно сама ассемблерная команда. Она помещает в стек адрес
00403045, по которому, судя по комментарию W32Dams'a, хранится наша строка.По нашему предположению после загрузки адреса строки в стек, происходит вызов функции , выводящейсообщения на экран. Так и есть - смотрим ниже:


* REference To: USER32/MerrageBoxA? ord:01BBh
:004012A9 E85C00000 Call 0040130A



W32Dams нам явно указывает , что команды вызова функции Call вызывает имено API- функцию вывода окошка
(MessageBoxA).теперь смотим, что происходит до вызова этой функции.Сразу бросается в глаза следующий код:


00401291 Call 00401352
00401296 cnp eax, 00000000
004001299 je 004012B0


На самом деле это довольно стандартная конструкция - запомн ее.В 90% случаев это и есть код проверкисерийника.Сначала вызывается некоторая процедура, которая сравнивает введенный пользователеми правильный код, и по результатам проверки устанавливаетнужное значение регистра ЕАХ. После этого с помощью команды СМР производится сравнение значения регистра с 0.Если они равны (je - jump equal- перейти, если равно), осуществляется переход на адрес 004012В0. Давайте посмотрим, что находится по этому адресу - нажми Shift+F12 и в появившемся окошке введи этот адрес.ОГО! Появившийся фрагмент кода в точности повторяет код вывода сообщения на екран. Разница лишь в том,
что вместосообщения о неправильном коде, выводится надпись You got it! Your now a cracker!.Отсюда вывод:вызванная ранее процедура действительно осуществляет проверку серийных кодов. Если пользоватнль введет правильный пароль, то значение регистра ЕАХ становится равным 0, и
управление передаеться процедуре вывода сообщения об успехе. В противном случае в регистре
ЕАХ записывается 1, и перехода не происходит. Далее по коду расположен вызов MessagrBoxA с сообщением об ощибке, который и выполняется. В нашем случае все еще проще. Функция проверки является стандартной
функцией сравнения двух строк IstrcompareA, которой через стек передаются два параметра:



:00401287 689С304000 push 0040309C
* Pssible StringData Ref from Data Obj -> "m0tNaF-EmKCARc"
:0040128C 6829304000 push 00403029
* Referece To: KERNEL32.IstrcmpA,Ord:02D5h
00401291 E8BC000000 Call 00401352


Первой командой push в тек заносится адрес введеной нами строки, а второй- настоящтй серийник.W32Dams любезно подсказал, что по этому адресу находится строка m0tNaF-EmKCARc. Это и есть серийник ).

http://xss-xss.nm.ru/anti/Crackme1.RAR


Взял из журнала хакер тока не помню какой номер..
Пока всё..)
Продолжения скоро будет..)))

Последний раз редактировалось HakNet; 03.07.2006 в 17:18..
 
Ответить с цитированием

  #2  
Старый 03.07.2006, 16:46
Аватар для tclover
tclover
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме:
9751364

Репутация: 1847


По умолчанию

1. Адрес сайта оли -
Цитата:
http://www.ollydbg.de/
, а не www.ollsbg.de, как ты написал.
2. Да и меня смущает то как ты писал =).. Начало абсоютно безграмотно (грамматически), потом всё отлично... Ну это неважно )
3. Первый крякми фантома может крякнуть любой человек умеющий читать ), ты бы хоть про второй написал )
4. .
Цитата:
..Можно, например зайти
на www.downloads.com и накачать пару десятков сомнительных программ, типа СуперКАлькулятор, ГиперБлокнот... - среди них, наверняка, найдутсаэкземпляры с приметивной защитой...
- 100% что я уже где-то это видел )
[добавлено позже]

Вот откуда растут ноги у этой статьи )
http://www.xakep.ru/magazine/xa/080/070/1.asp
Как я и предполагал...

Последний раз редактировалось tclover; 04.07.2006 в 01:08..
 
Ответить с цитированием

  #3  
Старый 03.07.2006, 17:02
Аватар для Micr0b
Micr0b
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме:
2630617

Репутация: 245
Отправить сообщение для Micr0b с помощью ICQ
По умолчанию

Цитата:
Сообщение от tclover  
1. Адрес сайта оли - , а не www.ollsbg.de, как ты написал.
2. Да и меня смущает то как ты писал =).. Начало абсоютно безграмотно (грамматически), потом всё отлично... Ну это неважно )
3. Первый крякми фантома можёт крякнуть любой человек умеющий читать ), ты бы хоть про второй написал )
4. . - 100% что я уже где-то это видел )
[добавлено позже]

Вот откуда растут ноги у этой статьи )
http://www.xakep.ru/magazine/xa/080/070/1.asp
Как я и предполагал...

Я в это время редагу....)

А про автора провтыкал..сори..)
 
Ответить с цитированием

  #4  
Старый 03.07.2006, 17:15
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Все крякмисы от Fantom'a + тутор от меня(BUG(O)R).
WxProtect_CrackMe
TimeCOP
NoName CrackMe's
Crackme#13_By_Detten


Читать тут: http://hunger.ru/debug
 
Ответить с цитированием

  #5  
Старый 03.07.2006, 20:41
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

шестезначном - шестнадцатеричном (это ж тебе не аська)
почему за адресом 00401296 следует адрес 004001299 (по идеи ты должен был скопировать это из дизасемблера)
cnp eax, 00000000 - cmp eax, 00000000 (нет такой команды cnp)
Если кодишь на asm'e, эти ошибки сложно незаметить, их даже сложно допустить, не говоря о том, что ты должен был это хотябы проверить, перед списыванием.

Ну ладно, оформление хорошее, смысл направлен на обучение начинающих крякеров. +
 
Ответить с цитированием

  #6  
Старый 03.07.2006, 21:11
Аватар для Micr0b
Micr0b
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме:
2630617

Репутация: 245
Отправить сообщение для Micr0b с помощью ICQ
По умолчанию

Я проверял...=))
 
Ответить с цитированием

  #7  
Старый 03.07.2006, 23:07
Аватар для c411k
c411k
Reservists Of Antichat - Level 6
Регистрация: 16.07.2005
Сообщений: 653
Провел на форуме:
8854279

Репутация: 2727


По умолчанию

CodePimps e-zine issue #5 статья 0x05 Введениe в реверс инжиниринг by Zool
разобраны все crackmes`ы FaNt0m’a..
смотрим здесь..
весь номер тут..

здесь еще один кракми http://ct757.net.ru/misc.html
__________________
ПИУ-ПИУ...
 
Ответить с цитированием

  #8  
Старый 04.07.2006, 02:01
Аватар для ~Fenix~
~Fenix~
Banned
Регистрация: 26.07.2005
Сообщений: 240
Провел на форуме:
1266236

Репутация: 75
Отправить сообщение для ~Fenix~ с помощью ICQ
По умолчанию

кажется я ето читал на краклоб.ру нехорошо ток делать, лови -
 
Ответить с цитированием

  #9  
Старый 05.07.2006, 10:48
Аватар для [Zarakul]
[Zarakul]
Участник форума
Регистрация: 12.12.2005
Сообщений: 243
Провел на форуме:
743364

Репутация: 67
Отправить сообщение для [Zarakul] с помощью ICQ
По умолчанию

Цитата:
Сообщение от tclover  
Вот откуда растут ноги у этой статьи )
http://www.xakep.ru/magazine/xa/080/070/1.asp
Как я и предполагал...
Там без скринов. А HakNet хотя бы старался. За это ему +
 
Ответить с цитированием

  #10  
Старый 06.07.2006, 13:49
Аватар для Tikson
Tikson
Постоянный
Регистрация: 09.10.2005
Сообщений: 333
Провел на форуме:
1387660

Репутация: 74
По умолчанию

nerezus проще диск от краклаб купить всего 300р зато там ВСЕ
-----
Цитата:
кажется я ето читал на краклоб.ру нехорошо ток делать, лови -
и в журнале хакер это тоже писали =)))
---------
кстати был даже хакер спец в котором ВСЕ про крекинг писали =))

Последний раз редактировалось Tikson; 06.07.2006 в 13:53..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Софт для мобильных телефонов под *nix Grrl Сотовый фрикинг 2 02.03.2007 01:47
Xss для новичков Micr0b Уязвимости 0 04.06.2006 18:25
Брутофорсер на Delphi для новичков. TaNkist Авторские статьи 5 23.04.2006 19:37
какОй трой ИСпоЛЬзоваТЬ длЯ поЛНого УПРАвЛЕиЕ уд.КОМПОМ? UnKn0wN E-Mail 32 08.04.2006 04:20



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ