当前位置:   article > 正文

CTFShow的36D杯

CTFShow的36D杯

神光

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
还是想了一下,但那个异或搞不出来,都是对dword_41A038操作,想起开头就给了 key ,还有反调试应该是要调试的
在这里插入图片描述
输出的应该就是 flag ,只是为什么是乱码呢?
放 od 再试试,直接就出 flag 了,强!!!
有点坑人 0_0

BBBigEqSet

好像是大端序的意思
在这里插入图片描述
这么多变量,记得可以用 angr 还是 pwntools 爆破
这么多肯定是不用 z3 了
在这里插入图片描述
一些师傅看的汇编(ida不能f5),确实汇编可以看出都是一样的操作:

movzx eax, [rbp+s]

零扩展并移动数据指令,0x1234–>0x00001234

movsx eax, al

符号扩展并移动数据,用符号扩展补充高位
0xff–>0xFFFFFFFF , 0x7f -->0x0000007F

imul edx, eax, 9421h

有符号整数乘法, eax * 0x9421 得到一个64位结果,高32位存到edx,低32位存到eax

嗯,找规律哈哈哈哈
在这里插入图片描述
厉害了我嘞个豆
然后比较重要的就是提取数据

def u32(a):
    return a[3]<<24 | a[2]<<16 | a[1]<<8 | a[0]
 
#1
data = open('BBBigEqSet', 'rb').read()[0x11c7:0x11c7+ 0x909*0x80]
print(hex(len(data)))
taba = []
tabb = []
for i in range(0x80):
    stab=[0]*0x80
    ptr = 12
    for j in range(0x80):
        stab[j] = u32(data[ptr: ptr+4])
        ptr+=18
        if j==0:
            ptr-=2
    ptr -= 11
    taba.append(stab)
    tabb.append(u32(data[ptr: ptr+4]))
    data = data[0x909:]
 
print(taba, tabb)
 
#2
import numpy as np
an = np.array(taba)
bn = np.array(tabb)
 
x = np.linalg.solve(an,bn)
print(x)
print(bytes([round(i) for i in x]))
#flag{Soooo000_LooOOOOOOOOggO99g99_s1muLtaNeOus_EEEQuat10n5_Y0UUUUUUuuu_cAA44AANNnnN_SOOOOOOLVE_IT17TT11771ITIT!!!_8ShotDshP90ab}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

但 ida python 有点问题,我不能导入模块,烦死
唉,我的 8.3的ida 可以,0_0

总结:

这个脚本蕴含了 dword 数据转32位数据,ida脚本提取数据,还有 numpy 库的使用

签到

在这里插入图片描述
动调一下
在这里插入图片描述
要找到输入所存的变量,看函数应该是 v8 或者 v10
在这里插入图片描述
就是 v8 , v6 要等于0

# -*- coding:utf-8 -*-

model = [102, 109, 99, 98, 127, 58, 85, 106, 57, 82, 122, 55, 81, 19, 51, 35, 67, 70, 41, 61, 41, 32, 127, 28, 38, 77,
         49, 20, 80, 94]
flag = ''

for i, val in enumerate(model):
    flag += chr(0 ^ i ^ (i + (i ^ val)))
print (flag)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

用到了枚举 i 是索引,val 是值
或者这样
在这里插入图片描述

tiny

在这里插入图片描述
我 PE 结构还没学完呢 0_0
在这里插入图片描述
在这里插入图片描述
文件头不对?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后面几个没看懂
嗯,这个先留着吧

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号