首页
社区
课程
招聘
[讨论]编程坑之VS引发异常0xc0000005写入访问发生冲突
2022-3-19 09:36 5392

[讨论]编程坑之VS引发异常0xc0000005写入访问发生冲突

2022-3-19 09:36
5392

该文章用于记录踩坑过程以及让更多跟我一样的小白能在学习中遇见问题并找到解决的根本原因
图片描述
今天在编写调试器信息时,运行到结构体的执行过程中,爆出写入访问异常

 

1.首先,我根据函数的属性创建了一个结构体
图片描述
图片描述

 

当我运行时候这一代码时产生错误

 

图片描述

 

解决答案:
图片描述
凡是带有开头带有LP字眼就说明这个结构体或者参数是以指针方式进行传递,因为直接创建LP开头字眼的结构体指向的指针是空或者是0,肯定会访问错误。

 

可能有人说前面添加一个&就可以使用了,然而这只是其一,

 

第一步:将LPDEBUG_EVENT结构体前面的LP去除
图片描述
第二步:再在函数中添加取址符
图片描述

 

这样,问题便得到了解决答案。


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 264
活跃值: (654)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lainswork 2022-3-19 12:55
2
0
几乎所有用到结构体作为参数的windows api 都会使用这种传参形式
随着你后续不断编写win c++ 你会发现这个规律
win sdk中的结构体都有如下特征
typedef struct _XXXXXXX {
    
} XXXXXXX;
typedef XXXXXXX  *PXXXXXXX;
windows api的参数一般为PXXXXXXX  意为 XXXXXXX的指针
一般如下使用:
XXXXXXX  info{};
XxxxxApi(&info);
雪    币: 221
活跃值: (257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
柒爻 2022-3-19 13:29
3
0
lainswork 几乎所有用到结构体作为参数的windows api 都会使用这种传参形式 随着你后续不断编写win c++ 你会发现这个规律 win sdk中的结构体都有如下特征 typedef struct ...
你这样一说我还真没发现.结构体名称和API函数后面重名.这样更加方便记忆了.看来这是固然的趋势了
游客
登录 | 注册 方可回帖
返回