Toyota TechStream генератор ключів Змінити Видалити
Спітнілі долоні потираючи, я взявся за течстрім (Techstream). Він мені потрібен на моєму ноут щоб тикати дроти в бездушну залізяку.
Поставив течстрім 11.хххх, але він вже не дає працювати в "демо" режимі як дозволяв працювати у всіх, здається версіях, до 10 включно. Ключі на софт роздає пара людина, нахаляву, але щоб їх отримати потрібно Регал на форумах околоавтомобільних і випрошувати їх стоячи на колінах, причому проявляючи строго дозовану кількість пафосу в повідомленнях. Інакше не зійде.
Взагалі, якщо дивитися на бінарники течстріма версії до 10 включно (все цікаве з ключами відбувається всередині MainMenu.exe) крізь каламутні лінзи дизассемблера, то там все очевидно. Код добре читається, але сильно розмазаний. В 11й версії тойота і володар новенького авенсиса (пароль на деякі рядки всередині самого течстріма, які декріптятся на льоту - MyNewAvensisIsWonderful
) Вирішили захистити бінарники якимось хітрожопие (може навіть самопальним) протектором. Протектор захищає від раптового аттачем отладчиком, від створення віддалених потоків, від дампа за допомогою деяких утиліт. Причому течстрім запускається сам, потім запускає ще одного себе, цей другий течстрім виступає в ролі відладчика і напевно робить какойто трейс для ісходго процесу. В деталі не вникав, не особливо цікаво. Відкинувши дебагер процессхакером можна спокійно зняти дамп, хоча пріаттачівшісь своїм дебаггера як і раніше спостерігаю як процес в паніці завершується. Знявши дамп я побачив що за великим рахунком функції перевірок ключів якщо і були змінені то зовсім небагато. А значить, нагавнокодів генератор для 10й версії я цілком в теорії запозичень і 11й. Реверсінженірінг був недовгий, так як спасибі Ільфаку.
Сам ключ неодмінно повинен складатися з 46 символів і це жорстко зашито в функціонал його перевірки.
З символу 0 - 32 йдуть байти ключа (особливо не розбирався, може це просто МД5 від солоної рядки апаратного айди машини). Далі 4 символу на к-ть днів які обмежують термін дії ключа. На форумах всюди пропонують максимум 5000 днів, але течстрім хаває і 9999 днів, але після перезавантаження всерівно показує 5000 днів :). Далі дата в форматі рік \ місяць \ число, коли згенерований ключ. Все це перевіряється на факт того щоб ключ не був протухлої, щоб скрізь були неодмінно числові значення і все таке:
Де написано "тут цікаво" - там цікаве. )) Функа генерує айди ключа і порівнює його з тим, що ввів користувач у формі реєстрації. Збігається - ок. Чи не збігається - не ок. Все, як видно, іліментарно. Що ми робимо? Сигнатурної в пам'яті шукаємо цей виклик, після нього суем джамп в наш код, де витягаємо з стека згенерований кей і показуємо його користувачеві, щоб той його скопіював і. ввів!
DWORD dwOldFunctionAddress = 0;
Так, милиці, асемблер, гавнокод, все ось це. Для цього накодо невелику длл, яка Інжект в MainMenu.exe стартером (нашим невеликим ехе) і все. Ехе просто інжектується длл в течстрім, за винятком того що для 11й версії потрібно відключити "дебагер", для цього я взяв Функу з коду процессхакера.
Як використовувати. Досить просто. Копіюєте длл і ехе в папку з MainMenu.exe, запускаєте Starter.exe і якщо бачите повідомлення про те що все ок ( "Code patched, try register"), пробуєте зареєструватися. Течстрім попросить ввести ключ, вводите свідомо нверний, наприклад
і натискаєте ОК. У цей момент течстрім генерує вірний ключ, мій код його перехоплює і показує вам щоб ви його скопіювали і вставили і вже на нього течстрім дасть добро. Після успішної реєстрації запускати течстрім можна як зазвичай, без використання стартера.
Мій метод хороший тим що я не порчу оригінальні файли течстріма, що працює так само софт поновлення прошивок, що ключ легальний.