· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Нужна помощь: Серийный номер при инталляции

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Сен 22, 2004 13:49:35

Немалоизвестная компания Acronis выпускает свои продукты пакуя их в собственные инсталляторы, написанные, насколько удалось разобрать, на VC++ 7.0. Элементы управления нестандартны, ввиде рисунков, т.о. на привычные WM_ENABLE они клали... Напоминаю, что кнопочка Далее разблокируется при правильном вводе серийника, вместе с этим блокируются поля ввода частей серийника.

Процедура разблокировки приблизительно такая:

MOV EAX,DWORD PTR DS:[ECX+5C]
TEST AL,2
JNZ SHORT partitio.00415DED
OR EAX,2
MOV DWORD PTR DS:[ECX+5C],EAX
MOV ECX,DWORD PTR DS:[ECX+C]
TEST ECX,ECX
JE SHORT partitio.00415DED
PUSH 1 ; Параметр 1 - вкл, 0 - откл.
PUSH ECX ; Хэндл окна
CALL DWORD PTR DS:[<&USER32.EnableWindow>
RETN

Найти процедуру сравнения (если таковая вобще есть) правильного серийника с введённым мне не удалось.

ROR писали кейгены к таким инсталляторам, но лаг в том что мне в руки попался скачанный с сайта акрониса 50меговый дистрибутив - там видать дофига всякой всячины, серийника нет, эти самые кейгены не берут. Мож кто знает, может ли здесь быть в принципе процедура сравнения, если да то где её искать, а если нет, то хотя бы как кнопку далее в чувства привести (видимо там не только WM_ENABLE, но и плюс смена картинки и включение обрабочиков событий этой кнопки). Заранее спсб


Дата: Сен 22, 2004 14:09:11

Процедура сравнения наверное запускаеться после того как будет введена последняя часть серийника . Т.е. при обработке сообщений (типа WM_KEY*,WM_CHAR может ?) смотрит если пришло от последнего поля и все уже заполнены , то можно начинать сравнение .

Если количество символов в полях ввода серийника не очень маленькое , то попробуй в памяти поискать введённый тобой номер , а потом от того места уже плясать .

А в ресурсах нет этих диалогов ?


Дата: Сен 22, 2004 14:13:47

Ресурсы тоже смотрел - там только версия, иконка и манифест (24)...

Даже если я водил последний сегмент серийника (всего сегментов - 5, по 5 символов в каждом), сообщений типа WM_GETTEXT не пролетало вовсе (Смотрел через Spy++)


Дата: Сен 22, 2004 14:40:21

Можна попробывать в отладчике запустить трассировку (с логом) перед тем моментом , как введёшь последний символ в последнем поле .


Дата: Сен 22, 2004 14:48:50

Как это можно сделать (например в ольке)


Дата: Сен 22, 2004 15:04:53 · Поправил: bogrus

Запускаешь прогу , набираешь номера серийника (но номера лучше выбери такие , чтобы их hex-представление встречалось в памяти очень редко) , но последний символ не ставь .
Потом в ольке attach к проге , меню View\Run Trace\ , можно ещё правым кликом сделать Log to file , а потом в Debug\Trace Over для начала (можно ещё Trace Into) . Вводишь последний символ в проге и смотришь лог .
Можешь без аттача , сразу загрузить прогу , сделать Run (F9) , а Trace Over потом , когда будешь готов .

А и дополнительно , почаще пробуй нажать Alt+M , потом Ctrl+B и введи символа (или части) своего серийника , олька всю память перероет , но найдёт если есть .


Дата: Сен 22, 2004 15:35:06 · Поправил: nDSm

Чего-то я туплю по-страшному... Либо Into, либо Over, в зависимости от цели... Потом, я заметил, что он проверяет после каждого нажатия , не является ли введённый символ последним в последнем поле и плюс ещё вроде-бы в EAX появляются введённые мной символы в ASCII, после этого начинается какая-то процедура, отдалённо напоминающая сравнение, только в регистрах ничего не появляется... (( Может я чего-то не допонял...

И ещё я не понял, чем отличается Trace Into/Over от Step Into/Over ?

Вот блин, чего-то я вобще не втыкаю как эта трассировка работает... в статусе написано Tracing, и ничего при этом не меняется, инсталлятор тоже не реагирует... хм


Дата: Сен 22, 2004 16:02:37 · Поправил: bogrus

„Либо Into, либо Over, в зависимости от цели... “

Into - проход по каждой команде любого модуля (т.е. мы видим все подробности) . Over это проход по всем командам кроме "call" , т.е. в процедуры и другие модули мы так сказать не заходим (есс-но они выполняються , но без нашего участия) .
Trace Into выполняеться долго и лог большой , но там будет абсолютно всё (ну кроме кода ядра) . Trace Over побыстрее , лог поменьше и нужно начинать с него , чтобы пока понять общий принцип и структуру работы проги .

„чем отличается Trace Into/Over от Step Into/Over ?“

Первое выполняеться само и ведёт лог в окно\файл , второе лог не ведёт а выполнением мы упраляем сами (F7 - пошагово особенно в интересных местах , F8 обычно жму на call-ах , чтобы их пропустить когда и так понятно)

Есть ещё Animate Into(Over) , это тоже если нажать F7(F8) и держать . С ним обычно нужна пауза (F12) . Ещё чаще жми правой кнопкой , там меню везде разное бывает . Короче фич хватает , сам ещё не все опробывал .

„в статусе написано Tracing, и ничего при этом не меняется, инсталлятор тоже не реагирует... хм“

Там окно трассировки (Run Trace) не обновляеться (будет очень медленно) , нужно самому его обновлять .
Может быть ещё прога ждёт твоей реакции .


Дата: Сен 22, 2004 16:23:38 · Поправил: bogrus

Может ещё пригодиться View\Windows (или кнопка "W" на тулбаре) , там можно бряк на сообщения к нужному окну поставить или вообще на процедуру окна


Дата: Сен 22, 2004 19:32:13

bogrus
У меня не получалось приаттачиться к InstallSheld'овским прогаммам.
может есть опыт как это сделать?


Дата: Сен 22, 2004 20:19:37

nice Ты имеешь ввиду к инсталлеру во время инсталляции ? Х.з. эти шилды разные вроде , есть вообще не PE , а NE файлы , которые крутятся под NTVDM . Только что попробывал на одном PE , действительно какая-то ерунда , при инсталяции создаёться 3-4 процесса , в каждом по столько же потоков :(


Дата: Сен 22, 2004 20:46:04

Хотя нет , всё нормально получилось . Аттачиться надо к MSIEXEC (там и два) , к тому которое имеет окно . Потом на активном потоке (main и Active в олли) правый клик - Open in CPU , и попадаем в цикл обрабоки сообщений окна инсталлера .


Дата: Сен 23, 2004 13:56:27

„Может быть ещё прога ждёт твоей реакции .“

В предыдущем сообщении я говорил: „инсталлятор тоже не реагирует“

„можно бряк на сообщения к нужному окну поставить или вообще на процедуру окна“

- вот это я попробую, только иногда, если ты говоришь про команду "Message breakpoint on ClassProc", иногда сбой вылетает...

Можно, наверняк, попробовать дизассемблировать ROR'овский кейген для другого подобного инсталлятора, и поискать в нужном мне инсталляторе подобный код, как ты считаешь?


Дата: Сен 23, 2004 14:59:16

Можно конечно (правда не этично) , так ты без проблем увидишь алгоритм генерации серийника , но ты же сам говоришь что не подходит , значит акронис уже сменили алгоритм , причём может кардинально и искать совпадения можно долго , а всё-равно прийдёться вникать в новый алгоритм если ты хочешь закейгенить , но попробывать стоит . Акрониса у неня нет , нашёл какой-то кейген Paradox-а , распаковал , смотрю в алгоритме есть много циклов , есть ксоры с константами (типа XOR EAX, 9908B0DF) , может и найдёшь если константы не изменялись .
Можно искать и заветный jcc , но он может оказаться там не один , что проще х.з.


Дата: Сен 23, 2004 19:10:28

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.104