Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

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

Ранг: 12.6 (новичок)
Активность: 0.020
Статус: Участник

Создано: 14 августа 2008 15:43
· Личное сообщение · #1

[code]_AlgnPhSz:
add [esi+IMAGE_SECTION_HEADER.SizeOfRawData],Virsize
mov eax,[edi+IMAGE_DOS_HEADER.e_lfanew]
dec eax
add [esi+IMAGE_SECTION_HEADER.SizeOfRawData],eax
not eax
and [esi+IMAGE_SECTION_HEADER.SizeOfRawData],eax[/code]
я так понимаю not и and делается для того, чтобы отрезать часть ненужного. это верно ?
а так конечно все понятно
2)
[code]_AlgnVrSz:
add edi,[edi+IMAGE_DOS_HEADER.e_lfanew]
mov ecx,[esi+IMAGE_SECTION_HEADER.VirtualSize]
jecxz _PtchImSz
add [esi+IMAGE_SECTION_HEADER.VirtualSize],Virsize
mov eax,[edi+0x3c] ;optional_header.FileAlignment
dec eax
add [esi+IMAGE_SECTION_HEADER.VirtualSize],eax
not eax
and [esi+IMAGE_SECTION_HEADER.VirtualSize],eax[/code]
чего-то смотрю в PEtools --ничего не изменилось в IMAGE_SECTION_HEADER.VirtualSize самого файла
в чем может быть причина. может быть в примере что-то неверно ?

3)у меня есть переделанный windows.inc for fasm. есть внутри структуры.
я к любой структуре могу обратиться примерно так:
[code]mov eax,[esp] ;->EAX=ZM
add eax,[eax+IMAGE_DOS_HEADER.e_lfanew] ;->EAX=EP
далее просто...
mov eax,[eax+IMAGE_FILE_HEADER.NumberOfSections] ;-> угу, все нормально, в eax[/code]
именно то, что нужно было нам

а вот с OPTIONAL_HEADER так не прокатывает
[code]mov eax,[esp] ;->EAX=ZM
add eax,[eax+IMAGE_DOS_HEADER.e_lfanew] ;->EAX=EP
mov eax,[eax+IMAGE_OPTIONAL_HEADER.FileAlignment] ;-> вот так не получается[/code]
а вот по внешнему смещению получается:
например:
[code]mov eax,[esp] ;->EAX=ZM
add eax,[eax+IMAGE_DOS_HEADER.e_lfanew] ;->EAX=EP
mov eax,[eax+0x3C] ;->где 0x3C есть внешнее смещение FileAlignment[/code]
почему так получается ?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 14 августа 2008 17:51
· Личное сообщение · #2

Ну и накой ты это запихал в отдельный топик? Этого http://exelab.ru/f/action=vthread&topic=12431&forum=6 мало что ли? Ещё и не в тот раздел, закрыто.


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