CFF2016 想了一会儿的题目

渣渣不怎么会,很多都只是看一下题目

下面这些题目都是想了几次才想出来的

总是lose的程序

稍微拿ida看了一下,发现scanf那儿可以覆盖v5的值,也就是可以把v5要执行的函数给换掉,原来v5执行的函数是lose,我之前直接改成 read_flag的地址,脚本是这样

read_flag   0804857D   入口地址

v4  44h

v5  4h   

相差64

 

结果不对。。(上午是不对的,但现在不知道为毛又可以了,坑爹啊)


小伙伴这么做的,他改的是win的地址,因为win会调用read_flag


 



影之密码

 

8842101220480224404014224202480122

一开始看到都是2的幂次,就查了下 幂数加密

http://baike.baidu.com/link?url=pk_ook24QZMaSO7eHEqHawLWaswbDfgVzHcGGB3YPtSlat-crmZqmKty9bqaWtr-xiTKcbiW1gNt7ldS03A4NK

提示八位大写字母,又发现有70,可以分成8

根据那个过程瞎折腾了一番,提交不对,后来想直接加一下,对应大写字母

真的是这样,就出来了

 



 

远程登录系统

 

wireshark 用这个过滤  tcp contains "flag"

然后分析tcp

发现有四个flag,都试一下就出来了

 



德军的密码

 

先把秘钥转成二进制,96

然后密文是84

相差12

因为每8位二进制是一个ascii码字符

所以猜测是密文的每组都少了一位

把密文按7位分组

每组前加一个0

最后把处理之后的密文跟秘钥异或,就出来了

a='000000000000000000000000000000000000000000000000000000000001011100000110000100000001010000000001'

b='010101110100010101001100010000110100111101001101010001010101010001001111010000110100011001000110'

c=''

for i in range(len(a)):

       c+=str(ord(a[i])^ord(b[i]))

print c


稍微转化下就好了



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值