首页
学习
活动
专区
工具
TVP
发布

MasiMaro 的技术博文

专栏作者
246
文章
280029
阅读量
34
订阅数
VC+++ 操作word
最近完成了一个使用VC++ 操作word生成扫描报告的功能,在这里将过程记录下来,开发环境为visual studio 2008
Masimaro
2019-04-21
3.2K0
PE文件简介
PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。它是跨win32平台的,只要运行在Windows上,不管是在什么体系的CPU上都可以运行 PE文件使用平面的地址空间,所有代码和数据都合并在一起,组成一个很大的结构,文件的内容被分为不同的区块,块中包含代码和数据,每个区块在内存中都有其对应的权限,比如有的快只读,有的只写或者有的只可执行。 一般有以下区块: .text : 是在编译或者汇编结束时产生的一种区块,是指令的代码 .rdata :是运行时的只读数据,也就是所说的const常量 .data:初始化的数据块,也就是全局变量 .idata:包含其他外来dll的函数以及数据信息,即输入表 .rsrc:包含全部的资源,如图标、菜单、位图等等 每个区块在内存中按页边界对齐,区块没有大小限制,是一个连续的结构,每个块都有对应的属性 pe文件的优势: 磁盘上的数据结构与在内存中的结构是一致的 相关名词: 入口点(EntryPoint):程序执行的第一条指令所在的内存地址 文件偏移地址(FileOffset)PE文件存储在磁盘上的时候,各个数据的地址相对于文件头的距离为文件的偏移地址 虚拟地址(VirtuallAddress VA)应用程序访问的逻辑地址也就是它的虚拟地址 基地址(ImageBase):文件被映射到内存时,初始地址叫做基地址 pe文件大致结构如下图所示:
Masimaro
2018-08-31
1.4K0
驱动程序的同步处理
驱动程序运行在系统的内核地址空间,而所有进程共享这2GB的虚拟地址空间,所以绝大多数驱动程序是运行在多线程环境中,有的时候需要对程序进行同步处理,使某些操作是严格串行化的,这就要用到同步的相关内容。 异步是指两个线程各自运行互不干扰,而当某个线程运行取决与另一个线程,也就是要在线程之间进行串行化处理时就需要同步机制。
Masimaro
2018-08-31
1.2K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档