HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 07.06.2025, 19:44
Lance_Sterling
Познавший АНТИЧАТ
Регистрация: 12.01.2023
Сообщений: 1,016
С нами: 1757019

Репутация: 88


По умолчанию

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

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

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

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

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

 
Ответить с цитированием

  #2  
Старый 07.06.2025, 20:01
DarkPhantom
Новичок
Регистрация: 13.05.2024
Сообщений: 19
С нами: 1055778

Репутация: 8
По умолчанию

Цитата:
Сообщение от Lance_Sterling  

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

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

Цитата:
Сообщение от DarkPhantom  

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

  #3  
Старый 07.06.2025, 20:04
Lance_Sterling
Познавший АНТИЧАТ
Регистрация: 12.01.2023
Сообщений: 1,016
С нами: 1757019

Репутация: 88


По умолчанию

Цитата:
Сообщение от DarkPhantom  

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

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

  #4  
Старый 07.06.2025, 22:25
moreveal
Постоянный
Регистрация: 01.08.2020
Сообщений: 988
С нами: 3043831

Репутация: 163


По умолчанию

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

  #5  
Старый 07.06.2025, 23:29
Lance_Sterling
Познавший АНТИЧАТ
Регистрация: 12.01.2023
Сообщений: 1,016
С нами: 1757019

Репутация: 88


По умолчанию

Цитата:
Сообщение от moreveal  

я сам с арм64 не сталкивался, но обычно в рантайме патчат, ставя джамп хук тот же - копируешь ориг инструкции в заранее выделенное место, добавляешь туда еще свою инструкцию, и прыгаешь обратно, тем самым ничего не затирая
дай пример jmp хука на arm64, если есть, с копированием ориг инструкций (как в kthook)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.