首页
社区
课程
招聘
0day 2.4.1节,将MessageBoxA的函数地址修改为本机的后,读入缓冲区的password变了,原来的90变成了CC,buffer的首地址也没有淹没函数返回地址
2017-2-28 11:20 3622

0day 2.4.1节,将MessageBoxA的函数地址修改为本机的后,读入缓冲区的password变了,原来的90变成了CC,buffer的首地址也没有淹没函数返回地址

2017-2-28 11:20
3622
收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Summerd 2017-2-28 14:01
2
0
password.txt要56个字节,最后四个字节改成0x0012FAF0才能覆盖到返回地址
雪    币: 283
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
jdlxy 2017-2-28 15:31
3
0
Summerd password.txt要56个字节,最后四个字节改成0x0012FAF0才能覆盖到返回地址
这两处都改成了本机调试出的地址,但我用Ultra edit编辑后,读进去的password内容跟文本内的不一样,如上,我修改之后的内容都变成了CCCCCC...原来的909090读进内存成了CCCC
雪    币: 283
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
jdlxy 2017-2-28 15:35
4
0
补充一下,我直接修改的本书附带的程序目录里的password.txt,当只改了最后4个字节的返回地址时,strcpy里的函数返回地址被覆盖对了,然后我手动在ollydbg里修改MessageBoxA的入口地址,failwest弹出来了。但如果我直接在password.txt里再把MessageBoxA的入口地址更改,就会出现如上图所示的问题。百思不得其解。。。
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Summerd 2017-2-28 16:09
5
0
jdlxy 补充一下,我直接修改的本书附带的程序目录里的password.txt,当只改了最后4个字节的返回地址时,strcpy里的函数返回地址被覆盖对了,然后我手动在ollydbg里修改MessageBoxA的 ...

wo的都是正常的。。。

雪    币: 74
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tmacfalcon 2017-7-31 17:44
6
1
应该是你的MessageBoxA函数的地址里包含有会被fscanf函数截断的字符,比如  如果地址是0x77D5050B  ,则fscanf读入时碰到  0B  会截断的,所以会出现读入内容与预期不符的情况。。
游客
登录 | 注册 方可回帖
返回