64位、32位系统问题

wula0010 2019-05-22 04:28:08
一个exe文件,如何通过程序得出是32位的程序,还是64位的程序?pe结构里可以分析出来么?
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我说的是PE头,不是什么SizeOfOptionalHeader,DOS Stub接下来就是PE头,PE头的开始标记是50 45 00 00,接下来一个16位字就是machine
wula0010 2019-05-22
  • 打赏
  • 举报
回复
引用 3 楼 早打大打打核战争 的回复:
最简单的方法,GetBinaryType 复杂一点,直接读PE头,第一个16位字就是Machine(CPU Type) 0x14c i386 0x14d i486 0x14e Pentium+ 0x8664 x64 还有很多,参考winnt.h
这个,表示怀疑中,pe文件的NT头里,SizeOfOptionalHeader,对于32位文件来说,它是224;对于64位文件来说,它是240
  • 打赏
  • 举报
回复
最简单的方法,GetBinaryType
复杂一点,直接读PE头,第一个16位字就是Machine(CPU Type)
0x14c i386
0x14d i486
0x14e Pentium+
0x8664 x64
还有很多,参考winnt.h
stherix 2019-05-22
  • 打赏
  • 举报
回复
PE结构有区别 在可选头开始有一个Magic的WORD 32位和64位是不一样的
老马何以识途 2019-05-22
  • 打赏
  • 举报
回复
當然可以了,網上搜一下就出來: https://blog.csdn.net/reversalc/article/details/8022977

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧