Статья Faq по крекингу для начинающих 1.0

1911froct

Публикатор
Элита форума
29 Сен 2020
242
125
Q: Что такое крекинг?
A: Крекинг - это исследование программного обеспечения, с целью выявления слабых мест в защите программы, и последующей эксплуатации этих мест с целью получения бесплатной регистрации программного продукта.

Q: Как стать крекером?
A: Для того чтобы стать крекером, в первую очередь необходимо овладеть языком Ассемблера, знать 16-ричную систему исчисления и понимать мнемоники, уметь пользоваться отладчиком. Но для простых взломов достаточно и поверхностного знания Ассемблера. Переработать кучу аналетической информации, и много практиковаться.

Q: Законно ли взламывать программы?
A: Конечно же нет! Статья 272 УК РФ. Неправомерный доступ к компьютерной информации. Но заниматься крекингом у себя дома (для себя), вам никто не запрещает.

Q: С чего начинать обучение крекингу?
A: Начинать обучению крекингу, многие люди советуют с изучения языка Ассемблера, с последующей переработкой материалов по крекингу для начинающих и самое главное в этом деле - практика.

Q: Какие сайты по крекингу посоветуете?
A: Сайт "www.cracklab.ru" - портал по крекингу (масса статей для новичков). Сайт "www.wasm.ru" - там есть статьи по крекингу и форум.

Q: Какие книги по ассемблеру читать?
A: Олег Калашников "Ассемблер? Это просто". Он же автор одноимённой рассылки (кстати многие крекеры начинали именно с неё). Владислав Пирогов "Ассемблер для Windows". Магда Ю. "Использлвание ассемблера для оптимизации программ на С++"

Q: Где взять инструменты крекера?
A: С разных сайтов посвящённых теме крекинга. Например на cracklab.ru очень много программ для крекера, также там можно заказать диск со всеми нужными инструментами для начинающих.

Q: Где взять информацию про API функции?
A: Существуют специальные справочники! Введите в google.ru "справочники по API" и наслаждайтесь.

Q: На какую API функцию мне поставить брейкпоинт, чтобы перехватить информационное окно о неверном регистрационном коде?
A: Ну, функций для создания таких окон много, но основные - это 1) MessageBox 2) ShowWindow 3) CreateWindowEx. Но основной конечно же является MessageBox.

Q: А что ещё за брейкпоинт такой?
A: Брейкпоинт - точка останова программы, они используются для отладки приложений, когда например надо узнать, что в данный момент содержиться в какой-нибудь переменной и.т.д.

Q: Какой простенький отладчик посоветуете для новичка, а то SoftICE мне не по зубам.
A: Да софтайс - действительно отладчик для профи, у новичка по нему всегда возникает много вопросов, даже при инсталяции! Оптимальным решением будет OllyDebuger! Он прост в установке и интуитивно понятен, дажеь для новичка.

Q: А как мне поставить брейкпоинт в Olly?
A: Жмём Alt+F1 и пишем "bp MessageBoxA" - пример для функции MessageBox.

Q: Ну ладно, а как мне его теперь удалить?
A: "bc MessageBoxA", а вообще если введёте "help" в коммандной строке Olly, получите много полезной информации, не только по теме брейкпоинтов!

Q: Как я могу узнать, чем запакованна программа?
A: Воспользоваться программой PEid! Просто скармливаем бинарник ей и в статусбаре видим чем пакованна, а если не пакованна, то видим на чём написанна!

Q: Как мне расспаковать программу упакованную UPX'ом?
A: Тем же UPX'ом! Для этого в командной строке пишем: upx.exe -d file.exe - где file.exe, файл, который нужно распаковать!

Q: Хорошо, ну а что делать с ASPack и ASProtect?
A: Для AsPack - Caspr, AsPackDie. Для AsProtect 1.1-1.2 - Caspr, ASPRStripperXP. А вообще нужно учиться самому распаковывать программы, ведь распаковать автоматическими распаковщиками не всегда удаётся!!!

Q: Существует ли хороший упаковщик или протектор, который трудно взломать,распаковать?
A: Да. И по моему это Armadillo и Obsidium.

Q: Я ставлю брейкпоинт на функцию hmemcpy, а он почему то не ставиться!
A: Скорее всего проблема в вашей операционной системе. Дело в том, что функции hmemcpy нет в WinNT(XP,2000,2003). Она есть в 98,ME (насчёт 95 говорить не буду, не пробывал, не знаю).

Q: Я новичок в крекинге. Посоветуйте какую нибудь лёгкую для взлома программу.
A: Для тренировки в крекинге существуют специальные маленькие программки (Crackmes). Они имитируют реальную защиту программного обеспечения. Например можно посоветовать Crackmes от Fantom'а. Не знаю как сейчас, но раньше их можно было скачать с http://fant0m.cjb.net. Я бы так же советовал скачивать крякмисы написанные на разных языках программирования. Потом в реальных программах вы уже будете знать откуда подступиться.

Q: Как мне создать свой KeyGen?
A: Написать KeyGen можно написать, проанализировав участок кода, который генерирует правильный серийный номер, главное - это понять как он генерируется, ну а потом дело техники. Портируем функцию генерации в свою прогу, вот вам и кейген. Напрмер (очень тупой пример =)):

Есть код:

...

PHP:
MOV EAX,[наш id компа]
INC EAX
ADD EAX,2Dh
DEC EAX
DEC EAX
...

Допустим эта процедура генерит код, по идентификационному номеру нашего компа, а номер этот например будет: 12345. Получаем:

MOV EAX,3039h <------- прога записывает в EAX id компа
INC EAX <------- увеличивает EAX на 1 (теперь в EAX=303Ah)
ADD EAX,2Dh <------- прибавляет к EAX 45 (теперь в EAX=3067h)
DEC EAX <------- уменьшает EAX на 1 (теперь в EAX=3066h)
DEC EAX <------- уменьшает EAX на 1 (теперь в EAX=3065h)

Вот теперь мы можем сказать, что для id=12345, Serial=12389. После этого можно написать keygen, обладая минимальными навыками программирования.