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

MasiMaro 的技术博文

专栏成员
247
文章
296355
阅读量
35
订阅数
C语言中处理结构体的原理
汇编中有几种寻址方式,分别是直接寻址:(ds:[idata])、寄存器间接寻址(ds:[bx])、寄存器相对寻址(ds:[bx + idata]、ds:[bx + si])基址变址寻址(ds:[bx + si])、相对基址变址寻址([bx + si + idata])。 结构体的存储逻辑图如下:(以下数据表示某公司的名称、CEO、CEO的福布斯排行、收入、代表产品)
Masimaro
2019-02-25
9740
汇编debug与masm命令
汇编语言这块是我之前写在网易博客上的,不过那个账号基本已经作废了,所以现在抽个时间把当时的博客搬到CSDN上。 汇编命令(编译器masm命令):找到masm所在的文件夹,我的在d:\MASM中,用cmd打开dos界面,输入“d:”切换到D盘,再输入“d:\MASM\masm”打开编译器中的masm程序得到如下结果:
Masimaro
2019-02-25
1.5K0
windows平台调用函数堆栈的追踪方法
在windows平台,有一个简单的方法来追踪调用函数的堆栈,就是利用函数CaptureStackBackTrace,但是这个函数不能得到具体调用函数的名称,只能得到地址,当然我们可以通过反汇编的方式通过地址得到函数的名称,以及具体调用的反汇编代码,但是对于有的时候我们需要直接得到函数的名称,这个时候据不能使用这个方法,对于这种需求我们可以使用函数:SymInitialize、StackWalk、SymGetSymFromAddr、SymGetLineFromAddr、SymCleanup。
Masimaro
2018-08-31
3.1K0
C语言循环的实现
在汇编代码中首先执行了一次循环体中的操作,然后判断,当条件满足时会跳转回循环体,然后再次执行,当条件不满足时会接着执行后面的语句。 这个过程可以用goto来模拟:
Masimaro
2018-08-31
2.5K0
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
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档