assume edi:ptr IMAGE_NT_HEADERS
assume ebx:ptr IMAGE_SECTION_HEADER
mov [ebx].Characteristics,0e0000020h
mov eax,[ebx].Misc.VirtualSize
push eax
add eax,[ebx].VirtualAddress
mov [edi].OptionalHeader.AddressOfEntryPoint,eax
add [ebx].Misc.VirtualSize,offset _m2-offset _m1
mov eax,[ebx].Misc.VirtualSize
mov ecx,[edi].OptionalHeader.FileAlignment
cdq
div ecx
inc eax
mul ecx
mov [ebx].SizeOfRawData,eax
mov eax,[ebx].Misc.VirtualSize
mov ecx,[edi].OptionalHeader.SectionAlignment
cdq
div ecx
inc eax
mul ecx
add eax,[ebx].VirtualAddress
mov [edi].OptionalHeader.SizeOfImage,eax
这段代码错在哪里啊,我想给记事本的最后节加上一段代码,可是注入后老提示不是WIN32程序,是不是这些赋值计算错了,请帮忙看下,谢谢
------解决方案--------------------------------------------------------
可能你将PE头格式破坏了。
你扩大一节,注意要将原有节的大小修改,包括VA和FILE Offset,
推荐看一下《加密与解密》里面一章有相关内容
另外也可以看一下《win32汇编语言程序设计》里面有用MASM给PE修改的章节。