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

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

  1. researchist

    researchist New Member

    Публикаций:
    0
    Приветствую всех ГУРУ!!!

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


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

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

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

    Tupis New Member

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

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

    IceStudent Active Member

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

    researchist New Member

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

    n2k kris kaspersky

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

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

    researchist New Member

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

    PE_Kill New Member

    Публикаций:
    0
    тебе сюда _http://www.cracklab.ru/kid.php
     
  8. researchist

    researchist New Member

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

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

    PE_Kill New Member

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

    IceStudent Active Member

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

    researchist New Member

    Публикаций:
    0
    ну тыкнете пальцем как найти:
    изменения
    TBDock1: TTBDock; а в нем TBToolbar1: TTBToolbar; а в нем нужный мне Label5: TLabel;
     
  12. TermoSINteZ

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

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

    researchist New Member

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

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

    IceStudent Active Member

    Публикаций:
    0
    В раре 173 кб? Что ты туда напихал? Сам качай такое.
     
  15. Demon666

    Demon666 New Member

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

    leo Active Member

    Публикаций:
    0
    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
    Это злобные разрабы меня запутали, на месте статус бара разместили TLabel и ввели меня в заблуждение

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

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

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

    Demon666 New Member

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

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

    researchist New Member

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

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

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

    n0name New Member

    Публикаций:
    0
    Это же Delphi =)
    researchist
    бряк на память сделай.
    bpm в коммандной строке Olly.