Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› немного непонятно |
Посл.ответ | Сообщение |
|
Создано: 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] почему так получается ? ![]() |
|
Создано: 14 августа 2008 17:51 · Личное сообщение · #2 Ну и накой ты это запихал в отдельный топик? Этого http://exelab.ru/f/action=vthread&topic=12431&forum=6 мало что ли? Ещё и не в тот раздел, закрыто. ![]() |
![]() |
eXeL@B —› Программирование —› немного непонятно |
Эта тема закрыта. Ответы больше не принимаются. |