【CSICTF】RicknMorty WriteUp


第一道逆向题



大致流程就是,随机给你出几道题,题目是这样的:给你2个不是太大的数,求最小公因数,然后计算最小公因数+3的阶乘
所有题目回答正确并且用时小于30秒就能获得flag

讲真的,这种程度的题目我室友应该能2秒一道口算出结果

我算不了这么快,还是老老实实上python脚本吧
这里借用一下pwn题的模板

from pwn import *
from LibcSearcher import *
from struct import pack

context.os='linux'
context.arch='amd64'
context.log_level='debug'

sd=lambda x:io.send(x)
sl=lambda x:io.sendline(x)
ru=lambda x:io.recvuntil(x)
rl=lambda :io.recvline()
ra=lambda :io.recv()
rn=lambda x:io.recv(x)
sla=lambda x,y:io.sendlineafter(x,y)

def fun1(a,b):
    r=0
    i=1
    while True:
        if a<i or b<i:
            break        
        if not(a%i) and not(b%i):
            r=i
        i=i+1
    return r

def fun2(a):
    if a!=0:
        return a*fun2(a-1)
    else:
        return 1

io=remote('chall.csivit.com',30827)

while True:
    t=ru(' ')[:-1]
    if t=='fun()':
        break
    a=int(t)
    b=int(rl()[:-1])
    sl(str(fun2(fun1(a,b)+3)))

io.interactive()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值