bfloat16Pyarmor v8+ 分析(非原创) 中发帖

0x0 说明
本文建立在这两个优秀的仓库上面,只是把自己的理解写出来,无额外贡献。


0x1 密钥生成
[image]
[image]
这个函数即为密钥生成函数,有下面几个部分参与md5计算:

pyarmor-vax-{6位数字}:后面全000000代表免费版本,不是全000000代表客户ID。
RSA_KEY1:这里的指针指向RSA_KEY数据段的开始 (offset=0),然后读取0x10E长度的数据 (data_61b7f054=0x10E)。
RSA_KEY2:这里的指针从RSA_KEY数据段的开始往后移动0x110 + 0x20个字节,读取长度为头部偏移 +4 处的 4 字节长度字段。
xmmword:和0xF1 xor 以后参与hash计算。

RSA_KEY2的前12个字节会被用作AST节点的nonce,记为AST_nonce,这里为b’i.non-profit...