Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 25.12.2017, 22:59   #11
7in
(aka Jin X) !RTFM!
Форумчанин
 
Аватар для 7in
 
Регистрация: 14.12.2014
Адрес: Самара
Сообщений: 285
Репутация: 147
По умолчанию

Короче говоря, если есть относительный адрес RA и адрес инструкции IA, тогда:
• Если нужно найти абсолютный адрес, то делаем IA+RA+длина инструкции
• Если нужно найти аналог, который находится по адресу NA, то ищем на месте относительного адреса число IA-NA+RA (где IA и RA – адреса из любой найденной ранее инструкции). Т.е. тут, по сути, уже неважно чем является NA – началом инструкции, той частью инструкции, где хранится RA или конец инструкции. Главное везде придерживаться одного правила и, разумеется, это должна быть одна и та же инструкция. Ну а если разные (разной длины), тогда в качестве NA должен быть адрес следующей инструкции...
__________________
Делаю лабы на Asm/Delphi/Pascal: asmlabs.ru
7in вне форума   Ответить с цитированием
Старый 25.12.2017, 23:12   #12
arvitaly
Форумчанин
 
Аватар для arvitaly
 
Регистрация: 01.08.2010
Адрес: Казань
Сообщений: 51
Репутация: 23
По умолчанию

Цитата:
Значение регистра RIP – это адрес следующей инструкции после текущей. Я думаю, не проблема его найти, раз мы знаем адрес текущей инструкции...
Я правильно понимаю, что вот если у нас есть код
Цитата:
.text:00007FF6792C1B17
48 8D 15 8A 40 13 01
lea rdx, var1
то 48 - указатель на вид регистра, 8D - lea, 15 - rdx, 8A401301 - это 0x113408A (18038922) - смещение от
Код:

.text:00007FF6792C1B1E

(адрес следующей команды)?
arvitaly вне форума   Ответить с цитированием
Старый 26.12.2017, 00:12   #13
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,471
Репутация: 1667
По умолчанию

Цитата:
Сообщение от arvitaly Посмотреть сообщение
Я правильно понимаю
Откройте мануал процессора да посмотрите.
waleri вне форума   Ответить с цитированием
Старый 26.12.2017, 14:46   #14
arvitaly
Форумчанин
 
Аватар для arvitaly
 
Регистрация: 01.08.2010
Адрес: Казань
Сообщений: 51
Репутация: 23
По умолчанию

Хорошо, спасибо
arvitaly вне форума   Ответить с цитированием
Старый 27.12.2017, 07:03   #15
R71MT
Профессионал
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,137
Репутация: 938
По умолчанию

arvitaly, есть такое понятие, как "Дельта смещение" (гугл в курсе).
Получив дельту, сможешь отталкиваться уже от неё..
__________________
Нашедшего выход - затаптывают первым..
R71MT вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Все данные от определенной даты Veryky C# (си шарп) 1 13.03.2016 00:06
Ожидание процесса, команды batch OmegaBerkut Windows 11 19.04.2015 11:18
Поиск в памяти процесса Mr_ViK Общие вопросы Delphi 5 27.08.2012 21:38
Чтение памяти процесса Maincore Win Api 12 14.08.2012 22:34
Редактирование памяти процесса Dima DDM Общие вопросы Delphi 0 25.12.2010 17:54


19:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru