vlad2033 Опубликовано 24 января, 2014 Поделиться Опубликовано 24 января, 2014 допустим скриптfstp dword ptr [edi+000001C8] как переписать его так что бы все числа к которым обращяется инструкция были заморожены на 0 необращяя внимания и на другие инструкции? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 24 января, 2014 Поделиться Опубликовано 24 января, 2014 mov [edi+000001C8],#0Попробуй. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dison Опубликовано 24 января, 2014 Поделиться Опубликовано 24 января, 2014 Что за игра? скидывай инструкцию полностью, название игры тоже желательнокак помочь если не ясно откуда ты этот код взял, с какой игры? Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad2033 Опубликовано 24 января, 2014 Автор Поделиться Опубликовано 24 января, 2014 Что за игра?скидывай инструкцию полностью, название игры тоже желательнокак помочь если не ясно откуда ты этот код взял, с какой игры? я попросил скрипт Ссылка на комментарий Поделиться на другие сайты Поделиться
vlad2033 Опубликовано 25 января, 2014 Автор Поделиться Опубликовано 25 января, 2014 mov [edi+000001C8],#0Попробуй.спс Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 25 января, 2014 Поделиться Опубликовано 25 января, 2014 а разве занопить инструкцию это не то самое что заморозить значение ? Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 25 января, 2014 Поделиться Опубликовано 25 января, 2014 Если инструкция только читает данные, то нет. Если пишет, то да. Я так ступил когда делал левитацию, заморозку высоты. Нопил инструкцию чтения и ничего в игре не происходило, ни вылета, ни заморозки. Занопил инструкцию записи и вуаля, начал левитировать) Ссылка на комментарий Поделиться на другие сайты Поделиться
Tiger Опубликовано 25 января, 2014 Поделиться Опубликовано 25 января, 2014 а разве занопить инструкцию это не то самое что заморозить значение ? зависит от того что мы нопим, в данном случае, если занопить, в стеке fpu, в часности ST(0), останется висеть значение, которого там быть не должно. Поэтому занопливание, замену инструкций следует делать очень осторожно, или хотябы прочитать предварительно про то, что эта инструкция делает.fst копирует значение ST(i) в указанный адрес памяти. Чтобы получить округлённое целое - fistfstp передача вещественного ЧИСЛА из FPU в ячейку памяти, и вызывает смещение ST(i) выталкивая операнд из стекаТочность будет такая, какая укажешь (dword/qword/tword) причем REAL4, REAL8 и REAL10 в памяти, REAL10 в регистрах FPUВ данном случае fstp, значит операнд выпадет из стека и редактировать ST(0) не требуется, а только значения переданные в ячейку памятиfstp dword ptr [edi+000001C8]mov [edi+000001C8],#0В случае fst dword ptr [edi+000001C8]fstp dword ptr [edi+000001C8]mov [edi+000001C8],#0fld dword ptr [edi+000001C8]или же пролистать вверх по коду и найти инструкцию которая последней оказывает влияние на st(0) и там шаманить.Если инструкция только читает данные, то нет. Если пишет, то да. Я так ступил когда делал левитацию, заморозку высоты. Нопил инструкцию чтения и ничего в игре не происходило, ни вылета, ни заморозки. Занопил инструкцию записи и вуаля, начал левитировать)По сути дела вы правы, суть в записи и чтении значения. Однако в версии CE 6.3 существует доступ и запись, я как правло ставлю оба бряка, а там по ситуации.Я за изменение входных/выходных данных, а не ломание исходного кода.Иногда предусмотреть какие инструкции в какой момент времени окажут влияние на значение невозможно, приоритетно выделяю те которые наиболее часто обращаются к значению, когда ничего собственно не происходит) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 25 января, 2014 Поделиться Опубликовано 25 января, 2014 Остается только повторить и немного добавить.fstp действительно нежелательно нопить. Скорее всего, придется делать новую инъекцию кода и дописывать после fstp интструкцию mov[адрес], значение.Ну и добавлю из того, что не было написано. Не нужно ставить цель делать инъекцию кода только по адресу, которую показал отладчик в окне срабатывания брейкпоинтов. Посмотрите инструкции выше и даже ниже. Возможно какие-то из них можно занопить или заменить. Может так получиться, что даже прыгать на новую память не нужно будет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 26 января, 2014 Поделиться Опубликовано 26 января, 2014 Остается только повторить и немного добавить.fstp действительно нежелательно нопить. Скорее всего, придется делать новую инъекцию кода и дописывать после fstp интструкцию mov[адрес], значение.Ну и добавлю из того, что не было написано. Не нужно ставить цель делать инъекцию кода только по адресу, которую показал отладчик в окне срабатывания брейкпоинтов. Посмотрите инструкции выше и даже ниже. Возможно какие-то из них можно занопить или заменить. Может так получиться, что даже прыгать на новую память не нужно будет.Полностью с тобой согласен, я слишком ленив, чтобы пользоваться АА, но иногда просто без вариантов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения