ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Функция, которая принимает буфер памяти( Непойму условие%( )
  #1  
Старый 08.03.2009, 23:34
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

Репутация: 8
По умолчанию Функция, которая принимает буфер памяти( Непойму условие%( )

Задача:
Код:
Здесь была задача...
Задачу решать не надо, только обьясните пожалуйста условие и если будут попутные вопросы ответе.

Последний раз редактировалось WON; 15.03.2009 в 12:31..
 
Ответить с цитированием

  #2  
Старый 08.03.2009, 23:48
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

4ето типа такого имхо
...
type
TLol = record
field1: byte;
field2: byte;
field3: byte;
field4: byte;
field5: byte;
field6: byte;
end;

function myfunc(struct: ^TLol): byte;
begin
result := struct.field6;
end;

var
lol : ^TLol;
rez: byte;
begin
rez := myfunc(lol);
writeln('rezult = ', rez);
end;
 
Ответить с цитированием

  #3  
Старый 09.03.2009, 22:09
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

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

Как на С/С++ изменить значение адреса. Конкретнее на примере:
получаю адресс 0x0013FF78 и мне надо изменить а точнее прибавить к текущему значению 4 байта.. как это зделать?
 
Ответить с цитированием

  #4  
Старый 09.03.2009, 22:21
St0nX
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме:
2823587

Репутация: 106
Отправить сообщение для St0nX с помощью ICQ
По умолчанию

Если я все правильно понял то тебе нудно просто просто прибавить к текущему адресу еще 4 байта и все
Код:
mov eax,0013FF78h
add eax,4h
на сях как то так.
Код:
char *a;
a = (char *)(0x0013FF78+0x4);
 
Ответить с цитированием

  #5  
Старый 09.03.2009, 23:00
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

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

Цитата:
Сообщение от St0nX  
Код:
mov eax,0013FF78h
add eax,4h
Если начальный адрес храниться в переменной, а полученный адрес надо занести в указатель типа long то как будет этот код выглядить?

Цитата:
Сообщение от St0nX  
Код:
char *a;
a = (char *)(0x0013FF78+0x4);
Код:
void f(void *v)
{
	long *p= (v+0x5);
	cout<<v<<" + 5 = "<<p<<endl;
};
а так оно не хочет работать ... Говорит что неизвестен размер void *.
 
Ответить с цитированием

  #6  
Старый 10.03.2009, 07:08
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Имхо, вам сюда надо было
https://forum.antichat.ru/thread40894.html

а вообще

Код:
long *p= (long *)((char *)v+0x5);
 
Ответить с цитированием

  #7  
Старый 10.03.2009, 15:04
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

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

Спасибо... Тему можно закрывать...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
4 и более GB ОЗУ для ОС Windows (32/64) NetSter Аппаратное обеспечение 10 28.12.2009 20:11
Преодолевая ограничения Windows: физическая память jawbreaker Чужие Статьи 1 16.02.2009 02:12
асм, дизасм, принцип работы процов на определенном уровне. Cthulchu Аппаратное обеспечение 0 05.01.2009 20:14



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


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




ANTICHAT.XYZ