Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Программирование —› вопрос по наворотам С++...
Посл.ответ Сообщение

Ранг: 29.2 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 09 июля 2007 10:30
· Личное сообщение · #1

... знатоки С++ , подскажите пожалуйста, что сие написанное значит, имеется в виду не что такое : PIMAGE_NT_HEADERS, и long, а именно сам синтаксис:
PIMAGE_NT_HEADERS pPE=static_cast<struct _IMAGE_NT_HEADERS>NTSIGNATURE((long)hMap);
PIMAGE_SECTION_HEADER Section=(PIMAGE_SECTION_HEADER)
(pPE->FileHeader.SizeOfOptionalHeader+(long)&(pPE->OptionalHeader));
...
ЗЫ кстати , а да ладно , и за это спасибо....



Ранг: 50.2 (постоянный)
Активность: 0.010
Статус: Участник

Создано: 09 июля 2007 10:57
· Личное сообщение · #2

hxxp://en.wikipedia.org/wiki/Static_cast




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 09 июля 2007 11:51
· Личное сообщение · #3

PIMAGE_NT_HEADERS pPE=static_cast<struct _IMAGE_NT_HEADERS>NTSIGNATURE((long)hMap);
сие значит создать переменную pPE типа PIMAGE_NT_HEADERS, потом приводим тип указателя (pPE - pointer to PE)посредством статик_каста, про который ты прочеТал в википедии)))

-----
Researcher




Ранг: 122.2 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 09 июля 2007 12:06
· Личное сообщение · #4

(long)&(pPE->OptionalHeader) ---- берем указатель на OptionalHeader и превращаем его в лонг
+ pPE->FileHeader.SizeOfOptionalHeader ----- добавляем его длину
(PIMAGE_SECTION_HEADER) ---- превращаем это в указатель на IMAGE_SECTION_HEADER

странно что в одном и том же куске кода используются и C++ кастинги и старые сишные




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 09 июля 2007 12:09
· Личное сообщение · #5

Кста, чел, может эт исходник какого нить пакера, которого у мя нету) дык тыб поделился улыбкою своей) положи в аттачег

-----
Researcher




Ранг: 29.2 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 09 июля 2007 15:32
· Личное сообщение · #6

overwriter пишет:
может эт исходник какого нить пакера
- ytn, ето всего лишь я читаю "От зеленого к красному" и ломаю себе хуй, как там криво все написсано...



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 10 июля 2007 12:08
· Личное сообщение · #7

Первая строка после раскрытия макроса будет:

PIMAGE_NT_HEADERS pPE=static_cast<struct _IMAGE_NT_HEADERS>((LPVOID)((BYTE *)(long)hMap + ((PIMAGE_DOS_HEADER)(long)hMap)->e_lfanew));

но скорее всего автор имел ввиду:

PIMAGE_NT_HEADERS pPE=reinterpret_cast<struct _IMAGE_NT_HEADERS *>NTSIGNATURE(hMap);

т.к иначе врядли скомпилируется


 eXeL@B —› Программирование —› вопрос по наворотам С++...
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати