运行程序

X-CTF(REVERSE入门)   re1

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

X-CTF(REVERSE入门)   re1

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

X-CTF(REVERSE入门)   re1
右边的即是鼠标滑到函数上面出现的小窗口

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

X-CTF(REVERSE入门)   re1
观看通篇代码寻找可疑的点,或者叫做关键的地方

双击打开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组成

X-CTF(REVERSE入门)   re1
X-CTF(REVERSE入门)   re1

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

X-CTF(REVERSE入门)   re1

相关文章:

  • 2021-08-18
  • 2022-12-23
  • 2021-05-08
  • 2021-11-23
  • 2021-04-10
  • 2021-05-14
  • 2021-09-12
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-01
  • 2021-05-25
  • 2022-12-23
相关资源
相似解决方案