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

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

  1. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    KOPOJIb
    лежат твои вцль скины и на пролазе и на руборде в сорцах.. Не там ищешь
     
  2. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    да нет, фишка в том что в них скины новые не поддерживаются...
     
  3. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    Не получиться не может :) Смотрим !!!
    Исходник начиная с 1543 строки:
    Код (Text):
    1.   astr:='  ';
    2.  {$IFnDEF demo}
    3.     astr:=' ';
    4.  {$else}
    5.     astr:=' Vclskin Demo';
    6.  {$ENDIF}
    Соответствующий кусок протокола из DCU2INT для конструктора TWinSkinForm.Create уже из WinSkinForm.dcu:
    Код (Text):
    1.   105: _F`    |8D 46 60            | LEA EAX,DWORD PTR [ESI+96]
    2.   108: є@...  |BA(40 01 00 00      | MOV EDX,TWinSkinForm.Create{0x4E9}+320
    3.   10D: и....  |E8(00 00 00 00      | CALL @WStrAsg{0x375}
    4.   112: _F`    |8D 46 60            | LEA EAX,DWORD PTR [ESI+96]
    5.   115: єL...  |BA(4C 01 00 00      | MOV EDX,TWinSkinForm.Create{0x4E9}+332
    И в заключении кусок из IDA:
    Код (Text):
    1. seg000:0000D624                 lea     eax, [esi+60h]
    2. seg000:0000D627                 mov     edx, 140h
    3. seg000:0000D62C                 call    $+5
    4. seg000:0000D631                 lea     eax, [esi+60h]
    5. seg000:0000D634                 mov     edx, 14Ch
    6. seg000:0000D639                 call    $+5
    7. seg000:0000D65B                 dd 4
    8. seg000:0000D65F                 unicode 0, <  >,0
    9. seg000:0000D667                 dd 26
    10. seg000:0000D66B                 unicode 0, < Vclskin Demo>,0
    Я далек от Delphi, мой хлеб VC++, но наверняка и у Борланда есть понятие инкрементная компиляция и сборка. И исходя из этого считая что в DCU ничего не меняется он берет не его, а из каких-то своих предкомпилированных файлов. Удали все кроме своих исходных файлов и пересобери проект, должно взлететь.
    ЗЫ: Посмотри сохранились ли сделанные изменения в DCU.
     
  4. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    гм...а можно пропатченную дкушку в студию?
    просто у меня в ней уже стоит на D635 4Ch, и на D667 1Ah , так что че патчить я не понял(((
     
  5. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    Смотрим пост #17 с коментариями из поста #23
    по смещению D635 40h вместо 4Ch - подмена строки
    было:
    Код (Text):
    1. seg000:0000D627                 mov     edx, 140h
    2. seg000:0000D62C                 call    $+5
    3. seg000:0000D631                 lea     eax, [esi+60h]
    4. seg000:0000D634                 mov     edx, 14Ch
    станет:
    Код (Text):
    1. seg000:0000D627                 mov     edx, 140h
    2. seg000:0000D62C                 call    $+5
    3. seg000:0000D631                 lea     eax, [esi+60h]
    4. seg000:0000D634                 mov     edx, 140h
    что будет соответствовать в исходнике
    Код (Text):
    1.  astr:='  ';
    2.  {$IFnDEF demo}
    3.     astr:=' ';
    4.  {$else}
    5.     astr:='  ';
    6.  {$ENDIF}
    Ссыль на патченый DCU - http://up.spbland.ru/files/070514170/
     
  6. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    спасибо большое, сейчас посмотрю, что выйдет, тока вот боюсь одно - компонент может все равно не прорисовать исходный заголовок, ведь он просто рисует функцией DrawText надпись "vclskin demo". но фиг знает хотелось бы чтобы всё было ок)
     
  7. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    Поиск по исходнику показывает, что astr:="vclskin demo" везде лепится в конец строки
    Код (Text):
    1.     if isunicode then
    2.        ws:= bstr+getformcaption(hwnd)+astr
    3.     else
    4.        ws := StrToWideStr(bstr+getformcaptionA(hwnd)+astr);
    По этому ИМХО должен отсечься только хвост (не силен в Делфях)
     
  8. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    ну вот, так фишка в том, что заголовком служит тока надпись vclskin demo.
    так что хз, ща приду домой - скомпилю, лучше бы всё работало, а то уже башка от олюшки болит.
     
  9. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    снес полностью компонент, все почистил и поставил заново с патченным DCU.
    Нифига тож самое
     
  10. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    h**p://rapidshare.com/files/27915944/VCLSckinPro.4.8.rar
    (c)Prolaz
     
  11. OKOB

    OKOB New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2006
    Сообщения:
    19
    KOPOJIb
    Выложи рабочий скомпилированный исполняемый файл. Пропатчу в ИДЕ в тех же местах, что и компонент. Посмотрим, что получится. Там еще есть вероятно покриптованная строка c_demo на которую нет ссылок в компоненте.
     
  12. KOPOJIb

    KOPOJIb New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    64
    Scratch
    Спасибо!! Классно!
    OKOB
    я постараюсь выложить, когда дома буду!