首页
社区
课程
招聘
未解决 [求助]逆向中的一点问题,__x128i类型
发表于: 2019-11-13 18:09 2471

未解决 [求助]逆向中的一点问题,__x128i类型

2019-11-13 18:09
2471

关于__m128i类型的一个问题

只是菜鸡一个,希望大佬不吝建议!
是在练习CTF逆向题的时候遇到的问题,如下图中的伪代码,出现了类型为__m128i的变量:
图片描述

 

在查阅了msdn和其他一些资料之后,我把这个类型理解为16个字节大写的一种类型,有些资料里叫做UNION,这样理解下来之后,在下面这张图片中有点疑问:
图片描述
按照我分析的结果,check函数第二个参数decode_str是将输入的flag值进行相应的处理后得到的结果,check函数的第一个参数decode_size则是decode_str的长度,中间的最大的if代码段将decode_str进行二次处理了,结合m128i的理解,感觉应该就是将decode_str看做m128i的一个数组,循环对其进行异或(异或的值为

xor_value = "\x25"*16

),但在if代码段的最后又将其看做char字符串与0x25异或,我想问这两种异或的方式是一样的吗?如果是一样的话那不就相当于没有作用了吗?


 

第二张图片中:\JPzNKJRzMJRzQJzW@HJS@zOPKNzFJA@是字符串you_know_how_to_remove_junk_code与0x25异或的结果。
求大佬答疑!^-^


[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 7018
活跃值: (2981)
能力值: ( LV4,RANK:52 )
在线值:
发帖
回帖
粉丝
2
谢邀,利益相关,匿了

意思是最下面的红框里面的吗?
如果不是就当我没说,如果是,那么下面红框的跟上面的while循环处理的不是一样的数据
上面while循环处理的长度是第一个红框里面计算的长度(16字节向下对齐,例如有35个字节,它只处理32个)
而下面的for处理的是从第33个字节开始到第35个字节

图侵删
以上
2019-11-13 18:32
1
雪    币: 0
活跃值: (238)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哦哦哦、谢谢,我才发现index的问题,秒懂!多谢大佬
2019-11-13 22:43
0
雪    币: 0
活跃值: (238)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不对 谢邀,利益相关,匿了意思是最下面的红框里面的吗?如果不是就当我没说,如果是,那么下面红框的跟上面的while循环处理的不是一样的数据上面while循环处理的长度是第一个红框里面计算的长度(16字节向下 ...
哦哦哦、谢谢,我才发现index的问题,秒懂!多谢大佬
2019-11-13 22:43
0
游客
登录 | 注册 方可回帖
返回
//