Сейчас на форуме: vasilevradislav, Magister Yoda, site-pro, Rio (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Проверка введенного кода |
Посл.ответ | Сообщение |
|
Создано: 04 июля 2013 12:08 · Личное сообщение · #1 Здарова, коллеги! Тут попалась программка, в которой никак не могу вычислить правильный серийный номер. Программка изначально запускает инсталляцию с ПК - проверяет введенный серийник (4 отдельных поля по 4 знака) и, если все хорошо, начинает закидывать cab-файлик на WM5 устройство, где уже, собственно, и устанавливается сама программка. Проблема в том, что никак, хоть убей, не могу поймать процесс сравнения введенного кода с уже заранее вычисленным (программка ждет соединения с устройством, потом на основании серийного номера устройства генерит код установки, с которым потом идет сравнение введенного кода). Прошу прощения "за много текста", но случай действительно интересный. Нашел условный переход прямо перед процессом заливки cab-файла в устройство, изменил на безусловный переход - файл залился и программа успешно установилась на устройстве, но в процессе запуска опять же идет проверка кода - тупик. Да, программа генерит текстовый файлик с тем ключом. который вводится и потом передает его уже в устройство для дальнейшего юзания. Теперь, собственно, вопрос - реально ли увидеть искомый код? В стеке вижу как мусоляться серийник устройства и вводимый код - и все... Буду рад любым советам, спасибо! |
|
Создано: 04 июля 2013 12:11 · Поправил: reversecode · Личное сообщение · #2 |
|
Создано: 04 июля 2013 12:21 · Личное сообщение · #3 Yurkar пишет: Проблема в том, что никак, хоть убей, не могу поймать процесс сравнения введенного кода с уже заранее вычисленным а кто сказал, что он должен сравниваться "с уже заранее вычисленным" Это как раз то, как не надо делать защиты... А на счет посоветовать, программу выложите, может кому интересно и поковыряются, а гадать никто не будет, а то и тему закроют ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 04 июля 2013 12:40 · Личное сообщение · #4 |
|
Создано: 04 июля 2013 12:52 · Личное сообщение · #5 |
|
Создано: 04 июля 2013 13:08 · Личное сообщение · #6 |
|
Создано: 04 июля 2013 13:23 · Личное сообщение · #7 |
|
Создано: 04 июля 2013 13:51 · Личное сообщение · #8 |
|
Создано: 04 июля 2013 14:05 · Личное сообщение · #9 |
|
Создано: 04 июля 2013 14:22 · Личное сообщение · #10 Да - кей файл создается - но создается только после того, как я введу серийник и процесс установки продолжиться дальше на КПК. Если же ввести заведомо неправильный код, изменить je на jmp - все установиться корректно на КПК - но все с тем же неправильным серийником (создается файл, записывается серийный номер устройства и код - файлик "серийный_номер_key.txt" - но код мой). Все бы ничего, но при старте самой программы на КПК происходит похожая проверка на валидность ключа ... |
|
Создано: 04 июля 2013 14:31 · Личное сообщение · #11 Просто как самый надежный вариант - это брякаться во время ввода кода - и пытаться отловить момент сравнения, это по-любому должно быть, но почему-то нет. И карту памяти смотрел, и ставил бряк на кнопку Далее, чтоб оттрейсить с этого момента - результат нулевой. Там еще используется TlsSetValue, TlsGetValue - может какие-то результаты пишутся в отдельный thread (приложение-то multithreaded). Но вроде и бряка всегда стоит на API CreateThread... p.s. 100169B0 |. /74 7B JE SHORT 10016A2D (вот тот условный переход) |
|
Создано: 04 июля 2013 14:55 · Поправил: reversecode · Личное сообщение · #12 берите ida, и реверсите, находите в ней имя файла и референсы на него и изучаете процедуры прохождения пути до создания кейфайла если даете джампы то давайте относительные а не с уже загруженых екзе или длл | Сообщение посчитали полезным: xreal |
|
Создано: 04 июля 2013 15:08 · Личное сообщение · #13 |
eXeL@B —› Крэки, обсуждения —› Проверка введенного кода |