-
-
[原创] easy strcmp(懵圈)
-
发表于:
2020-3-14 11:58
4390
-
我在buuctf下载的题目,运行没啥特征貌似就是简单的字符串比较,关键函数如下:
但是输入的值肯定不是a2保存,把每一个函数都看一遍,果然有一个处理字符串的函数:
所以现在手上有一个已知字符串,qword_201060[5]的已知数组和一个貌似是处理字符串函数:
; _QWORD qword_201060[5]
.data:0000000000201060 qword_201060 dq 0, 410A4335494A0942h, 0B0EF2F50BE619F0h, 4F0A3A064A35282Bh
.data:0000000000201060 ; DATA XREF: sub_6EA+62↑o
.data:0000000000201060 dq 0
.data:0000000000201060 _data ends
zer0pts{********CENSORED********}
然后看那个函数,第一个循环函数不知道干啥的,然后下面的 v4=(i>>3)+1 我没看懂啥操作,在后面才知道是啥用。下面的for循环应该是把输入的字符分成八个一组,然后每组里面对应进去已知数组里面每块的值。 现在看已知的字符串的确可以拆分,对应关系大概是这样:
zer0pts{ ******** CENSORED ******** }
0, 0x410A4335494A0942, 0x0B0EF2F50BE619F0, 0x4F0A3A064A35282B, 0
简单加上去就行,然后我才知道中间的移位操作的作用是对中间超过了的字符进行处理,然后竟然还有个倒叙处理,要不是我看到有个貌似是英文单词的,鬼知道怎么搞。
移位操作不会写,自己一个个试的,flag{zer0pts{l3ts_m4k3_4_DETOUR_t0d4y}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课