[作者]
网名: 猪头三
站点: http://www.x86asm.com
Email: pliceman_110@163.com
QQ: 643439947
编程生涯: 2001~至今[12年]
职业生涯: 10年
开发语言: C/C++; x86asm; Object Pascal; C#;
开发工具: VC++; Delphi;
研发领域: Windows应用软件安全; Windows系统内核安全; Windows系统磁盘数据安全;
技能种类: 逆向 驱动 磁盘 文件
[序言]
脱离玩破解已经好几年了, 由于前段时间在休息, 闲来玩玩, 随便找了一款国外软件1-click pc tuneup软件下手. 本人玩破解的原则是: 随便玩玩, 不跟经济利益挂钩, 选择无壳软件. 破解的目的是复习和巩固逆向思维, 而不是耗费时间和生命去研究各种刁蛮的加壳, 用自动脱壳工具就Ok了.
[本文介绍]
本文章一共分为10部分, 完全图文并茂, 分享在破解过程中的思维想法, 阅读本文需要一定的汇编语言, C/C++语言, 程序运行原理, 有开发软件实际经验, 熟悉Windows操作系统理论, 有基本的算法理论基础, 技术难度中等偏上.
1> 初步了解破解环境的部署
2> 初步了解1-click pc tuneup软件的主程序基本特征
3> 利用ollydbg定位你的处理注册号的函数
4> 多次陷入困境
5> 通过Qt类库的QString类相关函数找到处理注册号的函数
6> 开始分析处理注册号的函数
7> 不要满足直接获取注册号码
8> 分析注册号的输入规则 
9> 分析注册号码的生成算法
10> 为1-click pc tuneup软件写注册机
[请做好基础知识储备]
上面已经提到需要相关的基础知识, 如果您在阅读文章之前基础不扎实, 有可能你不会明白文章所要表达的含义. 破解领域太广太深, 接触和学习破解之前, 最好都需要会编程, 这是必须要具备的技能. 关于如何学习和提高编程, 我的网站http://www.x86asm.com或者QQ空间已有详细说明.
[阅读顺序]
本篇文章为: “1-click pc tuneup破解实录-[附加篇]编写注册机”, 您需要按照顺序来进行阅读: "1-click pc tuneup破解实录-[上]"、"1-click pc tuneup破解实录-[中]“、“1-click pc tuneup破解实录-[下]”
>>>>>>>>>>>>>>> 第十部分: 为1-click pc tuneup软件写注册机 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
1. 在 >>>  第九部分: 分析注册号码的生成算法 <<< 我们已经总结出注册号的生成算法原理, 那么可以根据这个原理来写出一个针对1-click pc tuneup软件的注册机. 这里我首选使用Delphi开发工具来编写注册机, 因为Delphi的开发效率高, 而且生成的程序小. 下面就贴出注册机核心算法函数: fun_Key_Create() 和 fun_Kye_OneGroup(). 那么我们在使用算法生产的时候, 只需要调用fun_Key_Create()函数就可以了.

// 注册号规则处理
function fun_Kye_OneGroup(str_param_Key_OneGroup : string;
                          int_param_Key_OneGroupIndex : Integer):string ;
var
dword_key : DWORD ;
dword_key_Result : array[1..3] of DWORD;
int_Index : Integer ;
str_Key_OneGroup : string ;
begin
Result := '' ;
// 参数校验
if (Length(str_param_Key_OneGroup) <> 3) or
     ((int_param_Key_OneGroupIndex <= 0) or
      (int_param_Key_OneGroupIndex > 5) ) then
begin
Exit ;
end;
// 转换为大写
str_Key_OneGroup := UpperCase(str_param_Key_OneGroup) ;
// 转换为btye数组
for int_Index := 1 to Length(str_Key_OneGroup) do
begin
if Ord(str_Key_OneGroup[int_Index]) > $46 then
begin
      dword_key_Result[int_Index] := 0 ;
end
else if Ord(str_Key_OneGroup[int_Index]) >= $41 then
begin
       dword_key_Result[int_Index] := DWORD(Ord(str_Key_OneGroup[int_Index])) -
                                                   $37 ;
end
else if Ord(str_Key_OneGroup[int_Index]) >= $30  then
begin
      dword_key_Result[int_Index] := DWORD(Ord(str_Key_OneGroup[int_Index])) -
                                                   $30 ;
end;
end;
// 计算因子
dword_key := dword_key_Result[3] + dword_key_Result[2] + dword_key_Result[1] +
               int_param_Key_OneGroupIndex ;
// 通过 因子 计算另一个 序列号字符
dword_key := dword_key and $8000000F ;
if dword_key < 0 then
begin
dword_key := dword_key - 1 ;
dword_key := dword_key or $FFFFFFF0 ;
dword_key := dword_key + 1 ;
end;
Result := IntToHex(Ord(dword_key), 1) +  str_Key_OneGroup ;
end;// End fun_Kye_OneGroup()
// 注册号生成
function fun_Key_Create():string;
const
// 注册号特征头
str_Key_Head : array[0..6] of string = ('8A77', '6DFD', '82DA', 'B4DE', '75E2', '84E4', 'E985') ;
var
str_Key_Base : string ;
begin
// 注册号字符规则
str_Key_Base := '0123456789ABCDEF' ;
Result := str_Key_Head[RandomRange(0, 6)]+
            fun_Kye_OneGroup(str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)], 1)+
            fun_Kye_OneGroup(str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)], 2)+
            fun_Kye_OneGroup(str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)], 3)+
            fun_Kye_OneGroup(str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)], 4)+
            fun_Kye_OneGroup(str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)]+
                             str_Key_Base[RandomRange(1, 16)], 5) ;
end;// End fun_Key_Create()

结尾: 经过这次的1-click pc tuneup软件的破解, 又让我感觉回到年轻的时候, 是那么的激动. 这种感觉只有真正破解过软件的人才能体会到. 此软件破解分析周期3天, 剩下的时间都是来写这篇破解文章. 希望大家喜欢! 

1-Click PC Tuneup软件-破解实录-[附加篇]编写注册机相关推荐

  1. 1-Click PC Tuneup软件-破解实录-[下]

    [作者] 网名: 猪头三 站点: http://www.x86asm.com Email: pliceman_110@163.com QQ: 643439947 编程生涯: 2001-至今[12年] ...

  2. 1-Click PC Tuneup软件-破解实录-[中]

    [作者] 网名: 猪头三 站点: http://www.x86asm.com Email: pliceman_110@163.com QQ: 643439947 编程生涯: 2001-至今[12年] ...

  3. 1-Click PC Tuneup软件-破解实录-[上]

    [作者] 网名: 猪头三 站点: http://www.x86asm.com Email: pliceman_110@163.com QQ: 643439947 编程生涯: 2001-至今[12年] ...

  4. 软件破解(1)-Java篇

    初识 最经同学发给我一个java的软件,让我帮忙破解一下.经过学习+查找,终于成功破解.(Java编写的软件破解应该是相当简单的,可以反编译源代码,加壳什么都没有,只有代码混淆),这个软件作者没要代码 ...

  5. 【转】破解Source Insight 3.5.0072过程 附:安装软件+注册机

    转载地址:http://blog.csdn.net/qs_hud/article/details/8884867 注册机及软件下载地址:http://download.csdn.net/detail/ ...

  6. 较量 软件破解方法大揭密(图)

    作为一名程序员,由于我所编写的几款小软件经常被人破解,所以就对常见的软件破解方式比较关注.在这篇文章中,我把各种软件破解方式一网打尽,如算法注册机.内存破解法.补丁破解法和文件注册法等,以便大家&qu ...

  7. 学会软件破解,让注册机制形同虚设

    一.    修改注册表文件,清除软件使用次数限制. 打开软件,首先跳出来一个注册的框,其中用户名可以随便填写.左下角红色的字显示还可以试用的次数.点击试用以后,可以进入软件.但是试用总共有100次.我 ...

  8. 软件破解入门(暴力破解CrackMe)

    所谓暴力破解,就是通过修改汇编代码进而控制程序的运行流程,达到不需注册码也能正常使用软件的目的.相对于解出算法进而编写注册机,暴破的技术含量是比较低的.但也正是因为一本05年的杂志上介绍"暴 ...

  9. 【分享】 [教学]破解完全入门篇

    [分享] [教学]破解完全入门篇 3PtVw f   q85y)_c?   #r."#)pD   第一章--前言 /.$hZ$ q   好多哥们儿说看教程跟老大的书都看不太明白,所以,我尽量 ...

最新文章

  1. Python基础04-数据类型:数字、布尔、字符串
  2. Python入门100题 | 第064题
  3. 如何消除网站安全的七大风险
  4. Hadoop的SequenceFile读写实例
  5. 写出C语言中5种数据类型的名称及其关键字,求C语言中的32个关键字及其意思?...
  6. 快速读取内存文件-内存映射文件的方法
  7. 强大的代码编辑工具:Nova for mac v7.3中文版
  8. Nacos集群(二)阿里自研弱一致性Distro协议核心实现
  9. ​十大骨传导耳机品牌,骨传导耳机推荐跑步用
  10. c语言以顺序结构存储的二叉树的非递归遍历,一种二叉树非递归遍历算法的C语言实现...
  11. 【历史上的今天】9 月 26 日:硅晶体管先驱出生;黑客盗取雅虎用户信息;“生物圈 2 号”实验室
  12. 面试最后问你期望薪酬_我不能问你的薪水历史吗? 谢谢!
  13. win10远程计算机证书错误,设置win10系统ie证书错误的详细办法
  14. android app卸载以后弹出用户反馈界面
  15. Linux~linux无法解析域名
  16. centos7-docker部署私有镜像仓库(docker-registry)
  17. Excel数字转大写数字(含小数点)
  18. 用java实现网络爬虫,实时获取中国地震台网数据
  19. MATLAB逻辑回归实例及代码
  20. 金融互联网之网络征信技术接口

热门文章

  1. 高级人像调色效果Lr预设
  2. matlab fsolve 参数,关于 fsolve 函数的使用
  3. 13个人中找出叛徒的问题(耶稣问题)经典做法
  4. 思岚中小型机器人底盘Apollo怎么样?
  5. 2022年1月17号~19号
  6. Origin学生版的获取方法和安装方法
  7. E+H浊度仪维修CUE22-A1A浊度分析仪维修概述
  8. Rexxar 是一个针对移动端的混合开发框架。
  9. hdu 5381 2015多校第八场 莫队算法
  10. 股票助手-您的理财好帮手