PDA

Просмотр полной версии : запись значения в регистр


Lance_Sterling
07.06.2025, 19:44
Мне нужно записать значение 0x10E00 в инструкцию MOV W0, #imm, чтобы увеличить размер структуры

Но 0x10E00 — это больше чем 16 бит, и поэтому не помещается в одну инструкцию MOVZ без сдвига.

Чтобы корректно записать его в W0, нужно две инструкции (MOVZ и MOVK), то есть 8 байт кода

Но если я запишу 8 байт, я затру следующую инструкцию, которая нужна для создания пула

Что делать в такой ситуации?

https://forum.antichat.xyz/attachments/28612638/

DarkPhantom
07.06.2025, 20:01
Мне нужно записать значение 0x10E00 в инструкцию MOV W0, #imm, чтобы увеличить размер структуры
Но 0x10E00 — это больше чем 16 бит, и поэтому не помещается в одну инструкцию MOVZ без сдвига.
Чтобы корректно записать его в W0, нужно две инструкции (MOVZ и MOVK), то есть 8 байт кода
Но если я запишу 8 байт, я затру следующую инструкцию, которая нужна для создания пула

Что делать в такой ситуации?


Попробуй использовать adrp для загрузки базового адреса , а затем add , что бы добавить нужное смещение .



Попробуй использовать adrp для загрузки базового адреса , а затем add , что бы добавить нужное смещение .


Ну это единственное, что пришло в голову

Lance_Sterling
07.06.2025, 20:04
Попробуй использовать adrp для загрузки базового адреса , а затем add , что бы добавить нужное смещение .

Ну это единственное, что пришло в голову


все равно ведь используем две инструкции, получается 8 байт, а мне надо 4

moreveal
07.06.2025, 22:25
я сам с арм64 не сталкивался, но обычно в рантайме патчат, ставя джамп хук тот же - копируешь ориг инструкции в заранее выделенное место, добавляешь туда еще свою инструкцию, и прыгаешь обратно, тем самым ничего не затирая

Lance_Sterling
07.06.2025, 23:29
я сам с арм64 не сталкивался, но обычно в рантайме патчат, ставя джамп хук тот же - копируешь ориг инструкции в заранее выделенное место, добавляешь туда еще свою инструкцию, и прыгаешь обратно, тем самым ничего не затирая


дай пример jmp хука на arm64, если есть, с копированием ориг инструкций (как в kthook)