zoukankan      html  css  js  c++  java
  • 2017年网络空间安全技术大赛部分writeup

    作为一个bin小子,这次一个bin都没做出来,我很羞愧。

    0x00 拯救鲁班七号

    具体操作不多说,直接进入反编译源码阶段

     

    可以看到,只要2处的str等于a就可以了,而str是由1处的checkPass返回,于是进入checkPass函数。

     

    从代码看,这是调用了so库里的函数,并且我们知道so库的名字叫humen

     

    于是找到so库,拖进ida静态分析

     

    找到checkPass函数,直接F5,通过分析,2中的代码最为关键

    这段代码把我们输入的密码做了非常复杂的变换,变换后得到的字符串为S!@#@1FD23154A34

     

    于是我找了16张纸,将flag变换出来了。。。。。

    0x01 取证密码

    反编译

    进入encrypt函数

    找到XTU.so拖进ida静态分析。

    这段代码很简单,脚本如下

     

    1 dest = [0x39,0x20,7,0xA,0x20,0x29,0x13,2,0x3A,0xC,0x11,0x31,0x3B,0xB,7]
    2 str = 'Welc0meT0XTUCTF'
    3 str1 = 'yInS567!bcNOUV8vwCDefXYZadoPQRGx13ghTpqrsHklm2EFtuJKLzMijAB094W'
    4 a = len(str)
    5 b = ''
    6 for i in range(a):
    7     b += str1[dest[i]]
    8 print b

    运行,得到flag.

    0x02 人民的名义-抓捕赵德汉1

    是个jar文件,直接反编译。

    分析逻辑,直接进入checkPassword分析

    很明显只要MD5解密就行

    0x03人民的名义-抓捕赵德汉2

    是个jar文件,直接反编译

    好多乱码,很方,但还是继续分析,进入这个不知名的函数

    看到两个关键函数,先进入第一个函数分析,一路追踪

    复现这段代码

     

    得到字符串JsnatterrtJuaththovacke

    然后进入开始的第二个函数

    代码逻辑很简单,下面是脚本

     1 # -*- coding: utf-8 -*-
     2 def f1(a,b):
     3     return f2(a) % len(b)
     4 def f2(b):
     5     if b > 2: 
     6         return f2(b - 1) + f2(b - 2)
     7     else:
     8         return 1
     9 x = 'JsnatterrtJuaththovacke'
    10 b = ''
    11 z = 0
    12 for i in range(0,4):
    13     for j in range(0,4):
    14           b += x[f1(z + j,x)]
    15     z += 5
    16 print b    

    运行得到flag.注意格式flag{xxxx-xxxx-xxxx-xxxx}                                                                                                                        .

    Always believe that good things will come.
  • 相关阅读:
    第24天:Python 标准库概览2
    第23天:Python 标准库概览1
    第22天:Python NameSpace&Scope
    第21天: Web 开发 Jinja2 模板引擎
    第20天:Python 之装饰器
    第19天:Python 之迭代器
    第18天:Python 高阶函数
    第17天:Python 函数之参数
    第16天:Python 错误和异常
    第15天:Python set
  • 原文地址:https://www.cnblogs.com/elvirangel/p/6720760.html
Copyright © 2011-2022 走看看