A立方CTF逆向no_key

srand()用于设置供rand()使用的随机数种子
rand()生成随机数,但不是生成真正的随机数
在srand()规定好种子后,调用rand()会生成相同的随机数序列

IDA打开后大量的c++函数,但都是一些赋值和创建空间,核心函数encrypt()
1
以时间戳为随机数种子,异或图片的每个hex值。所以思路是以加密后的文件为参数,动调修改时间戳就可以在生成一张图片。
IDA带参数动调(这里将原文件main名字改为maintest,原flag.png.enc的名字改为flag.png,main改maintest是以防main这个名字太特殊,flag.png.enc改flag.png是假装这是一张图片,233)
1
在encrypt()下断
1
修改time函数的返回值为图片生成的时间戳
查看图片生成时间
1
http://tool.chinaz.com/tools/unixtime.aspx
生成时间戳
shijianchuo
1608297241(0x5FDCAB19)
双击rax修改为0x000000005FDCAB19
在这里插入图片描述
直接运行生成一张二维码
在这里插入图片描述
flag{sRand_ANd_LCg_is_No_Safty_}

附件:
https://wwx.lanzoux.com/if2Wxk8itgb
密码:njih

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值