Доброй ночи! подскажите почему секция создается, но файл в результате невалидный!?? и как мне ее набить нулями? Код (Text): invoke MapFile, addr File call CheckPE .if eax == 0 invoke MessageBox, 0, addr error, 0, 0 .else invoke MessageBox, 0, addr PE, 0, 0 .endif push esi invoke GetFileAlignment, esi invoke GetAlign, 100h, eax mov rs, eax invoke GetSectionAlignment, esi push eax invoke GetAlign, 100h, eax mov vs, eax assume esi: ptr IMAGE_DOS_HEADER add esi,[esi].e_lfanew assume esi:ptr IMAGE_NT_HEADERS movzx eax, word ptr [esi + 06h] mov Sections, eax mov edx, esi ; hMap add edx, 248 mov eax, Sections imul eax, 40 add edx, eax mov dword ptr [edx], 'set.' mov dword ptr [edx + 4], 'gnit' mov eax, vs mov [edx + 8], eax mov ecx, [edx - 32] pop eax invoke GetAlign, ecx, eax mov ebx, [edx - 28] add ebx, eax mov dword ptr [edx + 0Ch], ebx mov eax, rs mov dword ptr [edx + 10h], eax mov ecx, [edx - 18h] mov eax, [edx - 14h] add eax, ecx mov dword ptr [edx + 14h], eax ; PointerToRawData mov dword ptr [edx + 24h], 0E0000020h mov eax, dword ptr [esi + 050h] add eax, vs mov dword ptr [esi + 050h], eax inc Sections mov eax, Sections mov word ptr [esi + 06h], ax assume esi:nothing pop esi push esi call UnMapFile xor eax, eax ret invoke ExitProcess,0
Хотелось бы взглянуть на невалидный файл. Имхо, у вас описание секции существует лишь в заголовке, но самой секции в файле нету.
файл прекрепил! да я просто не догоняю, как создать саму секцию и забить ее нулями или ... через mov edi, roffset mov al, 0 mov ecx .... rep stosb не получается