只会挂一档 发表于 2017-6-2 11:00:56

360破解大赛crackme分析--之3DES解密附加数据

详细的分析这里有,本人只是对这里面有趣的算法进行了一些学习
分析链接


这次是逆向的使用3DES解密的过程中的内容:
使用微软的crypt库 使用3DES解密程序中的附加数据
代码:
VOID encryptData()
{
        TCHAR szModuleFile = "C:\\Users\\Administrator\\Desktop\\破解技术考题 360\\破解考题.over";
        HANDLE hFile = ::CreateFile(szModuleFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
        if (!hFile)
        {
                AfxMessageBox("createfile error");
                return;
        }
        DWORD dwFileSize = 0;
        dwFileSize = ::GetFileSize(hFile, NULL);
        DWORD dwError = ::GetLastError();
        TCHAR *pBuffer = new TCHAR;
        memset(pBuffer, 0, sizeof(pBuffer));
        DWORD dwReaded = 0;
        ::ReadFile(hFile, pBuffer, dwFileSize, &dwReaded, NULL);


        TCHAR pText[] = "dfe963a6";
        //创建/获取一个密码容器CSP
        HCRYPTPROV hProv;
        TCHAR pszContentName[] = "Microsoft Enhanced RSA and AES Cryptographic Provider";
        if (!::CryptAcquireContext(&hProv, NULL, pszContentName, 0x18, 0))
        {
                DWORD dwError = ::GetLastError();
                AfxMessageBox("cryptAcquireContext error");
                return ;
        }
       
        //创建/获取/导入一个密钥
        HCRYPTHASH hHash;
        if (!CryptCreateHash(hProv, 0x8003, 0, 0, &hHash))
        {
                AfxMessageBox("cryptcreateHash error");
                return ;
        }
        //使用密钥进行加密/解密
        ::CryptHashData(hHash, (BYTE*)pText, strlen(pText), NULL);

        HCRYPTKEY hKey;
        ::CryptDeriveKey(hProv, 0x660E, hHash, 0x800000, &hKey); //CALG_AES_128 0x660E   0x800000

        ::CryptDecrypt(hKey, 0, TRUE, 0, (BYTE*)pBuffer, &dwFileSize); //0

        ::CryptDestroyKey(hKey);
        ::CryptDestroyHash(hHash);

        ::free(pBuffer);
        ::CloseHandle(hFile);
}
测试环境:
1. 使用ffi将crackme中的附加数据导出来,当做这个程序的输入数据使用


2.使用微软的加密库时的设置
在stdafx.h中加入这么几行代码:
#ifndef   _WIN32_WINNT
#define   _WIN32_WINNT   0x0400
#endif3. 最后程序中的pBuffer中就是解密出来的数据


附件下载
http://download.csdn.net/detail/xiaocaiju/7417093
页: [1]
查看完整版本: 360破解大赛crackme分析--之3DES解密附加数据