Помогите добраться до зашифрованых

Тема в разделе "WASM.BEGINNERS", создана пользователем researchist, 31 окт 2006.

  1. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    Приветствую всех ГУРУ!!!

    помогите разобраться в моей проблеме


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

    скажите что я могу еще предпринять если:
    сообщение о незарегистрированости (на русском языке), появляющееся в статус баре окна программы и хранящиеся в теле программы каким то образом зашифрованы и даже если я нахожу какие-то кракозябры по поиску строк в оли расшифровать мне их никак не удается.. другие же надписи и названия хранятся в отрытом виде...

    куда и чем копать?
    спасибо!
     
  2. Tupis

    Tupis New Member

    Публикаций:
    0
    Регистрация:
    7 июл 2006
    Сообщения:
    2
    А не пробовал прогу загонять в тоже PEexplorer? Там кстати иногда можнопоглядеть ресурсы и стринги и потом уже в олли искать нужные. Довольно часто такие сообщения хранятся ввиде таблицы и программа их извлекает по их номеру.

    предупреждение за сверхцитирование
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    researchist
    Юникод? Смотри в ресурсах. Если нет, смотри юникодные строки в теле проги. Если нет, значит, зашифрованы. Тогда смотришь в иде, когда и чем устанавливается статусбар.
     
  4. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    смотрел и PEexplorer и ИДОй
    они показывают большенство строк, но именно тех, что указывают на незарегенность не показывают, точнее показывают их крокозябрами..
    это не Юникод
    засовывал их в штирлиц не расшифровывает...
     
  5. n2k

    n2k kris kaspersky

    Публикаций:
    0
    Регистрация:
    22 янв 2005
    Сообщения:
    102
    Адрес:
    Russia
    если только сообщения не выводятся в графике (что навряд ли) и не используются шрифты с нестандартной кодировкой (а вот это иногда встречается), то в 9 из 10 случаев достаточно поставить бряк на функцию, выводящую эти строки в элемент управления (диалоговое окно например), они ей _обязаны_ быть переданы as is. в 1 из 10 случаев (особенно когда дело доходит от тулбара) строки расшифровываются и выводятся посимвольно, поэтому в тексте программы их можно не искать, а опять-таки брякаться на функцию которая их выводит.

    но есть еще т другой путь. допустим, незарегистрированная программа завершается после t минут работы, не отправляет файлы на печать или вставляет в отчет грозное ругательство. вот мы и ищем код, ответственный за это. очень часто программисты даже не пытаются его скрыть и он элементарно обнаруживается чуть ли не пошаговой трассировкой ;)
     
  6. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    А как найти функцию которая ИХ выводит ?
    и потом изменить, чтобы выводилась другая строка?
     
  7. PE_Kill

    PE_Kill New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    107
    тебе сюда _http://www.cracklab.ru/kid.php
     
  8. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    спасибо за посылание меня туда, но я там был и теперь я здесь :)
    я знаю как отлавливать появление нового окошка или чтение строки из поля

    а вот как отловить запись сообщения в статус бар главного окна программы ?
     
  9. PE_Kill

    PE_Kill New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    107
    Ну тогда в чем проблема? Как ты сам посылаешь текст в статус бар? Так и ищи в программе.
     
  10. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    researchist
    С WinAPI не дружим? Посмотри туторы, как создаётся статус-бар и как он заполняется.
     
  11. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    ну тыкнете пальцем как найти:
    изменения
    TBDock1: TTBDock; а в нем TBToolbar1: TTBToolbar; а в нем нужный мне Label5: TLabel;
     
  12. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    а через SendMessage() или напрямую Get\SetWindowText несудьба чтоли бряк поставить??? и после этого говорить что хорошо там все читал..
     
  13. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    Прикрипляю простейший пример на дельфи
    нажатием кнопки меняется текст и цвет Label1

    нужно узнать адреса этих изменений...
     
  14. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    В раре 173 кб? Что ты туда напихал? Сам качай такое.
     
  15. Demon666

    Demon666 New Member

    Публикаций:
    0
    Регистрация:
    19 май 2006
    Сообщения:
    99
    Да-да! Помню одного чела, тоже такая у него проблема была и тоже прога была на Delphi.
    Label в Delphi рисуется, это легко проверить стоит только на него натравить InqSoft Window Scanner
    Надо ставит бряк на (выводится текст в WM_PAINT с помощью функции) DrawTextA(W)
    , потом смотреть в стек, откуда вызывается или DeDe в кривые руки =)))
     
  16. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    researchist
    Ты бы определился, что тебе конкретно нужно, а то сначала про статус-бар говорил, теперь вот TLabel
    Cтатус-бар - оконный контрол, поэтому изменение текста в нем можно отловить по SendMessage c Msg=SB_SETTEXT. А вот TLabel это не оконный, а графический контрол, и отловить его изменение сложнее (если конечно оно не привязано к клику на кнопке, как в твоем тривиальном примеречике ;) С лэйблом в общем случае есть два пути
    1) ловить DrawText как говорит Demon666. Но таким способом можно добраться до содержимого выводимой строки, но не выловить место, где происходит ее изменение, т.к. анализ CallStack просто покажет цепочку обработки собщения WM_PAINT, которое не связано напрямую с изменением текста
    2) зная имя метки (например, Label5) можно выцепить указатели на саму метку и на ее приватное поле FText, в котором хранится указатель на выводимый текст и соот-но поставить хардварный бряк на запись в это поле
    Хотя если прога дельфийская, то проще для начала в DeDe посмотреть, что творится в FormCreate и FormActivate - если повезет, то можно на шару наткнуться на нужную ссылку типа TForm1.Label5
     
  17. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    Это злобные разрабы меня запутали, на месте статус бара разместили TLabel и ввели меня в заблуждение

    нашел я места где меняется текст в этом TLabel
    делается это вот так:
    Код (Text):
    1. 005612A7  |.  8B55 E4                      MOV EDX, [LOCAL.7]
    Дак вот в этой [LOCAL.7] адрес по которому в дампе памяти строка

    откуда этот адрес там взялся и почему [LOCAL.7] наз-ся ?

    как теперь узнать откуда она там берется и предварительно (окончательно и бесповоротно) изменить ее на нужную мне ?
     
  18. Demon666

    Demon666 New Member

    Публикаций:
    0
    Регистрация:
    19 май 2006
    Сообщения:
    99
    Тебе написали, воспользуйся DeDe, эта прога предназначена специально для программ написанных на Delphi!!!
    В отладчике меню->Options->Debugging options (Alt+O)-> вкладка Analysis 1->Show ARGs and LOCALs in procedures(сними оттуда галочку) и будет тебе счастье.
    Стек надеюсь, знаешь, что это такое!?

    P. S.
    leo
    Не всё ты ему в подробностях расписал ;)
     
  19. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    leo все нормально расписал, с его помощью я нашел места прорисовки этого лэйбла и адреса памяти в которых хранятся строки

    Demon666
    теперь я дальше спрашиваю как узнать откуда в пямяти эти строки взялись и как их изменить еще до того как они в память попадут, т.к. адреса по которым они расположены меняются с каждой загрузкой проги...

    Спасибо Вам ребята за ответы, без них никак... и будьте пожалуста чуть снисходительнее, не все же такие крутые как Вы.
     
  20. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Это же Delphi =)
    researchist
    бряк на память сделай.
    bpm в коммандной строке Olly.