Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
ВнизКак с помощью Delphi записать asm код по определёному адресу? Найти похожие ветки
← →
fuoco (2009-03-11 14:38) [0]Помогите пожалуйста с вопросом, возможно ли что бы программа записала код asm в определёны адрес другой программы.
К примеру:10B2502A: jmp 11009029
Если это возможно подскажите как. А то у меня уже возникает желание перевести код в hex и записать в нужный адрес с помощью WriteProcessMemory(). Но это как то дико если asm код будет большой.
Заранее спасибо.
← →
Palladin © (2009-03-11 14:42) [1]фига се )
зачем это нужно? а то у меня возникает желание назвать тебя негодяем...
← →
SergeyIT © (2009-03-11 14:44) [2]> Но это как то дико...
Это точное определение!
← →
fuoco (2009-03-11 14:53) [3]Palladin,
Трайнер для игры пишу. вот хотел уменьшить код с помощью asm, то есть просто немного изменить код самой игры. только понять не могу как этот код туда вписать. Только если это сделать через hex эффект будет обратным.(((
← →
fuoco (2009-03-11 14:53) [4]
> SergeyIT © (11.03.09 14:44) [2]
>
> > Но это как то дико...
> Это точное определение!
Не весело твой ответ звучит((
← →
Rouse_ © (2009-03-11 15:05) [5]Писать можно только в виде машкода, т.е. вместо jmp 11009029 пишешь 5 байт
E911009029
.
Если пишешь из чужого процесса. то через WriteProcessMemory, если внедрился в чужой, можно и напрямую по адресу
← →
Эстет (2009-03-11 15:09) [6]
> Rouse_ © (11.03.09 15:05) [5]
Розыч, не надо учить детей плохому.
← →
fuoco (2009-03-11 15:09) [7]
> Rouse_ ©
Спасибо. Почему то мне хотелось верить что возможен другой вариант((
← →
fuoco (2009-03-11 15:11) [8]
> Эстет
Так я же обычный trainer пишу, чего он может плохого натворит.. в конечном результате то я вернулся от к тому с чего начал.
← →
Rouse_ © (2009-03-11 15:34) [9]
> Розыч, не надо учить детей плохому.
Да это стандартная методика, применяется в основном при написании отладчиков. :) Не вижу ничего зазорного :)
> Почему то мне хотелось верить что возможен другой вариант((
Текстом написать jmp 11009029 нельзя - процессоры еще не научились асм на лету транслировать :)
← →
fuoco (2009-03-11 16:04) [10]Блин теперь другая проблема.
adr:=$10B2502A;
buf:=$e9fa3f4e00;
WriteProcessMemory(HandleWindow, ptr(adr), @buf, 5, write);
adr:=$11009029;
buf:=$C7448A041E0000008B44;
WriteProcessMemory(HandleWindow, ptr(adr), @buf, 10, write);
Constant expression violates subrange bounds
жалуется на buf, я задал переменую вида integer.
есть ли способ увеличить объем.. а то я с трудом представляю как буду вставлять код на 40 б.
← →
Игорь Шевченко © (2009-03-11 16:13) [11]мож того, не писать трейнер ?
← →
fuoco (2009-03-11 16:17) [12](( жалко, он уже работает. просто хотелось бы уменьшить его объем.. а то весит 800 кб.. чо за трайнер с метр величиной и тремя функциями.(((
← →
Кто-то (2009-03-12 07:02) [13]
> жалуется на buf, я задал переменую вида integer.
>
>
Тоесть ты пытаешься в 4 байта integerа втыкнуть 5 и 10 байт?
Крута!
← →
Сергей М. © (2009-03-12 09:57) [14]
> fuoco (11.03.09 16:04) [10]
> WriteProcessMemory(HandleWindow
Какой еще "Window" ? Функция WriteProcessMemory не имеет ни малейшего отношения к окнам.
Ты вообще справку читал, прежде чем лепить код ?
← →
Cobalt © (2009-03-12 13:08) [15]
> Сергей М. © (12.03.09 09:57) [14]
Это, наверно, он переменные экономит ;-)
← →
fuoco (2009-03-12 23:50) [16]
> Кто-то (12.03.09 07:02) [13]
>
>
> > жалуется на buf, я задал переменую вида integer.
> >
> >
>
>
> Тоесть ты пытаешься в 4 байта integerа втыкнуть 5 и 10 байт?
>
> Крута!
До 8 работает нормально. а вот после 10 не хочет. пытался найти способ. дак вот ни чего не получилось пока.
> Сергей М. © (12.03.09 09:57) [14]
>
>
> > fuoco (11.03.09 16:04) [10]
>
>
> > WriteProcessMemory(HandleWindow
>
>
> Какой еще "Window" ? Функция WriteProcessMemory не имеет
> ни малейшего отношения к окнам.
> Ты вообще справку читал, прежде чем лепить код ?
>
читал, только это не название окна а ID процесса. все норм, я так обазвал просто.
> Cobalt © (12.03.09 13:08) [15]
>
>
> > Сергей М. © (12.03.09 09:57) [14]
>
> Это, наверно, он переменные экономит ;-)
именно так. пытаюсь уменьшить код. по этому к асм и обратился
← →
Германн © (2009-03-13 00:41) [17]
> именно так. пытаюсь уменьшить код. по этому к асм и обратился
А тебе не приходила на ум такая мысль, что не зная очень хорошо асм, ты не сможешь "уменьшить код"? Даже при помощи И-нет форумов.
← →
Сергей М. © (2009-03-13 21:19) [18]
> читал, только это не название окна а ID процесса
Плохо читал. Читай еще. Это не ID процесса.
← →
Сергей М. © (2009-03-13 22:05) [19]
> fuoco
Читать этот ликбез до полного "заострения"
http://www.intuit.ru/department/os/osmswin/9/
← →
fuoco (2009-03-14 02:46) [20]Спасибо все за ответы, способ был найден))) работает прост отлично.
← →
Eraser © (2009-03-14 05:11) [21]> [20] fuoco (14.03.09 02:46)
очень советую изучить труды и примеры товарисча MS-REM"a. найти можно на wasm.ru. как раз там на делфи.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.04.26;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c