Исследование DCU

Тема в разделе "WASM.RESEARCH", создана пользователем KOPOJIb, 12 май 2007.

  1. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    Здравствуйте, уважаемые мастера с wasm.ru! (В особенности crypto, спасибо за помощь=).
    Полгода назад столкнулся с проблемой, компонент vclskin, используемый для поддержки скинов, в демо версии выводит вместо заголовка формы надпись "vclskin demo". Код, делающий это, обнаружился в дельфовском юните DCU с названием winskinform.dcu. К сожалению на этом дело застопорилось. Не сочтите за хамство мою просьбу, но не могли бы вы мне помочь, потому как я в тупике... На всякий случай прикрепляю юнит winskinform.dcu и исходник этого же юнита, но более ранней версии, возможно он будет полезен...

    ссылка на исходник
    ссылка на сам юнит DCU
     
  2. blood_raven

    blood_raven New Member

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    55
    А в чем сообственно проблема взял DeDe да и посмотрел:)
     
  3. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    посмотреть то посмотрел, да только мне это не помогло((
     
  4. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Мда... как же ты смотрел, что ничего не увидел? Достаточно было запустить поиск в pas файле на строку "demo", чтобы увидеть код
    Код (Text):
    1.  {$IFnDEF demo}
    2.     astr:=' ';
    3.  {$else}
    4.     astr:=' Vclskin Demo';
    5.  {$ENDIF}
    Тут уж в начале файла убивай константу demo или правь строку. Чет народ уж очень ленивый пошел - ничего сами не хотят делать.
     
  5. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    хех)
    ну исходник-то я разобрал и константу давно убил, но желаемого эффекта это не принесло!
     
  6. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Ну тогда либо плохо разобрал, либо исследуй vclskin.res (на него есть ссылка в dcu)
    ----
    Надеюсь, ты, хоть перекомпилировал pas файл? А то он же так и продолжает уже скомпиленный dcu юзать.
     
  7. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    vclskin.res? там же ресурсы хранятся, там не может быть кода...
    конечно, ребилд я делал.
     
  8. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Конечно там нету кода, но там может быть эта строка.
    P.S. Просто мне влом досконально разбирать pas файл, поэтому и говорю где это может быть.
     
  9. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    этот сорц от более ранней версии юнита, сам текст рисуется drawtextом, но caption от формы режется, вот в чем вся фишка...
     
  10. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Ну ладно, а сам exe подправить не судьба?
     
  11. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    да екзеху то можно поправить, я это делал, тока с каждым билдом геморроиться слишком накладно, уж если ломать то компонент, а не экзе
     
  12. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Все таки кинь для полноты картины res файл.
     
  13. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
  14. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Все таки, по моему, лучше стоит перекомпилить pas и заменить им dcu. Тогда, по идее, невозможно, чтобы в результате строка отображалась, ибо нет больше нигде на первый взгляд. А в res только три рисунка (кнопки system menu)
     
  15. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    пробовал, так как pas чужой - не работает
     
  16. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    перцы, млин, помогите плз, ну что вам стоит...
     
  17. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    Да ничего не стоит. Немного Гугла, немного DCU2INT и IDA. Берешь hiew или другой НЕХ редактор и патчишь на выбор в любом из мест или для параноиков во всех трех местах.
    по смещению D635 40h -> 4Ch - подмена строки
    по смещению D667 02h -> 1Ah - укорачивание строки ' Vclskin Demo' до ' '
    или ниже этого все символы Юникод строки ' Vclskin Demo' заменяем пробелами
     
  18. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    гм, у меня по этим смещениям уже стоят 4с и 1а...
     
  19. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    хотя наверно вы имели ввиду наоборот, эти значения и пропатчить...
     
  20. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    неа не помогло...