当前位置: 代码迷 >> 汇编语言 >> 怎么扩大一个节
  详细解决方案

怎么扩大一个节

热度:3279   发布时间:2013-02-26 00:00:00.0
如何扩大一个节
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修改的章节。
  相关解决方案