具体的分析这里有。本人仅仅是对这里面有趣的算法进行了一些学习

分析链接

这次是逆向的使用3DES解密的过程中的内容:

使用微软的crypt库 使用3DES解密程序中的附加数据

代码:

VOID encryptData()
{
TCHAR szModuleFile[MAX_PATH] = "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[dwFileSize*2];
memset(pBuffer, 0, sizeof(pBuffer));
DWORD dwReaded = 0;
::ReadFile(hFile, pBuffer, dwFileSize, &dwReaded, NULL); TCHAR pText[] = "dfe963a6";
//创建/获取一个password容器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
#endif

3. 最后程序中的pBuffer中就是解密出来的数据

附件下载

http://download.csdn.net/detail/xiaocaiju/7417093

360破解大赛crackme分析--之3DES解密附加数据的更多相关文章

  1. 某虚拟定位APP从破解到原理分析

    工具环境ida7.0iphone 6ios 10.2 0x00:基本情况 1. 该app可以修改模拟手机地理位置(gps.基站.WIFI),拥有全局定位.指定应用定位.模拟扫街等功能,只能在已越狱的I ...

  2. iOS 3DES加密 和 java 3DES 解密

    首先进入头文件: #import <CommonCrypto/CommonDigest.h> #import <CommonCrypto/CommonCryptor.h> #i ...

  3. 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52264977 在了解系统的activity,service,broa ...

  4. 插件开发之360 DroidPlugin源码分析(四)Activity预注册占坑

    请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52258434 在了解系统的activity,service,broa ...

  5. JVM源码分析之Metaspace解密

        概述 metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所 ...

  6. PE文件附加数据感染之Worm.Win32.Agent.ayd病毒分析

    一.基本信息 样本名称:1q8JRgwDeGMofs.exe 病毒名称:Worm.Win32.Agent.ayd 文件大小:165384 字节 文件MD5:7EF5D0028997CB7DD3484A ...

  7. 为什么Wireshark无法解密HTTPS数据

    为什么Wireshark无法解密HTTPS数据 导读 由于需要定位一个问题,在服务器上tcpdump抓取https数据包,然后下载到本地打开wireshark分析.然后我们下载域名私钥配置到wires ...

  8. 以Crypto++实现RSA加解密二进制数据

    网上一大片讲怎么加解密字符串的,找了大半天也没找到讲加解密二进制数据的,于是自己研究了下,分享给大家. 加解密函数: #include <rsa.h> #include <randp ...

  9. 网易郑栋:数据采集与分析的那些事——从数据埋点到AB测试

    本文由  网易云发布. 4月8日晚,DTalk邀请到了网易互联网分析产品.可视化 BI 产品的负责人—郑栋老师,进行了一次关于<网易郑栋:数据采集与分析的那些事第一弹: 数据篇>的主题分享 ...

随机推荐

  1. ubuntu 设置计划任务

    非常简便: crontab -e 以下是我的执行过程,输入命令后,会让我选择一个编辑器,我选的是2,因为后边写着easiest,最简单的. liuyx@myubuntu:/$ crontab -e n ...

  2. JDBC 事务(一) 隔离级别

    public class TxTest { public static void main(String[] args) throws SQLException {         test();   ...

  3. Cordova 快速入门记录

    本篇文章由:http://xinpure.com/cordova-quick-start-recording/ 记一笔 Cordova 官网入门文档 Get Started Fast,言简意该.通俗易 ...

  4. 新浪微博XSS攻击事件

    http://blog.csdn.net/terryzero/article/details/6575078 6月28日20时14分左右开始,新浪微博出现了一次比较大的XSS攻击事件.大量用户自动发送 ...

  5. oracle 错误码查看命令oerr ora及常用错误码总结--不断更新

    oracle 错误码查看命令oerr ora及常用错误码总结--不断更新 1.ORA-00907: 缺失右括号 我自己的问题出在 字段的default 和 not null 顺序反了,defalut ...

  6. unity, GUI.Button texture is black

    GUI.Button(rect,tex),结果显示出来tex是黑的,原来是因为我以前在别处调用了GUI.contentColor =Color.black. 参考:http://answers.uni ...

  7. 简单实例,说明自动生成Makefile的详细过程

    为了编译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤: 第一步:----------在/root/project/main目录下创建一个文件main.c,其内容如下:-- ...

  8. Release Management

    1. Understand the current state of release management. test environment limitations how long to setu ...

  9. 关于.net 2.0 remoting 中 TCP Channel 用户认证探讨(一)

    http://www.cnblogs.com/scucj/archive/2007/05/09/740808.html

  10. php7性能、兼容性和稳定性探讨

    前几天看到php7发布了beta1版本,想了解一下php7到底折腾了些啥东西出来.这一了解发现不得了了,改变还挺多的.最最重要的方面就是性能提升了不少,这边有一个pdf文件是惠新宸(鸟哥,php核心开 ...