【NSSCTF逆向】《VidarCamera》《shellcode》

CTF

Posted by Corax on September 30, 2023

#题目 VidarCamera ##解法 这是一道安卓逆向题目,放在模拟器里打开看看 需要输入一个序列号啥的,扔jadx里吧。 通过字符串搜索定位到关键代码 这里应该就是一个变种TEA,更改了加密轮次,delta。 不过是TEA加密,写脚本不太难,自己的太丑了,贴个别人的

点击查看代码 ``` from Crypto.Util.number import * def decrypt(v, k): v0 = v[0] v1 = v[1] delta = 0x34566543 x = delta * 33 for i in range(33): x -= delta x = x & 0xFFFFFFFF v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (x + k[(x >> 11) & 3]) v1 = v1 & 0xFFFFFFFF v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (x + k[x & 3]) ^ x v0 = v0 & 0xFFFFFFFF v[0] = v0 v[1] = v1 return v c = [0x260202FA, 0x1B451064, 0x867B61F1, 0x228033C5, 0xF15D82DC, 0x9D8430B1, 0x19F2B1E7, 0x2BBA859C, 0x2A08291D, 0xDC707918] key = [2233, 4455, 6677, 8899] flag = b'' for i in range(len(c)-1): d = decrypt(c[-2:], key) flag = long_to_bytes(d[1])[::-1] + flag c = c[:-2] + [d[0]] print(flag) ```

出flag #题目 shellcode ##解法 pwn涉及的比较少,题目有一些细节没有明白,但草草还是可以做一下 查壳信息 进入main函数,可以看到有个类似base64的东东 得到数据 然后用python写一个脚本用来解密然后输出成一个二进制文件

点击查看代码 ``` import base64 base64_string = "YOUR_BASE64_ENCODED_STRING" output_file = "output.bin" # 解码 Base64 字符串 decoded_data = base64.b64decode(base64_string) # 将解码后的数据写入二进制文件 with open(output_file, "wb") as file: file.write(decoded_data) print("解码成功,并已保存为二进制文件:", output_file) ```

ok,出来一个bin文件,扔进ida,这里需要create a function才能反编译

很明显的一个tea操作 写脚本

出flag