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

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

  1. Demon666

    Demon666 New Member

    Публикаций:
    0
    Регистрация:
    19 май 2006
    Сообщения:
    99
    Берем, открываем в DeDe твой Project1.exe
    И смотрим, что он нам показывает!

    Button1Click
    Event=OnClick
    Owner=Button1(TButton)
    Caption=’Change text’

    Далее
    Button1Click 004566AC 0013
    Код (Text):
    1. 004566AC   53                     push    ebx
    2. 004566AD   8BD8                   mov     ebx, eax
    3.  
    4. * Reference to control TForm1.Label1 : TLabel
    5. |
    6. 004566AF   8B83FC020000           mov     eax, [ebx+$02FC]
    7.  
    8. * Reference to field TLabel.Font : TFont
    9. |
    10. 004566B5   8B4068                 mov     eax, [eax+$68]
    11. 004566B8   BAFF000000             mov     edx, $000000FF
    12.  
    13. * Reference to: Graphics.TFont.SetColor(TFont;TColor);
    14. |
    15. 004566BD   E82E59FCFF             call    0041BFF0
    16.  
    17. * Possible String Reference to: 'NEW_TextLabel1'
    18. |
    19. 004566C2   BADC664500             mov     edx, $004566DC
    20.  
    21. * Reference to control TForm1.Label1 : TLabel
    22. |
    23. 004566C7   8B83FC020000           mov     eax, [ebx+$02FC]
    24.  
    25. * Reference to: Controls.TControl.SetText(TControl;TCaption);
    26. |
    27. 004566CD   E8EEF2FDFF             call    004359C0
    28. 004566D2   5B                     pop     ebx
    29. 004566D3   C3                     ret
    И в отладчике!
    Код (Text):
    1. 004566AC    .  53                PUSH EBX
    2. 004566AD    .  8BD8              MOV EBX,EAX
    3. 004566AF    .  8B83 FC020000     MOV EAX,DWORD PTR DS:[EBX+2FC]
    4. 004566B5    .  8B40 68           MOV EAX,DWORD PTR DS:[EAX+68]                     ;  ntdll.7C97C238
    5. 004566B8    .  BA FF000000       MOV EDX,0FF
    6. 004566BD    .  E8 2E59FCFF       CALL Project1.0041BFF0
    7. 004566C2    .  BA DC664500       MOV EDX,Project1.004566DC                         ;  ASCII "NEW_TextLabel1"
    8. 004566C7    .  8B83 FC020000     MOV EAX,DWORD PTR DS:[EBX+2FC]
    9. 004566CD    .  E8 EEF2FDFF       CALL Project1.004359C0
    10. 004566D2    .  5B                POP EBX                                           ;  ntdll.7C93EDC0
    11. 004566D3    .  C3                RETN
    12. 004566D4    .  FFFFFFFF          DD FFFFFFFF
    13. 004566D8    .  0E000000          DD 0000000E
    14. 004566DC    .  4E 45 57 5F 54 65>ASCII "NEW_TextLabel1",0
    15. 004566EB       00                DB 00
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Demon666
    Я ж говорю, что Project1 это слишком тривиальный пример ;)
    Если бы строка хранилась в открытом виде, но наверное и сабжа бы не было (если конечно автор хорошо искал ;)

    researchist
    Судя по всему Local.7 это локальная переменная S:string (указатель на динамическую строку)
    Можно конечно ковыряться и смотреть как эта строка формируется, но тут можно запросто запутаться в многочисленных колах. Насколько я понимаю, дело не в том, чтобы просто заменить эту строку (т.к. программа "все равно ... не работает"), а найти и подправить место второй проверки. Или нет ? Если же просто сообщение глаза мозолит, то проще всего его вообще убрать, заменив mov на nop + xor edx,edx (пустая строка)
     
  3. researchist

    researchist New Member

    Публикаций:
    0
    Регистрация:
    25 окт 2006
    Сообщения:
    21
    то что программа не работать не будет после правки этой строки это да, но мне нужно ее (на самом деле не только ее таких строк несколько) поправить
    поэтому вопрос остается открытым
    как узнать откуда берется строка в дампе памяти по адресу который хранится в Local.7 или DWORD PTR SS:[EBP-1C]

    Лео ты молодец, спасибо тебе за соучастие!