Как пропадчить запущенную программу..

Тема в разделе "WASM.BEGINNERS", создана пользователем uBLD, 28 июн 2005.

  1. uBLD

    uBLD New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2005
    Сообщения:
    2
    Проблема в том, что необходимо выполнить Search'n'Replace для UNICODE строки, причем размер строки увеличивается, то есть надо записать новую строку в другое место (куда?), а дальше, как, я понимаю, надо найти VА-ссылку (RVA???) и изменить ее, чтоб ссылалась на новое место.

    По сути, должен получиться process(runtime) patch.

    Из опробаванных мною патчмейкеров, ни один подобного сделать не может.

    Я не программер, по-этому и задал подобный вопрос, из настольных языков программирования знаком лишь Delphi.

    Помогите, кто может, желательно с примером.

    Заранее благодарен!
     
  2. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    угу ,

    1) чтобы патчить , надо знать что

    как только ты поймёшь что и где надо патчить

    приходи , спрашивай, поможем



    2) чтобы узнать что и где надо патчить лучше всего воспользоваться дизассеблером и дебаггером

    и найти пункт 1



    заниматься поиском ссылки на строку в чужом процессе

    в твоём случае не имеет смысла,тормозить будет -

    придётся делать полный скан витуальной памяти процесса



    да и тупо это и некрасиво



    если же тебе с утилитарными целями , а не образовательными

    помести обьявление в commercial , тебе помогут , недорого
     
  3. uBLD

    uBLD New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2005
    Сообщения:
    2


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



    А то, что тормозить будет, то это неважно. Я готов смириться с этим.
     
  4. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    uBLD

    таким путём программа , в общем случае изменена быть не может , так как сканирование памяти на предмет обнаружения ссылки на твою строку может ничего не дать

    1)такой ссылки может не быть вообще - прочитали - показали, забыли

    2)косвенная адресация

    array



    myrecord.mystring



    тогда в программе ссылка будет толко на начало структуры - массива



    так что без отладчика и дизассемблера записать строку , большую исходной тебе не удастся скорее всего



    а попробовать можешь

    тут есть статья про сканирование виртуальной памяти , недавняя