Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2012, 20:43   #1
9esa
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 20
Восклицание Получение информации из памяти

Доброго времени суток. Пишу первый раз на форуме, поэтому прошу прощения, если что не так.
Я работаю над приложением, которое обрабатывает отладочную информацию из файла dbg или exe, и выводить информацию о функции. Сейчас я могу получить тип ,имя и тип аргументов. Так же я знаю что все значения передаются или через регистры , или через стек.
Для возвращаемого значения функции для типа int и bool легко получить значения, взглянув на регистр eax , а как получить значения для других типов например double ?
Так же не понятно как получать информацию через стек. Я пытаюсь сделать вот так
Код:
int d,g;

	char *qq;
	_asm {
      push eax
      push ebx
      push ecx
      push edx
      push ebp
      push edi
      push esi
    }   //Это сделано ,чтобы скопировать все адреса
	
		qq=(char*)0x0018FE2c;
	cout<<" "<<*qq;
		qq=(char*)0x0018FE2d;
	cout<<" "<<*qq;
		qq=(char*)0x0018FE2e;
	cout<<"  "<<*qq;
		qq=(char*)0x0018FE2f;
	cout<<" "<<*qq;
В выводе я получаю ascii символы , но как получить необходимые данные?
9esa вне форума Ответить с цитированием
Старый 19.03.2012, 23:30   #2
9esa
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 20
По умолчанию

Печально ладно можно крыть =(
9esa вне форума Ответить с цитированием
Старый 19.03.2012, 23:44   #3
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
но как получить необходимые данные?
Что под этими данными имеется ввиду? Хекс коды? Если так то используйте printf("%02x", *qq); (std::cout на это тоже способен, но я уже не помню как это делается, погуглите если интересно)

Цитата:
а как получить значения для других типов например double ?
Поищите на любом сайте который связан с ассемблером как кодируется double в памяти. Информация по этому точно должна быть в сети (к примеру на сайте wasm наверняка будет).
zotox вне форума Ответить с цитированием
Старый 26.03.2012, 02:12   #4
9esa
Пользователь
 
Регистрация: 26.02.2012
Сообщений: 20
По умолчанию

Спасибо огромное все получилось , то что надо=)
9esa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение информации о принтере mutabor Общие вопросы Delphi 4 17.05.2011 16:37
Хранение информации в памяти Claster Помощь студентам 0 21.03.2011 17:54
Получение информации о железе FalseMaster Win Api 2 25.11.2009 06:05
Получение информации из мр3 GAGARIN-NEW Мультимедиа в Delphi 2 24.03.2008 15:19
Получение информации о классе Sibedir Общие вопросы Delphi 7 07.12.2007 14:37