逆向碰到3des分析

1.ios 某个app碰到涉及3des的解密函数。ios

2.底层调用的库函数。算法

3.对比CCCrypt的头文件app

CCCryptorStatus CCCrypt(
    CCOperation op,            /* kCCEncrypt, etc. */
    CCAlgorithm alg,        /* kCCAlgorithmAES128, etc. */
    CCOptions options,        /* kCCOptionPKCS7Padding, etc. */
    const void *key,
    size_t keyLength,
    const void *iv,            /* optional initialization vector */
    const void *dataIn,        /* optional per op and alg */
    size_t dataInLength,
    void *dataOut,            /* data RETURNED here */
    size_t dataOutAvailable,
    size_t *dataOutMoved);    
    

参数2是对应的算法,当2时对应枚举的值为kCCAlgorithm3DES。函数

enum {
kCCAlgorithmAES128 = 0,
kCCAlgorithmDES,    
kCCAlgorithm3DES,    
kCCAlgorithmCAST,    
kCCAlgorithmRC4,
kCCAlgorithmRC2    
};

4.按照固定key以及向量填充后进行解密。发现秘钥只有23位,进行解密失败,CCCrypt为24位,进行补0操做后解密成功。spa

相关文章
相关标签/搜索