精装友好联络会

注册算法分析:

1.  许可证由三部分组成。

2. 的登记号的第一部分是顺序编号0x6d模

3. 登记代码的第二部分:

  • 先将订单号与0XB25F1异或,将异或后的结果转换成十进制字符串后,在些字符串后面连接上两个字符。
    而这两个字符分别由字符串的第0位。第1位和第2位,第3位计算而来。记为szTemp.算法例如以下
	DWORD dwTemp2 = dwNum ^ 0xB25F1;
TCHAR szTemp[20] = {0};
_sntprintf(szTemp, 20, "%d", dwTemp2);
DWORD dwKey2Len = strlen(szTemp);
TCHAR szTemp1[20] = {0};
TCHAR szTemp2[20] = {0};
_snprintf(szTemp1, 20, "%c", (szTemp[0] + szTemp[1]) % 5 + 0x34);
_snprintf(szTemp2, 20, "%c", (szTemp[2] + szTemp[3]) % 5 + 0x33);
strcat(szTemp, szTemp1);
strcat(szTemp, szTemp2);
  • 将上面的结果szTemp转换成十进制数字后,与0xDDFB7687进行异或。作为此步结果的一部分。然后依据异或后的结果算出4个不同的字符。然后将这四个字符插入到异或后的字符串中。结果记为szKey2.算法代码例如以下。
	DWORD dwTemp3 = 0;
dwTemp3 = atoi(szTemp);
TCHAR szKey2[20] = {0};
_snprintf(szKey2, 20, "%u", dwTemp3 ^ 0xDDFB7687);
TCHAR sz1[2] = {0};
TCHAR sz2[2] = {0};
TCHAR sz3[2] = {0};
TCHAR sz4[2] = {0};
_snprintf(sz1, 2, "%c", (szKey2[0] + szKey2[1]) % 5 + 0x66);
_snprintf(sz2, 2, "%c", (szKey2[2] + szKey2[3]) % 5 + 0x75);
_snprintf(sz3, 2, "%c", (szKey2[4] + szKey2[5]) % 5 + 0x7a);
_snprintf(sz4, 2, "%c", (szKey2[6] + szKey2[7] + szKey2[8]) % 5 + 0x69);
strinsert(szKey2, sz1[0], 7);
strinsert(szKey2, sz4[0], 3);
strinsert(szKey2, sz2[0], 5);
strinsert(szKey2, sz3[0], 9);

4.  //生成注冊码。注冊码= 注冊码第一部分 + 注冊码第二部分 + “!”

	TCHAR szResult[30] = {0};
memcpy(szResult, szKey1, strlen(szKey1));
strcat(szResult, szKey2);
strcat(szResult, _T("!"));

逆向过程 :逆向的过程中使用的定单号是123456

注冊机代码与分析过程与udd文件下载地址:http://download.csdn.net/detail/xiaocaiju/7522099

版权声明:本文博客原创文章,博客,未经同意,不得转载。

精装友好联络算法实现借壳和RI的更多相关文章

  1. 图论基础之Dijkstra算法的初探

         图论,顾名思义就是有图有论.        图:由点"Vertex"和边"Edge "组成,且图分为有向图和无向图(本文讨论有向图),之前做毕业设计的 ...

  2. LARS 最小角回归算法简介

    最近开始看Elements of Statistical Learning, 今天的内容是线性模型(第三章..这本书东西非常多,不知道何年何月才能读完了),主要是在看变量选择.感觉变量选择这一块领域非 ...

  3. [Oracle] 关系型数据库排序算法和数据结构以及关联查询

    关系型数据库排序算法和数据结构以及关联查询 1. Merge sort 理解merge sort算法将有助于更好地理解数据库join操作 - merge join 算法逻辑 将2个有序的大小为N/2的 ...

  4. JAVA程序员成长历程(一)

    程序员的20个常见瓶颈 在扩展性的艺术一书中,Russell给出了20个有意思的估计:大约有20个经典瓶颈. Russell说,如果在他年轻时他就知道这些瓶颈该有多好!这些论断包括: * Databa ...

  5. 诗人般的机器学习,ML工作原理大揭秘

    诗人般的机器学习,ML工作原理大揭秘 https://mp.weixin.qq.com/s/7N96aPAM_M6t0rV0yMLKbg 选自arXiv 作者:Cassie Kozyrkov 机器之心 ...

  6. Project Tungsten:让Spark将硬件性能压榨到极限(转载)

    在之前的博文中,我们回顾和总结了2014年Spark在性能提升上所做的努力.本篇博文中,我们将为你介绍性能提升的下一阶段——Tungsten.在2014年,我们目睹了Spark缔造大规模排序的新世界纪 ...

  7. Spark内存管理之钨丝计划

    Spark内存管理之钨丝计划 1. 钨丝计划的产生的原因 2. 钨丝计划内幕详解  一:“钨丝计划”产生的本质原因 1, Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追 ...

  8. 列举一些常见的系统系能瓶颈 Common Bottlenecks

    http://www.nowamagic.net/librarys/veda/detail/2408在 Zen And The Art Of Scaling - A Koan And Epigram ...

  9. 自动驾驶轻松开发?华为云ModelArts赋能智慧出行

    作为战略新兴产业,人工智能已经开始广泛应用于多个领域.近几年,科技公司.互联网公司等各领域的企业纷纷布局自动驾驶.那么,自动驾驶技术究竟发展得如何了?日前,华为云携手上海交通大学创新中心举办的华为云人 ...

随机推荐

  1. 【u124】环状最大两段子段和

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 给出一段环状序列,即认为A[1]和A[N]是相邻的,选出其中连续不重叠且非空的两段使得这两段和最大. ...

  2. 日期和时间的格式化定义(ISO C89)

    格式化定义本质上控制的是占位. 日期 %Y:4位数的年份: %y:2位数的年份: %m:2位数的月份(1-12) %d:2位数的日(01-31) 时间 %H:24小时制(0-23) %I:12小时制( ...

  3. PHP+Aax实现异步验证

    利用Ajax技术来检测用户名是否存在的原理流程图: 最终结果截图: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...

  4. [转载]Ocelot简易教程(四)之请求聚合以及服务发现

    上篇文章给大家讲解了Ocelot的一些特性并对路由进行了详细的介绍,今天呢就大家一起来学习下Ocelot的请求聚合以及服务发现功能.希望能对大家有所帮助. 作者:依乐祝 原文地址:https://ww ...

  5. css样式继承规则详解

    css样式继承规则详解 一.总结 一句话总结:继承而发生样式冲突时,最近祖先获胜(最近原则). 1.继承中哪些样式不会被继承? 多数边框类属性,比如象Padding(补白),Margin(边界),背景 ...

  6. 【u019】排序(sort)

    [问题描述] 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列A,B,C,D 表示A<B,B<C,C<D.在这道题中,我们将给你一系列形如A< ...

  7. 基于 Android NDK 的学习之旅-----数据传输(引用数据类型)

    接着上篇文章继续讲.主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输. 1.主要流程 1.  String 字符串传输 a)         上层定义一个native的方法,需要一个 ...

  8. 【hdu 1517】A Multiplication Game

    Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...

  9. 控制器管理UINavigationController、UINavigationBar

    控制器管理 掌握 控制器以及view的多种创建方式 UINavigationController的简单使用:添加\移除子控制器 UINavigationBar内容的设置 控制器的生命周期方法 Segu ...

  10. Oracle数据库分页查询的几种实现方法

    没有Sql Server有top那么好用,但是Oracle含有隐藏的rownum列可以灵活使用,使实现分页效果,pageSize默认10行 方法一: select * from test where ...