首页
社区
课程
招聘
[求助]堆调试的一点疑惑
2019-4-5 19:34 3285

[求助]堆调试的一点疑惑

2019-4-5 19:34
3285
各位师傅好,在下今天试着调试堆,参考了网上的一些文章,这里感觉这个比较详细
https://introspelliam.github.io/2017/06/24/0day/%E5%A0%86%E6%BA%A2%E5%87%BA%E7%A0%94%E7%A9%B6%E8%AF%95%E9%AA%8C/
但是总的来说,我申请一块堆内存,获得一个指针指向内存,那个指针的前8字节就是那个堆头了吧。然后我看了下说这个堆头有size,flag等等,看了上面那篇文章也的确如此。但是我在win10 x64 上调试,发现不对啊。很简单的代码,
h1 = HeapAlloc(hp, HEAP_ZERO_MEMORY, 3);
memset(h1, 5, 3);
获得h1地址  h1 0x009c04a0
然后我在内存里面看
>dc 0x009c0498
0x009C0498  63fc51d2 0d002002 00050505 00000000  �Q�c. ..........
0x009C04A8  06fd50b7 00002093 009c00c0 009c00c0  �P�.� ..�.�.�.�.
0x009C04B8  00000000 00000000 00000000 00000000  ................
0x009C04C8  00000000 00000000 00000000 00000000  ................
很奇怪啊,63fc51d2 0d002002这8字节完全不像是那个块首啊。。文章里面是2E100200,那显然0200就是大小,但这里大小的那两个字节是51d2,这就很奇怪了。有没有大佬指点下小弟是什么原因呢?感激不尽。

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

收藏
免费 0
打赏
分享
最新回复 (6)
雪    币: 538
活跃值: (157)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
KasdnsQ!1 2019-4-6 16:45
2
0
是啊 别人Windows2000_X86你是Windows10_X64 能一样就有鬼了 兄弟
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
samohyes 2019-4-7 17:25
3
0
晏子霜 是啊 别人Windows2000_X86你是Windows10_X64 能一样就有鬼了 兄弟
但我这63fc51d2看起来就很不对啊,按定义来说的话它是一个size 和 presize,但这个看起来不像啊。。。
雪    币: 12843
活跃值: (9078)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2019-4-7 19:12
4
0
samohyes 但我这63fc51d2看起来就很不对啊,按定义来说的话它是一个size 和 presize,但这个看起来不像啊。。。
微软有承诺过说堆头部一定是怎么怎么样的吗?
雪    币: 1421
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tearorca 2019-4-7 22:07
5
0
别人那个是调试堆,你这个是常态堆吧。你用int 3中断之后实时调试再看下堆
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
samohyes 2019-4-8 08:56
6
0
一滴泪 别人那个是调试堆,你这个是常态堆吧。你用int 3中断之后实时调试再看下堆
我是用int 3 中断后来看的来着。。。
雪    币: 85
活跃值: (101)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
samohyes 2019-4-8 08:56
7
0
hzqst 微软有承诺过说堆头部一定是怎么怎么样的吗?
啊?不是有个堆头的定义吗?。。难道那是大家自己逆向出来的?
游客
登录 | 注册 方可回帖
返回