Python 使用Frida跟踪CCCrypt调用

Python 使用Frida跟踪CCCrypt调用,python,objective-c,hash,reverse-engineering,frida,Python,Objective C,Hash,Reverse Engineering,Frida,我在试着理解一个密码。使用Frida,我能够获得相关信息,如 密钥,IV,用于应用程序进行的任何CCCrypt调用。我看到这些调用是在AJAX调用发生时触发的 我的印象是,这个CCCrypt负责在应用程序ajax调用中生成signatureval 我能够得到Key和IV。使用Key和IV,我如何使用python中的算法来创建相同的加密值 不确定,缓冲区中的内容在这里对加密起作用 我的python算法如下所示 data = b'9217977535687062886' key = codecs.

我在试着理解一个密码。使用Frida,我能够获得相关信息,如

密钥,IV,用于应用程序进行的任何CCCrypt调用。我看到这些调用是在AJAX调用发生时触发的

我的印象是,这个CCCrypt负责在应用程序ajax调用中生成
signature
val

我能够得到Key和IV。使用Key和IV,我如何使用python中的算法来创建相同的加密值

不确定,缓冲区中的内容在这里对加密起作用

我的python算法如下所示

data = b'9217977535687062886'
key = codecs.decode('3f2c593b7d469602af5a6fb718bc92cc', 'hex')
cipher = AES.new(key, AES.MODE_CBC) # Create a AES cipher object with the key using the mode CBC
ciphered_data = cipher.encrypt(pad(data, AES.block_size)) # Pad the input data and then encrypt
print(b64encode(ciphered_data))
我不确定这里的
数据中到底是什么。这是否假定是缓冲区中的
,如上面的屏幕截图所示

我的问题是-给定密钥,IV和缓冲区中如何使用python加密密钥

在下面的屏幕截图中,如果查看签名,加密密钥看起来就像

params = (
    ('app_version', '12.85.0'),
    ('cc', 'US'),
    ('device_type', 'iPhone8,2/13.5.1'),
    ('guest_user_tokens', '[]'),
    ('lang', 'en'),
    ('locale', 'en_US'),
    ('potential_transactions', '[]'),
    ('time', '1620627621'),
)
我的印象是签名基本上是参数的
hash
值,但我尝试了 类似这样的东西也会散列(params),并将此值传递给我的
数据

我的签名最终应该是24个字符长