Помогите крякнуть (заменить содержимое в памяти)

Тема в разделе "WASM.BEGINNERS", создана пользователем r2max, 14 май 2011.

  1. r2max

    r2max Женя

    Публикаций:
    0
    Регистрация:
    30 мар 2011
    Сообщения:
    40
    Адрес:
    Киев
    Всем привет!
    Помогите крякнуть програмку.
    С помощью Olly Dbg я обнаружил адрес, по которому вызывается "прявязка" программы.

    Код (Text):
    1. 00681131   . 50             PUSH EAX                                 ; /Arg3
    2. 00681132   . 6A 18          PUSH 18                                  ; |Arg2 = 00000018
    3. 00681134   . 68 00596900    PUSH dsetup.00695900                     ; |Arg1 = 00695900 ASCII "213.186.120.195"
    4. 00681139   . 880D 003F6900  MOV BYTE PTR DS:[693F00],CL              ; |
    5. 0068113F   . E8 66480000    CALL dsetup.006859AA                     ; \dsetup.006859AA
    вот по адресу
    00681134
    идет
    PUSH dsetup.00695900
    Мне надо написать Dll-ку которая в этот адрес поместит например
    PUSH ТО ЧТО Я УКАЖУ
    как так можно сделать?)
     
  2. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Ээээ мало информации, лучше программу или текстов по больше) Но если это точно то что нужно...
    Можно лоадер написать, т.е. программа запускает процесс указывает то что нужно остановить главный поток,
    потом проверить что то -что надо и пропатчить
     
  3. r2max

    r2max Женя

    Публикаций:
    0
    Регистрация:
    30 мар 2011
    Сообщения:
    40
    Адрес:
    Киев
    Ну сморите, для сплайсинга я юзаю
    Код (Text):
    1.         mov ebx, eax
    2.     mov edx, DrawHook
    3.     add ebx, 05h
    4.     sub edx, ebx                                    ; calc (hook - (orig + 5))
    5.     mov byte [eax], 0E8h                            ; call
    6.     mov dword [eax+1], edx                          ; rel32
    где в EAX адрес который надо сплайсить
    E8 - это "call"
    Можно ли как то исходя из сплайсинга выехать (сделать что то подобное)....?
     
  4. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    я не совсем понял, что Вы хотите. если Вы хотите сплайсингом все решить то перехватите CALL dsetup.006859AA и изменить аргуемент, но лучше разобраться с тем, как он формируется. но как мне кажется |Arg1 = 00695900 ASCII "213.186.120.195" это ip адрес. Вы разобрались с тем что делает CALL dsetup.006859AA, а лучше выложите программу!
     
  5. r2max

    r2max Женя

    Публикаций:
    0
    Регистрация:
    30 мар 2011
    Сообщения:
    40
    Адрес:
    Киев
    Дело в том что программа в семиде.
    Я просто хочу подменить строку IP адреса.
     
  6. r2max

    r2max Женя

    Публикаций:
    0
    Регистрация:
    30 мар 2011
    Сообщения:
    40
    Адрес:
    Киев
    Как насчет такого
    Код (Text):
    1.     mov eax, 000681134h                 ; 00681134
    2.     mov ebx, eax                        ;
    3.     mov edx, [ip]                       ; в едх - указатель на строку
    4.     mov byte [eax], 068h                        ;  в 00681134 записать PUSH
    5.     mov dword [eax+1], edx              ;  в 00681135 записать указатель на строку
     
  7. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Переписать push можно, но это не эстетично на мой взгляд))) Не забудьте атрибуты проверить...)))