регистрами, или они просто существуют и для разработчиков уже бесполезны? (Речь про x64)
обработка исключений - gs, в режиме совместимости х32 - fs. и вообще все поля в структурах TEB и PEB должны быть адресованы посредством сегментных регистров, чтоб эти адреса не стали релоцируемы и соотьветственно неправильными.
На х64 не нужно
Кстати, а как там без селекторов типа fs адресуется tls?
я об этом написал - никак. TEB & PEB как и все их поля доступны через регистр gs. Но можно сделать вид, что gs не используется скрыв его использование в дебрях винапи. в коде приложения сегментного регистра таким образом не будет. Но это не значит что его нельзя использовать, и получить доступ к этим структурам сразу, а не через винапи.
Без регистров нельзя, но без селекторов сегментного префикса всё ещё можно. Как раз недавно КТ315 вспоминал rdgsbase.
по умолчанию фасм в х64 делает RIP-адресацию, а поля в структурах PEB, TEB должны быть с абсолютной адресацией, их нельзя адресовать относительно RIP, соответственно приходится использовать префиксы.
Ничего не понял. После rdgsbase у нас адерсация вида reg+offset, у неё нету рип.
Обсуждают сегодня