程序内部动态加载了一段代码,并执行。
直接在OD中在加载好后的位置下断,将代码段修改的内容选择并复制到文件即可进行静态分析。
里面实现了一个简单的256进制的16位数的高精度运算。
根据OD结果与静态分析结果,该程序将密钥拆成前、后8位两组,分别异或特定值后得到高精度数值 x 与 y。
x
y
可以发现,程序内部在求一个大小由限制的不定方程 x^2-7y^2=8 且减法没有借位。
x^2-7y^2=8
可以直接用 Mathematica 计算,如下:
最后用 Python 将两个数字异或特定之后拼接回原始密钥:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课