Дослідження алгоритму генерації коду у програмі BlueFace
Дослідження алгоритму генерації коду у програмі BlueFace і написання генератора правильних кодів Автор: MozgC
МЕТА: BlueFace (Final Release) Складність: Легко, для новачків Інструменти: SoftIce 4.05 для Win9x. або SoftIce 4.05 для Windows XP. або SoftIce видертий з Driver Studio 2.7 для Windows XP/2000 (Для користувачів WinXP рекомендую SoftIce з DS 2.7) W32Dasm
Як уже говорив у першій статті, дуже часто буває так, що код або серійний номер не завжди постійні, а залежать від будь-яких параметрів, тобто. генеруються в залежності від цих параметрів. Як дізнатися? Ну по-перше, це видно під час огляду програми у відладчику, - це прийде з досвідом, але в основному майже завжди це можна зрозуміти і без огляду. Ось як можна орієнтуватися:
1)Для реєстрації вас просять ввести ваше ім'я, можливо ще якусь інформацію, та реєстраційний код.
2)У вікні реєстрації програма виводить щось схоже на ім'я комп'ютера, або просто набір символів або ваше ім'я (ну не просто так вона їх виводить). У випадку програма виводить серійний номер і навіть пише, що це серійний номер.
4)Після переустановки, або при встановленні на іншому комп'ютері програма пише інший серійний номер, або реєстраційний код, який працював на одному комп'ютері - не працює на іншому (ну або відповідно код, який працював спочатку - не підходить після переустановки).
Що практично.
звіряється введений нами код, що міститься в esi, з правильним кодом, який міститься в ecx. Значить код генерується і по ходу генерації (якщо це можна назвати генерацією, потім будете сміятися) заноситься в ecx. Подивимося, що робиться з ecx до порівняння.
1)Зполя serial number у реєстраційному вікні береться число - остання частина рядка, після другого тире.2)До цього числа додається довжина імені комп'ютера + 1 (ім'я комп'ютера записано в першій частині поля serial number, до другого тире)3)Отримане число множиться на довжина імені комп'ютера + 1.
Перша частина "VAZ-DN7WUNSYNWE" – це ім'я комп'ютера, її довжина 15. Друга частина "31586016". До 31586016 додаємо 15 та ще 1, отримуємо 31586032. Тепер це число множимо на (15+1), отримуємо 505376512 – це і є правильний реєстраційний код у моєму випадку! У вас він природно буде іншим (як я вже казав, ім'я комп'ютера як і весь рядок serial number, у вас буде іншим. Наприклад, у вас може бути такий серійний номер - SuperHacker-1366613). Ну і як? Важко? Приступимо до написання кейгена!