C++ Вопрос Вопрос об инструкции

Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
93
Реакции[?]
14
Поинты[?]
15K
lea rcx,[7FF68C7C33B8] как из этого получилось 48 8D 0D 16A6F002, саму инструкцию я понял, а вот последний адрес 16A6F002, как из этого 7FF68C7C33B8 получилось это 16A6F002?
 
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
93
Реакции[?]
14
Поинты[?]
15K
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Посмотреть вложение 269841
Что надо сделать чтобы получить такую хуйню? Мне нужен shell код. Изменить lea, rcx [addr] на свой
1706969425410.png

Это смещение в байтах от адреса начала инструкции ( 1 ) до адреса указанного в операнде ( 3 ) + 7 ( размер инструкции ).

Чтобы получить это смещение тебе нужно от адреса который находится в операнде отнять адрес начала инструкции и отнять её размер ( 7 байт ).


В итоге получается -> 0x7ffd432d2aa2 - 0x7ffd433befdd - 7 = 0xfff13abe что и записано у тебя ( 2 ) только в обратной последовательности.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
93
Реакции[?]
14
Поинты[?]
15K
Посмотреть вложение 269843

Это смещение в байтах от адреса начала инструкции ( 1 ) до адреса указанного в операнде ( 3 ) + 7 ( размер инструкции ).

Чтобы получить это смещение тебе нужно от адреса который находится в операнде отнять адрес начала инструкции и отнять её размер ( 7 байт ).


В итоге получается -> 0x7ffd432d2aa2 - 0x7ffd433befdd - 7 = 0xfff13abe что и записано у тебя ( 2 ) только в обратной последовательности.
1706979390118.png
не сходится
1706979409432.png
наоборот тоже самое не сходится
1706979527331.png
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
В обратном порядке запиши число побайтово
Почитай про порядок байтов, в данном случае little endian.В большинстве случаев на х86-х64 системах значения в памяти представлены в этом формате, т.е в обратно порядке.

Число 0х12309080 в памяти будет записано как : 80 90 30 12.
Т.е побайтово наоборот, от младшего к старшему байту

Чтобы не париться , ты можешь записывать опкод самой инструкции, т.е 48 8D 0D, потом по этому же адресу + 3 записывать целое число ( твоё смещение ), оно автоматически запишется в нужном порядке.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
93
Реакции[?]
14
Поинты[?]
15K
В обратном порядке запиши число побайтово


Почитай про порядок байтов, в данном случае little endian.В большинстве случаев на х86-х64 системах значения в памяти представлены в этом формате, т.е в обратно порядке.

Число 0х12309080 в памяти будет записано как : 80 90 30 12.
Т.е побайтово наоборот, от младшего к старшему байту

Чтобы не париться , ты можешь записывать опкод самой инструкции, т.е 48 8D 0D, потом по этому же адресу + 3 записывать целое число ( твоё смещение ), оно автоматически запишется в нужном порядке.
Бля спс. Выручил, брат
 
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
93
Реакции[?]
14
Поинты[?]
15K
Еще один вопрос

1707143778771.png

Я написал такой код, 1707143795501.png но эта хуйня кидает куда-то в жопу. Почему расчитывается неправильный адрес? Есть ли какая-то библиотека, функция чтобы хукать функции external путем?
У меня DLL в игру не инжектится, из-за этого так мучаюсь
 
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
129
Реакции[?]
18
Поинты[?]
8K
Еще один вопрос

Посмотреть вложение 269979

Я написал такой код, Посмотреть вложение 269980 но эта хуйня кидает куда-то в жопу. Почему расчитывается неправильный адрес? Есть ли какая-то библиотека, функция чтобы хукать функции external путем?
У меня DLL в игру не инжектится, из-за этого так мучаюсь
Ты хочешь чтоб игра из своей памяти переходила к памяти твоего приложения?🤨
 
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
93
Реакции[?]
14
Поинты[?]
15K
Сверху Снизу