Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› fasm+windows.inc=проблема |
Посл.ответ | Сообщение |
|
Создано: 30 июля 2008 20:43 · Личное сообщение · #1 в общем собрал инклюд для работы с PE в общем пишу: [CODE] push eax ;->[ebp-0x8] EAX=MZP mov eax,[eax+0x3c] add eax,dword [ebp-0x8] movzx ax,byte [eax+IMAGE_FILE_HEADER.NumberOfSections] [/CODE] и в оле заммечаю: [CODE] 00401047 |. 50 PUSH EAX 00401048 |. 8B40 3C MOV EAX,DWORD PTR DS:[EAX+3C] 0040104B |. 0345 F8 ADD EAX,DWORD PTR SS:[EBP-8] 0040104E |. 66:8B40 02 MOV AX,WORD PTR DS:[EAX+2] [/CODE] хм...м...чтобы было правильно нужно по крайней мере чтобы было MOV AX,WORD PTR DS:[EAX+6] вот сижу и думаю в чем проблема. Еще прикол в том, что мне на боарде flatassembler один товарищ давал недоделанную windows.inc, там были некоторые структуры и...и там была тоже такая проблема как решить проблему ? ![]() |
|
Создано: 30 июля 2008 21:22 · Личное сообщение · #2 |
|
Создано: 14 августа 2008 15:47 · Личное сообщение · #3 |
|
Создано: 14 августа 2008 17:36 · Личное сообщение · #4 |
|
Создано: 14 августа 2008 19:54 · Личное сообщение · #5 [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] почему так получается ? ![]() |
|
Создано: 15 августа 2008 18:45 · Личное сообщение · #6 |
![]() |
eXeL@B —› Программирование —› fasm+windows.inc=проблема |