攻防世界REVERSE_Hello, CTF

菜鸡发现Flag似乎并不一定是明文比较的
拿到附件,放入IDA,得到伪代码
在这里插入图片描述
看关键代码,从26行到35行,此处是将v4的前17个字符复制到v10里,而在第36行可以看出,只有当v10和v13(内容在第15行赋值为"437261636b4d654a757374466f7246756e")相同时才能输出success。
我们分析一下,在31行,v8经过sprintf赋值为v4在字符串asc_408044得到格式化字符串内容。查看字符串asc_408044的内容。
在这里插入图片描述
也就是说,31行可以写为:

sprintf(&v8,"%x",v4);

这句话讲v4的每一个字符都以ASCII码的十六进制形式以字符串格式化并复制给v8
再由v8经strcat()连接到v10,最后,v10同v13(“437261636b4d654a757374466f7246756e”)进行比较。
所以我们只需讲v13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值