精装友好联络会

注册算法分析:

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. 为什么 qt 成为 c++ 界面编程的第一选择?

    为什么qt成为c++界面编程的第一选择 一.前言 为什么现在QT越来越成为界面编程的第一选择,笔者从事qt界面编程已经有接近8年,在这之前我做C++界面都是基于MFC,也做过5年左右.当时为什么会从M ...

  2. 安装innotop

    安装方法一: 下载地址:https://github.com/innotop/innotop yum install -y perl-TermReadKey yum install -y perl-D ...

  3. 【转】C++11 并发指南五(std::condition_variable 详解)

    http://www.cnblogs.com/haippy/p/3252041.html 前面三讲<C++11 并发指南二(std::thread 详解)>,<C++11 并发指南三 ...

  4. js调用百度地图api

    <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">   ...

  5. python 单向循环列表

    # -*- coding: utf-8 -*- # @author: Tele # @Time : 2019/04/23 下午 6:54 # 单向循环列表 # 单向循环列表与单向列表的不同之处在于最后 ...

  6. Spring MVC出现POST 400 Bad Request &405 Request method 'GET' not supported

    首先描述一下出现错误的情景: 我刚学springmvc,想做一个登录界面的东西.然后试着写了一个controller如下: @RequestMapping(value = "/login&q ...

  7. leetcode先刷_Valid Sudoku

    我没有看到这个问题,这使其在现货需求数独,害怕一直没敢做.后来我发现原来的标题就是这么简单.推断现在只有数字全不符合的就可以了棋盘上的形势的要求. 是不是正确的三个周期..人是不能满意地看到每一行.每 ...

  8. hudson添加批处理编译命令的注意事项

    作者:朱金灿 来源:http://blog.csdn.net/clever101 Hudson可以在Build Step里添加自定义的批处理命令,如下图: 需要注意的是这些批处理命令并不能识别huds ...

  9. Struts2——(2)配置文件、通配符

    一.Struts配置文件 (1)struts-default.xml(框架自带) 定义了一些框架自带的Result组件,拦截器组件. <package name="struts-def ...

  10. Arcgis api for javascript学习笔记(3.2X版本)-Map图层叠加以及基本操作

    1. 不设置默认底图,第一个图层作为底图,然后叠加另外一个图层 先添加图层1,第一个图层1作为默认底图,然后在图层1上叠加图层2,并设置图层2的透明度为50%. <!DOCTYPE html&g ...