zoukankan      html  css  js  c++  java
  • X-CTF(REVERSE入门) getit

    之前文章讲过的技巧和知识,就不再详细描述了,如果有不明白的地方建议按照做题题目顺序查看。

    打开看见了可疑的三串字符,s字符串的长度和flag内容的长度一样


    图1

    图2

    找到关键代码页面,打开/tmp/flag.txt文件,将重新交换顺序的s字符串扔到flag文件里


    图3

    根据重新交换的方式写出解密代码


    图4

    附代码:

     1     s="c61b68366edeb7bdce3c6820314b7498"
     2 
     3     flag="????????????????????????????????"
     4 
     5     s=','.join(s)
     6 
     7     s=s.split(',')
     8 
     9     flag=','.join(flag)
    10 
    11     flag=flag.split(',')
    12 
    13     print(s,"
    ----------------
    ")
    14 
    15     v3=0
    16 
    17     v6=0
    18 
    19     for i in s:
    20 
    21           if(v6 & 1):
    22 
    23                 v3=1
    24 
    25           else:
    26 
    27                 v3=-1
    28 
    29           flag[v6] = chr(ord(s[v6])+v3)
    30 
    31           v6=v6+1
    32 
    33 
    34     out=''
    35 
    36     for i in flag:
    37 
    38           out +=  i
    39 
    40     print('harifCTF{'+out+'}')

    这道题里是将运行的结果保存进flag.txt文本内,程序运行结束时又将文本内容清空,所以在相应目录文件下我们看不到flag

    如果使用动态调试,不需要写解密代码就可以找到flag,这和“no-strings-attached”那道题一样用gdb调试。awsl后期能动态肯定动态,前面写逆向代码练手~~~



  • 相关阅读:
    小程序登录及用户信息和手机号的获取
    Node.js 获取微信JS-SDK CONFIG
    代码顺序的重要性
    七牛视频防盗链处理
    《码农翻身》读书笔记
    白夜行
    看见
    用node.js写一个jenkins发版脚本
    Node.js 使用 RSA 做加密
    七牛视频切片方案
  • 原文地址:https://www.cnblogs.com/blackicelisa/p/12263601.html
Copyright © 2011-2022 走看看