eXeL@B —› Вопросы новичков —› Помощь с keygen .NET |
Посл.ответ | Сообщение |
|
Создано: 25 ноября 2019 17:37 · Поправил: Odin · Личное сообщение · #1 Прошу помощи подскажите плз нашел в программе проверку серийника можно ли написать кейген если в программе зашито ввиде байтового массива SecretKey и Iv или нужно свой ключ генерить, патчить и только потом кейген писать? Можно конечно пропатчить и забыть но хочется кейген написать Используется TripleDES c этими параметрами: CipherMode: CBC Padding: PKCS7 SecretKey Length: 24 Iv Length: 8 InputBlockSize: 8 OutputBlockSize: 8 При вводе левого серийника из 32-х символов выбрасывается System.Security.Cryptography.CryptographicException: Bad Data. при вызове метода cryptoStream.FlushFinalBlock() п.с. познания в крипте минимальные Вот процедура проверки серийника Code:
или |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 25 ноября 2019 18:29 · Личное сообщение · #2 Odin пишет: хочется кейген написать но п.с. познания в крипте минимальные Забавно читать такие откровения. Для начала можно было бы погуглить про DES и предоставить в топике свои рассуждения на эту тему. По возможности их уже дополнят, скорректируют. Но раз даже этого минимума нет, то попробую за тебя начать: Odin пишет: зашито ввиде байтового массива SecretKey и Iv Если известен секретный ключ (SecretKey) / вектор инициализации (Iv) - судя по всему, никаких проблем нет. Odin пишет: KeyState CheckKey(string key) { // key length: 32 chars Это вводимая строка, которая преобразовывается в байты, затем расшифровывается. Результат отгружается в массив, с которым происходят побайтовые сравнения внизу. Odin пишет: 32-х символов выбрасывается System.Security.Cryptography.CryptographicException: Bad Data. Наверноеж, формат должен быть в hex, учитывая процедуру конвертации (ex: 010203AABBCCF1) | Сообщение посчитали полезным: Odin |
|
Создано: 25 ноября 2019 18:57 · Поправил: sefkrd · Личное сообщение · #3 У тебя есть ключ и вектор.. Тебе нужно выполнить вместо TripleDESCryptoServiceProvider().CreateDecryptor(SecretKey, Iv) --> TripleDESCryptoServiceProvider().CreateEncryptor(SecretKey, Iv) данных, подходящих под условие двух последних if.. Длина криптованой строки не должна превышать 16 байт(не влезешь в длину ключа активации) Типа: Code:
А уже в key.bin будет твой ключ в формате hex.(32) | Сообщение посчитали полезным: Odin |
|
Создано: 25 ноября 2019 19:04 · Личное сообщение · #4 ELF_7719116 пишет: Это вводимая строка, которая преобразовывается в байты, затем расшифровывается. Результат отгружается в массив, с которым происходят побайтовые сравнения внизу. Спасибо, это мне понятно из кода также читал немного про TripleDES но не понятно почему при расшифровке ключа даже в формате hex выкидывает исключение такое ощущение что в коде чего-то не хватает код получен после обработки в de4dot до этого он был обфусцирован. ELF_7719116 пишет: Наверноеж, формат должен быть в hex, учитывая процедуру конвертации (ex: 010203AABBCCF1) Да формат в hex но например строка "48656C6C6F576F726C6448656C6C6F57" тоже выдает CryptographicException: Bad Data. |
|
Создано: 25 ноября 2019 19:45 · Личное сообщение · #5 |
|
Создано: 25 ноября 2019 19:59 · Поправил: Odin · Личное сообщение · #6 Prober пишет: Паддинг? Да по описанию эксепшена это связано с Padding Немного почитал стало ясно вроде как sefkrd указал выше если сделать E(SK, IV) то нужный паддинг сам добавиться при шифровании. Теперь не понятно другое как обычно поступают чтоб получить данные, подходящих под условие ведь выходной массив данных после шифрования без патча я не могу изменять. |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 25 ноября 2019 21:27 · Личное сообщение · #7 Odin пишет: данные, подходящих под условие ведь выходной массив данных после шифрования без патча я не могу изменять. Ничего не требуется патчить в самой программе. Т.к. в кейгене выполняется цепочка этих же операций наоборот: данные в массив изначально задаются с твоей стороны и подбираются, согласно последнему условию И граничному условию - длинне массива, который не должен превышать 16 байт. Потом это все шифруется TrippleDES.CreateEncryptor с известным SecretKey и Iv, затем преобразовавается в строку. Программа выполнит обратные действия. По существу, необходимо знать _licenseVersion и убедиться, что найденная функция - единственная, которая чекает серийник и остальные байты в массиве не сравниваются с другими константами. | Сообщение посчитали полезным: Odin |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 26 ноября 2019 17:57 · Личное сообщение · #8 |
|
Создано: 26 ноября 2019 18:08 · Личное сообщение · #9 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 26 ноября 2019 20:02 · Личное сообщение · #10 |
|
Создано: 28 ноября 2019 15:20 · Поправил: Odin · Личное сообщение · #11 sefkrd, ELF_7719116 Большое спасибо за ликбез! Благодаря вам написал свой первый кейген Мучился и не мог понять как разрабы проверку серийника сделали помимо TripleDES и т.д. т.е. в программе есть форма с TextBox-ми максимальное кол-во символов 32 в формате hex даже в отладчике проверил что на вход метода: Code:
доходят эти самые 32 символа без изменений. Но вот проблема в том что когда я делаю в кейгене ENCRYPT(SecretKey, IV) на выходе я получаю 48 символов (32 символа + 16 символов добавляет Padding.PKCS7) a в форму только ведь 32 символа можно ввести! Если при ENCRYPT указать Padding.None то я получаю 32 символа но тогда метод CheckKey выше выкидывает CryptographicException: Bad Data. так как патчить код чтоб сделать Padding.None в программе я не хотел стал искать дальше оказалось что эта форма фейковая! Активатиция осуществляется через зашифрованный файл лицензии в котором хранится Key (48 символов) если в поле записать ключ сгенерированный моим кейгеном и зашифровать файл обратно то программа успешно активируется. | Сообщение посчитали полезным: sefkrd, Jupiter, mak, daFix, ELF_7719116 |
|
Создано: 28 ноября 2019 15:56 · Личное сообщение · #12 Odin пишет: написал свой первый кейген Поздравляю! Круто, когда неофит не останавливается, а доходит до конца! Добавил твой пример в правила: ----- EnJoy! | Сообщение посчитали полезным: mak, Odin |
eXeL@B —› Вопросы новичков —› Помощь с keygen .NET |