Подскажите как правильно написать патчи , я уже много времени потратил на написание патчя а он так и не работает ! Я уже все данные нашёл, все работает так - если сохранил файл. Подскажите пожалуйста, я не могу заснуть, уже делал патч : на с,delphi ни чего не рабатает ! Просьба кто знает помочь !
Я много писал кода, много удалял ! Один из фрагментов на Delphi. offset := $00491B20; jmp_opcode := $58; AssignFile(f,'filename.exe'); Reset(f,1); seek(f,offset); BlockWrite(f,jmp_opcode,1); closeFile(f);
offset - это VA, То есть RVA + ImageBase. RVA переводи в PA и записывай уже по этому адресу. Iczelion уроки по PE.
n0name Извини, я тебя не понял. Один тип писал так const A: Array[1..1] of Record a : LongInt; b : Byte; end = ((A:$004A9879;B:$90)); // наши переходы $004A9878 адрес перехода и $90 команда замены адреса … … Seek(F,A.A); //Ch:=Char(A.B); Blockwrite(F,Ch,1); И ни описывал он RVA и VA.
Твой оффсет это смещение в памяти уже загруженного по ImageBase приложения. Виртуальное смещение не всегда соответствует физическому в файле. Если уж и записывать offset, то преобрази его в физический. в PETools есть FLC калькулятор.
CRONUZ Юзой гугл. А вопеще там на сайте у меня есть пара темплейтов, так что бери и переделывай, ничего сложного нет. Скоро новая версия Patch Source Maker выйдет, будет возможность создавать исходники не только делфовых прог, но и асмовских.
CRONUZ Слушай, есть куча прог для создания патчей. Зайди на http://www.wasm.ru/toollist.php?list=5. Если хочеться самому что-то написать, то следуй советам n0name, изучай PE-формат по докам на сайте. Но тебе и так хорошо объяснили.
Спасибо всем за все, только все равно не получается. Твой генератор исходных кодов патчей у меня не работает. Мне наверное легче будет взламывать программу и сохранять результат.
Я не понимаю, а в чем проблема??? Ты не умеешь открывать файл? Ты не умеешь читать его в память, а потом обратно записывать??? Тебе уже даже подсказали, как перевести VA в Offset. Тему пора или закрывать, или переносить в юмор.
MSoft Да я вижу ты сам очень юморной ! И тебя не радуют чужие проблемы, ты наверное просто любишь над кем ни будь постебаться. И самое главное в жизни что - что ты обладая знаниями можешь ясно и понятно растолковать проблему другим ? или это не так ? Что же такое форум в твоем понимании, может я просто не туда набрел или трудность жизни заставляет людей идти на крайние поступки ! MSoft - по моему не стоит упрекать человека, который только начал постигать все таинтсва вашего дела, ведь все люди братья !
Спасибо всем огромное Наконец то получилось. У меня патч был не правильно написан - по этому не получалось. А сейчас все успешно работает.
CRONUZ Я не юморной, но тебе в 4-м и главное в 8-м посте четко сказали, что виртуальный адрес и смещение в файле - это разные вещи. Сказали, чем можно вычислить смещение. Как еще можно отреагировать на подобные темы? Особенно удивляют вопросы типа твоего в сообщении номер 13 - "ничего не получается, помогите". Что не получается? Где не получается? Что ты изменил и как определил, что не получается? И как тебе должны помочь, если ты ничего подробно не расписываешь?