惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - 高原

[转] 定义、注册和实现 GObject 类的子类 [转] GType 类型系统的功能 [转] Android FrameWork——Touch事件派发过程详解 [转] GObject对象系统 [转] GTYPE类型系统分析 VC里嵌汇编,获取寄存器的值 [转] 使用dbghelp获取调用堆栈--release下的调试方法学 [转] 探索Win32系统之窗口类(Window Classes in Win32) [转] 编译器开关参数集 [转] Nano-X的详细介绍 [转] 为MicroWindows添加透明绘图函数 [转] microwindows位图解析 [转] Microwindows及其中文化方法 [转] Nano-X显示系统的代码分析 [转] Nano-X图形引擎分析及其优化 [转] 使用 pq magic 分区出现 Error 983 报错信息的处理办法 [原创] MicroWindows学习笔记之底层消息的读取 [原创] MicroWindows学习笔记之对底层设备的管理 [转载] Makefile详解
[转] IncrediBuild 试用时间推迟的算法
高原 · 2010-05-04 · via 博客园 - 高原

转自http://www.cppblog.com/free2000fly/archive/2009/08/11/92966.html

    不同版本保存过期时间的注册表键的位置是不同的:
    2.40: HKCR\Interface\{E9B0227F-437C-4F7A-86D9-2676B83F359F}\ProxyStubClsid32 = {M1-M2-M3-T1-T2}

    3.10: HKLM\SOFTWARE\Classes\Interface\{156CCB3A-83E7-4BC1-B340-AF37F5C8BB0B}\ProxyStubClsid32 = {M1-M2-M3-T1-T2}
    3.20: HKCR\Interface\{B7348B5D-B65D-4BF5-AF63-A3135249ACA7}\ProxyStubClsid32 = {M1-M2-M3-T1-T2}
    3.31: HKCR\Interface\{6F8793A7-3226-4B51-98C1-476A0D1A7AFC}\ProxyStubClsid32
    3.40: HKCR\Interface\{48C6296A-4F4C-4238-A9E1-60E9A544A863}\ProxyStubClsid32 
  
    假设此时 Date 的值是 39598.999988425923 (0x37BA E7FFDF55E340)
    
    T1 = 37BA
    T2 = E7FFDF55E340
    M1 = 37 * BA * E7 * FF = 23EAEB06
    M2 = DF * 55 = 4A0B
    M3 = E3 * 40 = 38C0
    
    这样我们就可以把注册表中上述键值改为:{23EAEB06-4A0B-38C0-37BA-E7FFDF55E340}
//*/

EXTERN_C void GetIncrediBuildLicKey(DATE date, LPTSTR lpszKey, UINT cchMax)
{
    BYTE * pByte = (BYTE *)&date;

    BYTE * T1 = (BYTE *) (pByte);
    BYTE * T2 = (BYTE *) (pByte + 2);
    
    DWORD dwM1 = (DWORD) *pByte;
    dwM1 *= (DWORD) *(pByte + 1);
    dwM1 *= (DWORD) *(pByte + 2);
    dwM1 *= (DWORD) *(pByte + 3);
    
    WORD wM2 = (WORD) *(pByte + 4);
    wM2 *= (WORD) *(pByte + 5);
    
    WORD wM3 = (WORD) *(pByte + 6);
    wM3 *= (WORD) *(pByte + 7);
    
    TCHAR szOut[MAX_PATH] = { 0 };
    
    wsprintf(szOut, _T("{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}"), 
        dwM1,
        wM2,
        wM3,
        *T1, *(T1+1),
        *T2, *(T2+1), *(T2+2), *(T2+3), *(T2+4), *(T2+5)
        );
    lstrcpyn(lpszKey, szOut, cchMax);
}

以上代码调用方法:
void CCrackibDlg::OnButton1()
{
    COleDateTime destTime = COleDateTime::GetCurrentTime();
   
    COleDateTime dateTime(destTime.GetYear(), destTime.GetMonth()+1, destTime.GetDay()-1, 23, 59, 59);
    DATE Date = (DATE)dateTime;

    TCHAR szOut[MAX_PATH] = { 0 };
    GetIncrediBuildLicKey((DATE)Date, szOut, MAX_PATH);

    SetDlgItemText(IDC_EDIT1, szOut);
}