是动调结果没动调
点进authenticate 函数
unk_8048B44 函数里面有成功。
读取s,dword_8048A90函数的地址
shirt+f2 使用pythonida读取数值
点进decrypt函数分析加密方式,得出答案
- 遍历
dest
数组的每个元素,按顺序减去a2
数组中的每个元素,直到a2
的所有元素都被用来处理dest
中的一个元素。 - 当处理完一个元素后,继续处理下一个元素,直到遍历完所有元素。
、
import idaapi addr = 0x08048AA8 arr = [] for i in range(39): # 使用 idaapi.get_dword 函数读取 32 位数据 value = idaapi.get_dword(addr + 4 * i) arr.append(value) print(arr)
[5178, 5174, 5175, 5179, 5248, 5242, 5233, 5240, 5219, 5222, 5235, 5223, 5218, 5221, 5235, 5216, 5227, 5233, 5240, 5226, 5235, 5232, 5220, 5240, 5230, 5232, 5232, 5220, 5232, 5220, 5230, 5243, 5238, 5240, 5226, 5235, 5243, 5248, 0]
import idaapi addr = 0x08048A90 arr = [] for i in range(6): # 使用 idaapi.get_dword 函数读取 32 位数据 value = idaapi.get_dword(addr + 4 * i) arr.append(value) print(arr)
[5121, 5122, 5123, 5124, 5125, 0]
# 示例数据 s = [5178, 5174, 5175, 5179, 5248, 5242, 5233, 5240, 5219, 5222, 5235, 5223, 5218, 5221, 5235, 5216, 5227, 5233, 5240, 5226, 5235, 5232, 5220, 5240, 5230, 5232, 5232, 5220, 5232, 5220, 5230, 5243, 5238, 5240, 5226, 5235, 5243, 5248, 0] a2 = [5121, 5122, 5123, 5124, 5125] # 计算长度 v6 = len(s) v7 = len(a2) # 复制 s 到 dest dest = s.copy() # 执行减法操作 i = 0 while i < v6: for j in range(v7): if i >= v6: # 防止超出 dest 的索引 break dest[i] -= a2[j] # 从 dest[i] 减去 a2[j] i += 1 # 打印结果 print(" ".join(chr(x) for x in dest if 0 <= x < 128), end="")
9 4 4 7 { y o u _ a r e _ a n _ i n t e r n a t i o n a l _ m y s t e r y }