• XCTF EasyRE


    一.查壳
    在这里插入图片描述
    无壳,并且发现是vc++编译的
    二.拖入ida,来静态分析,这题让我深刻感觉到汇编的nb。
    在这里插入图片描述
    在这里插入图片描述
    这段算是灵性的一段了,单从静态语句来看,发现分析不出啥,只能靠猜一下,我当时猜的是将输入的字符串又赋值到一个新的字符数组里了,后面,写脚本就出现了问题,一直乱码,又返回分析,结合wp才知道,这玩意,要看汇编,我又把汇编看了一遍,才知道原来是倒序2333,
    在这里插入图片描述
    就是这段,认真分析下来,就能知道,然后写出脚本flag就出来了。
    三.脚本

    res=[0x78, 0x49, 0x72, 0x43, 0x6A, 0x7E, 0x3C, 0x72, 0x7C, 0x32, 0x74, 0x57, 0x73, 0x76, 0x33, 0x50, 0x74, 0x49, 0x7F, 0x7A, 0x6E, 0x64, 0x6B, 0x61]
    print(len(res))
    flag=""
    for i in range(len(res)):
        flag+=chr((res[23-i]^6)-1)
    print(flag)
    

    四.总结
    这题本身加密算法是不难的,一个异或和加法,算入门,感觉考的就是会不会看汇编,这也是我的思维定式了,发现一上来就F5,然后不去看汇编,以后要改进。

  • 相关阅读:
    ES6解构赋值
    ES6兼容
    ES6关键字
    ES6模板字符串
    Bootstrap面试题
    Javascript中类型转换的情况以及结果
    事件
    ES6 解构赋值
    ES6 基础(let const)
    数组与字符串常用方法
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779914.html
Copyright © 2020-2023  润新知