攻防世界re1 writeup

初入ctf,尝试做了一道题,深有体会,写一篇博客记录一下!

1 查壳 :无壳,32位

2;ida打开程序,找到main函数,按下F5反汇编;

3;阅读一下发现是对比v5,v9,若v5相等,即v3=0则进入flag get。

若不等于0,则v3会进行运算使v3!=0,得到

ps:

_mm_storeu_si128((__m128i *)&v5, _mm_loadu_si128((const __m128i *)&xmmword_413E34));

(给自己记个笔记)

1:_mm_storeu_si128 ( __m128i *p, __m128i a);

 

指令名:void _mm_storeu_si128 ( __m128i *p, __m128i a);

功能:可存储128位数据;

说明:将__m128i 变量a的值存储到p所指定的变量中去;

注意:p不要求必须是一个16-bit对齐的一个变量的地址。

2:

__m128i _mm_loadu_si128 (__m128i *p);

   指令名:__m128i _mm_load_si128 (__m128i *p);

     说明:加载128bits值;

   返回值:返回可以存放在代表寄存器的变量中的值;

     注意:p不用是一个16-bit对齐的一个变量的地址;

(万能的csdn)

4:找到xmmword_413E34

是一串16进制数据,我们可以将他转化为字符串就可以得到flag;

方法一:直接选中按下R键

ps:

在x86处理器中,数据采用小端序储存;

即高位字节在高位地址,低位字节在地位地址;

方法二:百度,csdn转换代码

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值