avva: (Default)
[personal profile] avva
Придумал сюжет для криптофантастического романа или повести. Точнее, не сюжет даже, а завязку.

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


Смотрит внутрь этой функции, видит: там что-то вычисляется, странное и сложное. Разбираться, что именно, чтобы написать генератор номеров, лень, там куча каких-то битовых операций неясных в цикле. С другой стороны, никаких подвохов в виде проверки контрольной суммы вычисляющего кода, или побочных эффектов функции, или других проверок в других местах, вроде бы не видно. Обрадовавшись, что всё оказалось так просто, он быстро забивает код функции, чтобы она всегда возращала истинность проверки, готовит патч, перепроверяет с ним — вроде бы всё работает, программа принимает любой серийный номер без проблем — и отсылает патч по стандартным своим каналам дистрибуции. Работа сделана.

Но что-то продолжает его беспокоить, почему-то он всё время возвращается мысленно к коду этой функции. Что-то там было знакомое, хоть даже и в ассемблере... В конце концов через пару дней он открывает опять пропущенный через дизассемблер код программы, находит эту функцию, читает внимательно, тщательно выписывает, что она делает с серийным номером, мучительно пытается вспомнить, где он это видел. Наконец срывается с места, прыгает к книжной полке, хватает изрядно потрёпанное второе издание Applied Cryptography и быстро находит в нём обсуждение MD5. Да, не может быть никаких сомнений! Загадочная функция проверки серийного номера попросту пропускает его через MD5, и сравнивает после этого с фиксированным 128-битным числом. Более того, числом этим оказывается 0x0123456789ABCDEFFEDCBA9876543210 . Герой откладывает книгу в сторону и надолго задумывается, облокотившись на клавиатуру и уставив невидящий взгляд в горящие на мониторе строки ассемблерных команд, составляющих функцию проверки серийного номера...

Date: 2003-11-23 11:03 am (UTC)
From: [identity profile] robinbobin.livejournal.com
>У меня речь идёт о функции проверки серийного номера, а не генерации.

axa. ponyatno... a function proverki chto proveryat-to budet?

obychanay fuction vyglyadit tak

BOOL CheckSerial( LPSTR pszUserName, LPSTR pszSerial)
{
LPSTR pszNumberForInputName = MakeSerial ( pszUserName);
if ( strcmp (pszNumberForInputName, pszSerial))
return OK;
else
return NAX;
}

>Советую не высказываться по поводу того, что "никогда никогда не делает" или "все всегда делают" в таких делах, это выглядит довольно глупо.

spasibo, vozmu na zametku, a to pryam dazhe ne znal...

esli ne ponyatno, obyasnyau, "nikto nikogda" imelis' vvidu seriknye krakery, kotorye znaut paru komand SoftIce (bpx etc), bolee togo oni ne znaut cheshe vsego assemblera, maximum, 0x74 pomenyat na 0x75.

i takix znanij obychno xvataet otlomat' 99% zashit.

est' konechno ludi, kotorye reversiruyut hash functions... no takix ochen' malo... i takie ludi, obychno, vzlomom ne zanimautsya...

Date: 2003-11-23 11:36 am (UTC)
From: [identity profile] avva.livejournal.com
axa. ponyatno... a function proverki chto proveryat-to budet?

Ну мало ли есть легко обратимых, но не тривиальных, преобразований данных?

Вот простейший пример: при генерации ключа берутся данные пользователя и сжимаются простейшим Huffman-кодом (или просто готовым gzip'ом, скажем), получается ключ (без всяких заголовков, естественно, чистый закодированный поток). При проверке берётся ключ, разжимается гораздо более простой функцией (или готовым gunzip'ом) и сравнивается с данными. Естественно, функция разжатия в продукте не называется "decompress", и ненатренированный взгляд понятия не имеет, чего она там делает; при этом функции генерации ключа в продукте нет вовсе.

i takix znanij obychno xvataet otlomat' 99% zashit.

Возможно, но оставшийся 1% как раз наиболее интересен.

Среди кракеров есть и очень толковые люди, хотя их, конечно, мало.

Герой сюжета может, кстати, и не быть действующим кракером, может просто заняться именно этой программой по какой-то причине. Я, скажем, в последний раз занимался взломом software-защиты много лет назад, но могу себе представить, что как-нибудь вернусь к этому разок-другой просто ради прикола.

Date: 2003-11-23 11:56 am (UTC)
From: [identity profile] robinbobin.livejournal.com
Ну мало ли есть легко обратимых, но не тривиальных, преобразований данных?


v etom to i smysl. chto dlya crakera sovershenno neinteresno samo preobrazovanie.. on dazhe ne ozenit, trivialno (xor 0x55) ili netrivialno..


Вот простейший пример: при генерации ключа берутся данные пользователя и сжимаются простейшим Huffman-кодом (или просто готовым gzip'ом, скажем), получается ключ (без всяких заголовков, естественно, чистый закодированный поток). При проверке берётся ключ, разжимается гораздо более простой функцией (или готовым gunzip'ом) и сравнивается с данными. Естественно, функция разжатия в продукте не называется "decompress", и ненатренированный взгляд понятия не имеет, чего она там делает; при этом функции генерации ключа в продукте нет вовсе.


soglasen, prostejshij...


При проверке берётся ключ, разжимается гораздо более простой функцией (или готовым gunzip'ом) и сравнивается с данными.

axa.. vot tebe vse dannye v otkrytom vide... smotrim, i vvodim uzhe ix v okoshke registrazii... dazge keygen ne nuzhen...

kakaya razniza v slozhnosti functzii?


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


v tom-to i delo, chto borbu xeroya suzheta s programmoj ne smogut ozenit bolshinstvo chitatelej/zritelej :) dazhe te preslovutye 99% krakerov...

tem komu interesny podobnye veshi, vnimatelno perechityvaut shnajera naprimer... mnogo li, vnimatelbyx chitatelej shnaeyera?
da i uzh lushe shayera perechitat'... ili kasperskogo (krisa) naprimer :)

Date: 2003-11-23 12:03 pm (UTC)
From: [identity profile] avva.livejournal.com
axa.. vot tebe vse dannye v otkrytom vide... smotrim, i vvodim uzhe ix v okoshke registrazii... dazge keygen ne nuzhen...

Куда смотрим? Предполагается, что у нас нет наготове работающего ключа. Мы не знаем, что с ним делает эта функция, как именно она производит проверку. Функции генерации тоже нет. Так или иначе приходится лезть в дебаггер/дизассемблер и разбираться с тем, что функция проверки конкретно делает, или просто забить её патчем, чтобы всегда возвращала true (что, собственно, и делает мой герой, а потом возвращается к ней только из любопытства уже).

v tom-to i delo, chto borbu xeroya suzheta s programmoj ne smogut ozenit bolshinstvo chitatelej/zritelej :) dazhe te preslovutye 99% krakerov...

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

Date: 2003-11-23 12:10 pm (UTC)
From: [identity profile] robinbobin.livejournal.com
>С этим я, в общем-то, согласен. Поэтому это, видимо, плохой сюжет ;) Слишком сложная завязка для большинства потенциальных читателей.

btw, mne vsegda interesno, kak v filmax pokazyvaut napryazhennuyu rabotu mozga geroya... tazhe kamenskaya naprimer.... v knige ladno, na neskolkix stranizax potixonku opisyvateysa polet mysli... no v filme kak? i na etom teryatesya prelest' knigi, gde xeroj umeet golovoj soobrazhat'...

Date: 2003-11-23 01:01 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Я, скажем, в последний раз занимался взломом software-защиты много лет назад, но могу себе представить, что как-нибудь вернусь к этому разок-другой просто ради прикола.

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

Date: 2003-11-24 08:04 am (UTC)
ext_454496: (Default)
From: [identity profile] alexcohn.livejournal.com
дай ссылку, please

Date: 2003-11-24 12:37 pm (UTC)
From: [identity profile] dimrub.livejournal.com
http://hackergames.net

Здесь их очень много. Лично я рекоммендую:

1. Ma's Reversing http://3564020356.org/ (ОЧЕНЬ крутой сайт. Головоломки в основном на темы крипто и стегано, некоторые безумно сложные, и довольно познавательные).

2. Mod-X http://www.mod-x.co.uk/ Очень нетривиально. Сейчас уже 9 уровней, когда я проходил было 8, 6-й - самый сложный.

3. HackQuest http://www.hackquest.com очень много очень разнообразных задачек (правда, не слишком сложных). Довольно много на dysassembly.

4. Electrica http://www.caesum.com/game/ - тоже отличный сайт. Очень много совсем нетривиальных dysassemblies, включая простенькие packers.

Проблема с тем, что вот эти 4 -основные сайты, после них все остальное будет уже повторением.

Date: 2003-11-24 01:18 pm (UTC)
From: [identity profile] robinbobin.livejournal.com
ya kogda prikolnyj CrakMe napisal... pod Win32.. vrode nikto ne otlomal :)

January 2026

S M T W T F S
    1 2 3
4 5 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 6th, 2026 11:04 pm
Powered by Dreamwidth Studios