zoukankan      html  css  js  c++  java
  • [WP]XCTF-no-strings-attached

    1、查看文件信息,32位

    2、载入IDA中,发现有个decrypt函数需要注意。进入main等函数查看源码。

     

    3、跟踪 authenticate() 函数中 if 语句 print() 函数发现了success 的字样。因此我们能知道当 authenticate() 函数中 ws 和 s2 相等时,会输出正确结果。

    而 s2 是由 decrypt 函数加密后所得。

     

    4、跟踪 s 和 dword 两个参数可以在rodata段查看到其值。

    需要注意的是,这里 s 的实际上是 0x143A, 0x1436, 0x143B... 

    同理的,dword 是 0x1401, 0x1402...

     

    5、得到两个参数的值后,便可以根据 decrypt 函数编写 exp,运行得到 flag。

     1 a2 = [1, 2, 3, 4, 5]
     2 v7 = len(a2)
     3 s = [0x3a, 0x36, 0x37, 0x3b, 0x80, 0x7a, 0x71, 0x78, 0x63, 0x66, 0x73, 0x67, 0x62, 0x65, 0x73, 0x60, 0x6b, 0x71, 0x78, 0x6a, 0x73, 0x70, 0x64, 0x78, 0x6e, 0x70, 0x70, 0x64, 0x70, 0x64, 0x6e, 0x7b, 0x76, 0x78, 0x6a, 0x73, 0x7b, 0x80]
     4 v6 = len(s)
     5 v2 = v6
     6 dest = s
     7 i = 0
     8 while i < v6:
     9     dest[i] -= a2[i%5]
    10     i += 1
    11 
    12 flag = ''
    13 for x in dest:
    14     flag += chr(x)
    15 
    16 print(flag)

     

  • 相关阅读:
    jQuery(四)
    jQuery(三)
    jQuery(二)
    jQuery(一)
    JS(四)
    JS(三)
    JS(二)
    类似openDialog的弹窗
    vue的异步组件按需加载
    vue实现点击、滑动右侧字母对应各个城市
  • 原文地址:https://www.cnblogs.com/Tsuiyields/p/13652971.html
Copyright © 2011-2022 走看看