![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Условные переходы в асм-вставках
A.L.E.X.A.N.D.E.R © (2007-12-08 16:21:00)Столкнулся со следующей проблемой :
При написании асм-вставки необходимо выполнить условный переход (в моем случае JZ) на адрес , лежащий за пределами моего инжект-кода , т.е. в процессе , в к-й будет производиться ижект .
С JMP'ом всё прекрасно получилось , а с условынми переходами - не знаю как .
Помогите пожалуйста , заранее огромное спасибо )
Сергей М. (2007-12-10 13:57:00) [21]
> DiamondShark © (10.12.07 13:40) [6]
Ты, видимо, опять пьян.
> на момент компиляции положение точки перехода неизвестно
Оно нафих не нужно во время компиляции для решения упомянутой автором задачи.
Ути-пути.
DiamondShark (2007-12-10 13:40:00) [22]
> В чем исходная задача-то?
Чего-нибудь крякнуть, вестимо.
> Сергей М. © (10.12.07 08:18) [5]
> Точно так же, разницы абсолютно никакой.
Ути-пути.
> A.L.E.X.A.N.D.E.R © (08.12.07 16:21)
> При написании асм-вставки необходимо выполнить условный
> переход (в моем случае JZ) на адрес , лежащий за пределами
> моего инжект-кода , т.е. в процессе , в к-й будет производиться
> ижект .
> С JMP'ом всё прекрасно получилось , а с условынми переходами
> - не знаю как .
Никак. Условные переходы только относительные по 8-, 16- или 32-битному смещению.
А так как на момент компиляции положение точки перехода неизвестно, то и вычислить смещение не представляется возможным.
Используй JMP, а условные переходы для обхода JMP.
Сергей М. (2007-12-10 08:18:00) [23]
> JMP'ом всё прекрасно получилось , а с условынми переходами
> - не знаю как
Точно так же, разницы абсолютно никакой.
Юрий Зотов (2007-12-08 18:01:00) [24]> A.L.E.X.A.N.D.E.R © (08.12.07 16:43) [3]
Не, в такой консерватории что-то неладно. В смысле - структуризация кода какая-то очень подозрительная. В чем исходная задача-то?
A.L.E.X.A.N.D.E.R (2007-12-08 16:43:00) [25]
> То есть как - джамп за пределы текущей процедуры/метода?
> А кто же стек восстанавливать будет?
текущая `процедура` используется только , как место в котором хранится код , на неё саму идет JMP )
Dib@zol (2007-12-08 16:34:00) [26]Юзай CALL. Или проставляй как JMP, а при ветвлении, если условие не выполнено, перепрыгивай етот JMP.
Юрий Зотов (2007-12-08 16:31:00) [27]То есть как - джамп за пределы текущей процедуры/метода? А кто же стек восстанавливать будет?