Loading

逆向碰到3des分析

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

2.底层调用的库函数。

3.对比CCCrypt的头文件

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操作后解密成功。

 

posted @ 2017-12-06 16:04  loz2015  阅读(497)  评论(1编辑  收藏  举报