Нужна помощь: Серийный номер при инталляции

Тема в разделе "WASM.RESEARCH", создана пользователем nDSm, 22 сен 2004.

  1. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
    Немалоизвестная компания 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, но и плюс смена картинки и включение обрабочиков событий этой кнопки). Заранее спсб
     
  2. bogrus

    bogrus Active Member

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



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



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

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
    Ресурсы тоже смотрел - там только версия, иконка и манифест (24)...



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

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Можна попробывать в отладчике запустить трассировку (с логом) перед тем моментом , как введёшь последний символ в последнем поле .
     
  5. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
    Как это можно сделать (например в ольке)
     
  6. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Запускаешь прогу , набираешь номера серийника (но номера лучше выбери такие , чтобы их hex-представление встречалось в памяти очень редко) , но последний символ не ставь .

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

    Можешь без аттача , сразу загрузить прогу , сделать Run (F9) , а Trace Over потом , когда будешь готов .



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

    nDSm New Member

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



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



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

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




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

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







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



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







    Там окно трассировки (Run Trace) не обновляеться (будет очень медленно) , нужно самому его обновлять .

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

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Может ещё пригодиться View\Windows (или кнопка "W" на тулбаре) , там можно бряк на сообщения к нужному окну поставить или вообще на процедуру окна
     
  10. nice

    nice New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    42
    Адрес:
    Russia
    bogrus

    У меня не получалось приаттачиться к InstallSheld'овским прогаммам.

    может есть опыт как это сделать?
     
  11. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    nice Ты имеешь ввиду к инсталлеру во время инсталляции ? Х.з. эти шилды разные вроде , есть вообще не PE , а NE файлы , которые крутятся под NTVDM . Только что попробывал на одном PE , действительно какая-то ерунда , при инсталяции создаёться 3-4 процесса , в каждом по столько же потоков :dntknw:
     
  12. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Хотя нет , всё нормально получилось . Аттачиться надо к MSIEXEC (там и два) , к тому которое имеет окно . Потом на активном потоке (main и Active в олли) правый клик - Open in CPU , и попадаем в цикл обрабоки сообщений окна инсталлера .
     
  13. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18




    В предыдущем сообщении я говорил:








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



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

    bogrus Active Member

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

    Можно искать и заветный jcc , но он может оказаться там не один , что проще х.з.
     
  15. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
  16. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
  17. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
  18. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Я скачал пару килобайт , больше не буду , и там похоже UPX-ом зажат инсталлер (сигнатура UPX в начале) . А какой билд у тебя ? Зарегся на warezok.ru , там этих серийников блин , по акронису 20 страниц топик , подозреваю на ру-боард тоже самое .



    Говорят , что этот partitionexpertpro раскручиваеться на обычный partitionexpert и несколько других утилит , и к ним можно обычные серийники заюзать . Так что это просит серийник только на инсталляцию , а потом надо будет вводить ещё на отдельные продукты ?



    А SFX это кажеться самораспаковывающийся архив , он сам должен раскрутить себя .
     
  19. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105




    Действительно не берет. А вот Тотал Коммандер -

    нажал Ctrl+PgDn и все видно.
     
  20. nDSm

    nDSm New Member

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    18
    bogrus





    7.0.0.502





    В моем файле, последовательность 555058h (UPX) встречается ТРИЖДЫ, и совсем не в начале... (Даже если бы было так, как ты сказал, почему же его не определил PEiD?)





    Совершенно верно, но открывать sfx архивы в программах, поддерживающих эти же самые (но не sfx) архивы, например, в WinRAR, WinZip, Power Archiver и т.п., - никто не запрещал ))