这是什么类型的加密?

2024-04-26 19:15:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从二进制文件中恢复了一个解密算法。但是,我不明白这是一种“自定义”加密还是某种公钥加密。 你能给我一个提示吗?可能是什么

def mul_mod(K, M, n):
    return (K * M % n)

A = 0x0807FE482C385ACA9A13F78CA4926C5E782F8C7361AE1BA8596BC5386ADFA360CA0834CACB149028C1EC031EF6C7A2D0BA4E4EF6DE12CA67B34C17B7DD65F487BF99C20B9FE9D49782B03D9FDC2DB4CC6AE07A1ED01F0EF4CE7445EB4512518C0F12ED3A19D9CD48D36A2D67DF5F9B5AC9FAEA0E6F61255304BF26DA77FD31DE
n = 0xD0BD213EA460B9B9E16E169B1664D15BD83EB626B1C1711AA062B553BDD8C1A57B9A416E5AADD91DF5D41BA95FE6F65AA700F47FD1BCDE231A774B6E6EE1ACAC820894ABDBD2F0D3805F93948FFF716030E63460B8C30A2FF7589616CDB3550ABF34ADF16DD0281477F8B4111B1CCAB00583B4C97C2FCBA72DF607EEE3BCF561
C = 0x10001
LEN = 0x20

c = C
l = LEN
while not (c & 0xC0000000):
    c *= 4
    l -= 2

if l:
    left = ((l-1) >> 1) + 1
    res = 1

    while left:
        res = mul_mod(res, res, n)
        res = mul_mod(res, res, n)

        if c >> 0x1E:
            res = mul_mod(res, A, n)

        c = (c << 2) & 0xFFFFFFFF
        left -= 1

print("Decrypted (plain): " + hex(res))

解密的有效负载:

0019F7EC A9 12 CE 9D F7 C5 6A 6C E9 4C 53 B0 6B E8 A8 99 ©.Î.÷ÅjléLS°kè¨. 
0019F7FC 22 A4 33 04 AE 3D DF BE 20 F9 21 D9 8C 6C 93 21 "¤3.®=ß¾ ù!Ù.l.! 
0019F80C 57 A5 ED 03 C4 25 38 7D F9 7D F1 8F 69 5A 00 ED W¥í.Ä%8}ù}ñ.iZ.í 
0019F81C 4F DB 8E 3F 39 E4 0C A4 7D E9 7A 94 00 00 01 C3 OÛ.?9ä.¤}éz....Ã 
0019F82C 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 
0019F83C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 
0019F84C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 
0019F85C FF FF FF FF FF FF FF FF FF FF FF FF FF FF 01 00 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ.. 

Tags: 文件算法modlenif二进制resleft