Проблема в том, что необходимо выполнить Search'n'Replace для UNICODE строки, причем размер строки увеличивается, то есть надо записать новую строку в другое место (куда?), а дальше, как, я понимаю, надо найти VА-ссылку (RVA???) и изменить ее, чтоб ссылалась на новое место. По сути, должен получиться process(runtime) patch. Из опробаванных мною патчмейкеров, ни один подобного сделать не может. Я не программер, по-этому и задал подобный вопрос, из настольных языков программирования знаком лишь Delphi. Помогите, кто может, желательно с примером. Заранее благодарен!
угу , 1) чтобы патчить , надо знать что как только ты поймёшь что и где надо патчить приходи , спрашивай, поможем 2) чтобы узнать что и где надо патчить лучше всего воспользоваться дизассеблером и дебаггером и найти пункт 1 заниматься поиском ссылки на строку в чужом процессе в твоём случае не имеет смысла,тормозить будет - придётся делать полный скан витуальной памяти процесса да и тупо это и некрасиво если же тебе с утилитарными целями , а не образовательными помести обьявление в commercial , тебе помогут , недорого
В том то и загвоздка, что я знаю лишь последовательность байтов строки (для данной программы она уникальна), а где она находиться в каждом конкретном случае предугадать невозможно, при запуске программы она появляется, то в одном, то в другом месте. А то, что тормозить будет, то это неважно. Я готов смириться с этим.
uBLD таким путём программа , в общем случае изменена быть не может , так как сканирование памяти на предмет обнаружения ссылки на твою строку может ничего не дать 1)такой ссылки может не быть вообще - прочитали - показали, забыли 2)косвенная адресация array myrecord.mystring тогда в программе ссылка будет толко на начало структуры - массива так что без отладчика и дизассемблера записать строку , большую исходной тебе не удастся скорее всего а попробовать можешь тут есть статья про сканирование виртуальной памяти , недавняя