010破解(四)之注册机

010破解(二)之算法分析一
010破解(三)之算法分析二

概述

算法总算分析完成了,接下来准备就编写注册机了,根据我们输入的用户名,计算出序列号

思路分析

方法一:暴力枚举,这种方式太费时间,能用技术解决的事不可能用这种方法的
方法二:

  • 根据输入用户名计算加密值
  • 加密值与密码对应关系可以得到 k4 k5 k6 k7,假设Ret是函数返回的加密值
    K[4]=Ret&0xFF
    k[5]=(Ret>>8)&0xFF
    k[6]=(Ret>>0x10)%0xFF
    k[7]=(Ret>>0x18)&0xFF
  • 根据分析得到的序列号相关计算函数,结合已知条件,枚举剩余的值

注册机

关键代码,两种算法计算方式,有几个关键的序列号计算CALL是直接从IDA拷贝出来的


VOID CalPassword::CrackKey1(CHAR* pUserName,CString& Password,DWORD arg)
{srand(time(NULL));BYTE Key[10] = { 0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA };BYTE k0 = 0;BYTE k1 = 0;BYTE k2 = 0;BYTE k3 = 0;BYTE k4 = 0;BYTE k5 = 0;BYTE k6 = 0;BYTE k7 = 0;BYTE k8 = 0;BYTE k9 = 0;//Key[3] = 0x9C 0xAC 0xFC//0x9C是8位序列号Key[3] = 0x9C;//计算用户名加密值与k4 k5 k6 k7有对应关系//k4 k5 k6 k7 逆用户名加密值//说明K[4]=Ret&0xFF//说明k[5]=(Ret>>8)&0xFF//说明k[6]=(Ret>>0x10)%0xFF//说明k[7]=(Ret>>0x18)&0xFFDWORD dwRetValue = rand() % 0x3e8 + 1;     //指定商的范围 0-0x3e8DWORD dwValue = sub_EncodeName(pUserName, 1, 0, dwRetValue);Key[4] = dwValue & 0xFF;Key[5] = (dwValue >> 8) & 0xFF;Key[6] = (dwValue >> 16) & 0xFF;Key[7] = (dwValue >> 24) & 0xFF;//计算k0和k6while (TRUE){k0 = rand() % 0xFF;BYTE AL = ((k0 ^ Key[6] ^ 0x18) + 0x3D) ^ 0xA7;if (AL >= arg){Key[0] = k0;//Key[6] = k6;break;}}while (TRUE){k1 = rand() % 0xFF;k2 = rand() % 0xFF;//esi=((K[2]^k[5]&0xFF)+(K[1]^k[7]&0xFF)*0x100)&0xFFFF//EAX=((esi^0x7892+0x4D30)^0x3421&0xFFFF)/0xB//判断余数是否为0,为0返回商,不为0返回0//商<=0x3e8DWORD dwTemp1 = (k2 ^ Key[5]) & 0xFF;DWORD dwTemp2 = ((k1 ^ Key[7]) & 0xFF) * 0x100;DWORD dwESI = (dwTemp1 + dwTemp2) & 0xFFFF;DWORD dwEAX = ((((dwESI ^ 0x7892) + 0x4D30) ^ 0x3421) & 0xFFFF);if (dwEAX % 0xB == 0 && dwEAX/0xB == dwRetValue){Key[1] = k1;Key[2] = k2;break;}}Password.Format(L"%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X", Key[0], Key[1],Key[2], Key[3], Key[4], Key[5], Key[6], Key[7], Key[8], Key[9]);
}VOID CalPassword::CrackKey2(CHAR* pUserName, CString& Password, DWORD arg)
{srand(time(NULL));BYTE Key[10] = { 0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xAA };BYTE k0 = 0;BYTE k1 = 0;BYTE k2 = 0;BYTE k3 = 0;BYTE k4 = 0;BYTE k5 = 0;BYTE k6 = 0;BYTE k7 = 0;BYTE k8 = 0;BYTE k9 = 0;//Key[3] = 0x9C 0xAC 0xFC//0xAC是10位序列号   Key[3] = 0xAC;//计算用户名加密值与k4 k5 k6 k7有对应关系//k4 k5 k6 k7 逆用户名加密值//说明K[4]=Ret&0xFF//说明k[5]=(Ret>>8)&0xFF//说明k[6]=(Ret>>0x10)%0xFF//说明k[7]=(Ret>>0x18)&0xFFDWORD dwRetValue = rand() % 0x3e8 + 1;     //指定商的范围 0-0x3e8DWORD dwValue = sub_EncodeName(pUserName, 0xFF, 0, 1);Key[4] = dwValue & 0xFF;Key[5] = (dwValue >> 8) & 0xFF;Key[6] = (dwValue >> 16) & 0xFF;Key[7] = (dwValue >> 24) & 0xFF;while (TRUE){k1 = rand() % 0xFF;k2 = rand() % 0xFF;//esi=((K[2]^k[5]&0xFF)+(K[1]^k[7]&0xFF)*0x100)&0xFFFF//EAX=((esi^0x7892+0x4D30)^0x3421&0xFFFF)/0xB//判断余数是否为0,为0返回商,不为0返回0//商<=0x3e8DWORD dwTemp1 = (k2 ^ Key[5]) & 0xFF;DWORD dwTemp2 = ((k1 ^ Key[7]) & 0xFF) * 0x100;DWORD dwESI = (dwTemp1 + dwTemp2) & 0xFFFF;DWORD dwEAX = ((((dwESI ^ 0x7892) + 0x4D30) ^ 0x3421) & 0xFFFF);if (dwEAX % 0xB == 0 && dwEAX / 0xB == dwRetValue){Key[1] = k1;Key[2] = k2;break;}}while (TRUE){k9 = rand() % 0xFF;k0 = rand() % 0xFF;DWORD dwTemp1 = k9 ^ Key[5];DWORD dwTemp2 = Key[4] ^ Key[5];DWORD dwTemp3 = k0 ^ Key[6];DWORD dwarg1 = (((dwTemp1 << 8 )+ dwTemp2) << 8) + dwTemp3;DWORD dwRet = Algorithm2(dwarg1, 0x005B8C27);if (dwRet != 0 && dwRet <= arg){Key[9] = k9;Key[0] = k0;break;}}  Password.Format(L"%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X", Key[0], Key[1],Key[2], Key[3], Key[4], Key[5], Key[6], Key[7], Key[8], Key[9]);
}

成品演示


010破解(四)之注册机相关推荐

  1. IDM All Products全系列破解UltraEditUltraCompareUEStudioUltraFTPUltraFinder全部最新版产品破解补丁及注册机补丁破解

     IDM All Products全系列破解UltraEditUltraCompareUEStudioUltraFTPUltraFinder全部最新版产品破解补丁及注册机补丁破解 IDM All ...

  2. myeclipse10 用破解补丁或注册机不能成功破解原因解析

    造成破解或注册不成功原因有三种: 第一:生产出来的systemid和exe破解出来的那个对应不上,这个问题我也研究了,没有问题,因为myeclipse里面只要找到能对上一组的数据,systemid就算 ...

  3. 浩辰CAD机械2011ACAD版破解(含注册机)下载!

    浩辰CAD机械2011ACAD版破解(含注册机) 浩辰CAD机械2011(兼容 ACAD)可以同时应用于浩辰CAD平台与ACAD平台下. 让您不必再因为平台的束缚无法使用浩辰CAD机械软件.浩辰CAD ...

  4. 新手破解教程:WinAudioRecorder破解(带注册机)

    (不要问我为什么不在52写文章,不要问我!) 文章最后附带本次教程的WinAudioRecorder软件官方版及注册机,供大家学习交流使用 0x00.破解信息 [软件名称]:WinAudio Reco ...

  5. MusicLab RealLPC for Mac(虚拟吉他乐器)永久破解教程附注册机

    MusicLab RealLPC for Mac是一款适用于Mac操作系统的虚拟吉他乐器,采用创新的吉他声音建模方法和吉他部分在键盘上演奏.reallpc mac版可以可以用作独立版本,也可以用作支持 ...

  6. SecureCRT and SecureFX 8.5 安装破解版(附注册机+破解教程) 64位

    securecrt8破解版是一款终端仿真程序,该程序可以让你在windows系统中登陆UNIX或Linux的服务器主机并实现管理设置,十分的强大.在最新的8.3版本中,软件已经可以支持包括SSH2.S ...

  7. SecureCRT and SecureFX 8.0 安装破解版(附注册机+破解教程) 64位

    文章转载链接:https://www.jb51.net/softs/571793.html SecureCRT下载地址在原文处有下载 securecrt8.0破解版是一款终端仿真程序,该程序可以让你在 ...

  8. CodeSmith Professional 5.0破解下载地址 注册机 keygen

    CodeSmith Professional 5.0发布已经有一段时间了,或许你和我一样在寻找最新版的注册机和注册码,最近我在网上找到一个,贴出来供大家分享..CSDN中有个下载的,其实是个老版本的, ...

  9. Axure RP v8.1.0.3377 Enterprise 中文破解版(附注册机+汉化包+安装教程)

    1.双击"AxureRP-Setup.exe 安装,初次运行不要打开运行. 2.双击"keygen.exe"注册码,在"Licensee"选项中,输入 ...

最新文章

  1. [C++] NULL VS nullptr
  2. [Git] git log命令
  3. 京东开源人脸识别工具包:覆盖最强模型,支持训练跑分
  4. python中start用法_Start Python 学习笔记(琐碎知识,持续更新。。。)
  5. 如何扩展分布式日志组件(Exceptionless)的日志通知?
  6. Java-数组 三种初始化及内存分析
  7. .htaccess 重定向_如何使用.htaccess将HTTP重定向到HTTPS
  8. 三星宣布华大九天成为其晶圆代工生态系统SAFE EDA合作伙伴
  9. C#制作、打包、签名、发布Activex全过程【转】
  10. c 程序设计语言第一次作业,重大2017年C++程序设计语言第一次作业(含答案).doc...
  11. 游戏上云?-游戏设计与开发(2)
  12. WEB渗透测试思维导图
  13. 也谈VC中ModifyStyleModifyStyleEx无法改变控件的Style)
  14. 抖音测试距离的软件,抖音同款距离测量仪
  15. 计算机专业报瑞士酒店管理,我适合去瑞士读酒店管理吗?
  16. 树莓派 11 bullseye镜像官方源和国内源
  17. [附源码]java+ssm计算机毕业设计个人所得税服务系统0dol2(源码+程序+数据库+部署)
  18. rk平台vr主板项目开发总结
  19. java远程连接linux并发送命令,两种方案比较Jsch与ganymed-ssh2
  20. (管用)电脑突然没声了

热门文章

  1. SSL/TLS 漏洞“受戒礼”,RC4算法关闭
  2. 【一文看懂】深度神经网络加速和压缩新进展年度报告
  3. 软件项目实施步骤图解
  4. c#中ref和out的区别
  5. 马来亚大学 计算机科学 排名,【马来亚大学计算机科学】 - 马来西亚留学联盟...
  6. jetty架构及工作原理
  7. win7 pe 修改服务器地址,pe下修改win7服务器地址
  8. svg中path贝塞尔曲线和圆弧图文详解
  9. 【转】用Python的Pandas和Matplotlib绘制股票唐奇安通道,布林带通道和鳄鱼组线
  10. YYCMS内核 首发全自动采集影视网站源码 整合资源采集网+解析接口