跟上一个CrackMe差不多,耐心追码,这一个有涉及到浮点指令。
带r,先交换源/目操作数的位置再计算:
fdiv qword ptr ss:[ebp-0xE4]:
ST0 <- ST0 / qword ptr ss:[ebp-0xE4]
fdivr qword ptr ss:[ebp-0xE4]:
ST0 <- qword ptr ss:[ebp-0xE4] / ST0
带p,计算结束后有出栈操作;
注册机:
name = input("name:")
key = str((len(name) * 0x15B38 + ord(name[0]) + 10 // 5) * 3 - 2 - (-15))
# 0x15B38 == 88888
print("KeyGen:",key)