前言
菜鸡学逆向,真的不知道从何入手,只能做做简单题
一、题目分析
查壳发现是个MAC系统下,直接IDA丢进去看逻辑比较简单,拿出flag索引为3,6,13,36,这几个位置的数据赋值给v21,然后,用v21计算出一个数组b,数组b的长度是5,flag5位一组和b数组对应相乘,得到了9个数据,解方程就行了,我们先通过第一组数据爆破出b数组中我们不知道的几位,也就是6,13,36,然后再逐组解,有一坑点就是,题目中说的小写字符包括数字,所以table中加上了数字。
二、代码示例
1.示例
import string
'''
a = b'flag{'
for b6 in range(33,127):
for b13 in range(33,127):
for b36 in range(33,127):
b = [13**5,b36**4,b13**3,b6**2,103]
v19 = 0
for i in range(5):
v19 += a[i] * b[i]
if v19 == 0x2A6274623:
print(chr(b6),chr(b13),chr(b36))
'''
b = [13