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

    运行程序

    32位ida打开,shift+f12查看运行时的中文,这里双击flag get字符串进入rdata段

    双击后面的函数,进入text段,小的窗口视图里可以看见汇编代码调用函数的句子


    右边的即是鼠标滑到函数上面出现的小窗口

    tab键查看伪代码,v8是我们输入的,v4是需要相比较的,flag get最后的输出和v4有关


    观看通篇代码寻找可疑的点,或者叫做关键的地方

    双击打开v4,发现

    ①在堆里的数据字符串变量名叫xmmword,那么v4是程序运行时加载进去的

    ②返回两个寄存器地址,那么猜测xmmword数据由两个变量组成

    返回伪代码我们看到第12行,xmmword的数据通过xmmword_413E34传递(_mm_storeu_si128存储,v4代表所指示的变量xmmword)

    第14行,qword_413E44所指示的地址刚好在xmmword里(_mm_storel_epi64存储,v5代表所指向的指针,指针指向的地址刚好在xmmword里)

    所以v4内容由xmmword_413E34和qword_413E44组成

    双击xmmword_413E34,按R将内容转换成字符串,因为cpu是小端存储,又align 4对齐,所以倒过来就是flag;DUCTF{We1c0met0DUTCTF}



  • 相关阅读:
    Android基础
    Android基础
    Java小项目——多线程弹球
    Java小项目——抽奖系统
    Java小项目——五子棋
    Java小项目——画板
    Java基础——swing登录界面
    Java基础——类的继承
    实验室资料说明
    20180919 百信、百度面试
  • 原文地址:https://www.cnblogs.com/blackicelisa/p/12263535.html
Copyright © 2011-2022 走看看