CN103116489A - 注册码获取装置和注册码获取方法 - Google Patents
注册码获取装置和注册码获取方法 Download PDFInfo
- Publication number
- CN103116489A CN103116489A CN2012104599959A CN201210459995A CN103116489A CN 103116489 A CN103116489 A CN 103116489A CN 2012104599959 A CN2012104599959 A CN 2012104599959A CN 201210459995 A CN201210459995 A CN 201210459995A CN 103116489 A CN103116489 A CN 103116489A
- Authority
- CN
- China
- Prior art keywords
- code
- registration
- software
- address
- registration code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种注册码获取装置,包括:解析单元,去除软件的保护代码,解析出所述软件的源代码;获取单元,根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。本发明还提供了一种注册码获取方法。根据本发明的技术方案可成功获取软件的注册码,保证软件功能的正常使用。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及注册码获取装置和注册码获取方法。
背景技术
目前一般采用注册码来对软件进行保护,如果没有注册码,就不能使用软件的功能,一旦丢失注册码,将给软件的使用带来不便,或者如果注册码输入错误,也将不能使用软件,而注册码一般都不易记忆,因此,容易出现注册码丢失或记录错误造成的使用障碍。
因此需要一种用于注册码获取技术,可方便获取软件的注册码。
发明内容
考虑到上述背景技术,本发明所要解决的技术问题在于,一种用于注册码获取技术,可方便获取软件的注册码。
有鉴于此,根据本发明的一个方面,提供了一种注册码获取装置,包括:解析单元,去除软件的保护代码,解析出所述软件的源代码;获取单元,根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。
保护代码即软件的壳,是一段执行于原始程序前的代码,原始程序的代码在加壳过程中可能被压缩、加密等。当加壳即加保护代码的文件执行时,壳这一段代码先于原始程序运行。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等。在此,先去除软件的保护代码,以便于获取软件的源代码,进而获取注册的位置,以便顺利获取注册码,解决了没有注册码而无法使用软件的技术问题。
在上述技术方案中,优选的,还可以包括,检测单元,检测所述软件的保护代码的类型,以根据所述保护代码的类型去除所述保护代码。
不同类型的保护代码具有不同的去除方案,在此,因此首先需检测出软件的保护代码的类型,才能定位到相应的去除方案。
在上述技术方案中,优选的,所述获取单元包括:反馈信息获取子单元,在运行并注册所述软件时,获取注册反馈信息;转换子单元,采用反汇编方式将所述软件的二进制文件转换为所述源代码;地址获取子单元,在所述源代码中获取所述注册反馈信息的汇编地址,根据所述汇编地址确定所述注册码的地址。
在上述技术方案中,优选的,在所述源代码中没有获取到所述汇编地址时,所述解析单元解析所述源代码,在解析结果中获取与所述注册反馈信息对应的编号;所述注册码获取装置还包括反编译单元,对所述编号进行反编译处理,得到所述注册反馈信息的汇编地址,所述获取单元根据所述汇编地址获取所述注册码。解析过程实际上类似于汉化过程,在不能识别文字时,需对源代码进行汉化,当然,也可以转换为其他语言,从而获取注册反馈信息的汇编地址。
在上述技术方案中,优选的,所述获取单元将所述汇编地址设置为调试中断点,在执行所述软件时,获取生成的注册码。
根据本发明的另一方面,还提供了一种注册码获取方法,包括以下步骤:去除软件的保护代码,解析出所述软件的源代码;根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。
保护代码即软件的壳,是一段执行于原始程序前的代码,原始程序的代码在加壳过程中可能被压缩、加密等。当加壳即加保护代码的文件执行时,壳这一段代码先于原始程序运行。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等。在此,先去除软件的保护代码,以便于获取软件的源代码,进而获取注册的位置,以便顺利获取注册码,解决了没有注册码而无法使用软件的技术问题。
在上述技术方案中,优选的,在去除所述软件的保护代码之前还包括:检测所述软件的保护代码的类型,以根据所述保护代码的类型去除所述保护代码。不同类型的保护代码具有不同的去除方案,在此,因此首先需检测出软件的保护代码的类型,才能定位到相应的去除方案。
在上述技术方案中,优选的,解析出所述软件的原始代码的步骤包括:在运行并注册所述软件时,获取注册反馈信息;采用反汇编方式将所述软件的二进制文件转换为所述源代码;在所述源代码中获取所述注册反馈信息的汇编地址,根据所述汇编地址确定所述注册码的地址。解析过程实际上类似于汉化过程,在不能识别文字时,需对源代码进行汉化,当然,也可以转换为其他语言,从而获取注册反馈信息的汇编地址。
在上述技术方案中,优选的,在所述源代码中没有获取到所述汇编地址时,解析所述源代码,在解析结果中获取与所述注册反馈信息对应的编号;对所述编号进行反编译处理,得到所述注册反馈信息的汇编地址;根据所述汇编地址获取所述注册码。
在上述技术方案中,优选的,将所述汇编地址设置为调试中断点,在执行所述软件时,获取生成的注册码。
根据本发明的技术方案,在丢失软件的注册码或忘记注册码时,可准确快速地获取软件的注册码,方便用户正常使用软件的功能。
附图说明
图1示出了根据本发明的实施例的注册码获取装置的框图;
图2示出了根据本发明的实施例的注册码获取方法的流程图;
图3示出了根据本发明的实施例的注册码获取方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的注册码获取装置的框图。
如图1所示,根据本发明的实施例的注册码获取装置100,包括:解析单元102,去除软件的保护代码,解析出所述软件的源代码;获取单元104,根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。
保护代码即软件的壳,是一段执行于原始程序前的代码,原始程序的代码在加壳过程中可能被压缩、加密等。当加壳即加保护代码的文件执行时,壳这一段代码先于原始程序运行。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等。在此,先去除软件的保护代码,以便于获取软件的源代码,进而获取注册的位置,以便顺利获取注册码,解决了没有注册码而无法使用软件的技术问题。
在上述技术方案中,优选的,还可以包括:检测单元106,检测所述软件的保护代码的类型,以根据所述保护代码的类型去除所述保护代码。
不同类型的保护代码具有不同的去除方案,在此,因此首先需检测出软件的保护代码的类型,才能定位到相应的去除方案。
在上述技术方案中,优选的,所述获取单元104包括:反馈信息获取子单元1042,在运行并注册所述软件时,获取注册反馈信息;转换子单元1044,采用反汇编方式将所述软件的二进制文件转换为所述源代码;地址获取子单元1046,在所述源代码中获取所述注册反馈信息的汇编地址,根据所述汇编地址确定所述注册码的地址。
在上述技术方案中,优选的,在所述源代码中没有获取到所述汇编地址时,所述解析单元102解析所述源代码,在解析结果中获取与所述注册反馈信息对应的编号;所述注册码获取装置还包括反编译单元108,对所述编号进行反编译处理,得到所述注册反馈信息的汇编地址,所述获取单元根据所述汇编地址获取所述注册码。解析过程实际上类似于汉化过程,在不能识别文字时,需对源代码进行汉化,当然,也可以转换为其他语言,从而获取注册反馈信息的汇编地址。
在上述技术方案中,优选的,所述获取单元104将所述汇编地址设置为调试中断点,在执行所述软件时,获取生成的注册码。
图2示出了根据本发明的实施例的注册码获取方法的流程图。
如图2所示,根据本发明的实施例的注册码获取方法,包括以下步骤:步骤202,去除软件的保护代码,解析出所述软件的源代码;步骤204,根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。
保护代码即软件的壳,是一段执行于原始程序前的代码,原始程序的代码在加壳过程中可能被压缩、加密等。当加壳即加保护代码的文件执行时,壳这一段代码先于原始程序运行。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等。在此,先去除软件的保护代码,以便于获取软件的源代码,进而获取注册的位置,以便顺利获取注册码,解决了没有注册码而无法使用软件的技术问题。
在上述技术方案中,优选的,在去除所述软件的保护代码之前还包括:检测所述软件的保护代码的类型,以根据所述保护代码的类型去除所述保护代码。不同类型的保护代码具有不同的去除方案,在此,因此首先需检测出软件的保护代码的类型,才能定位到相应的去除方案。
在上述技术方案中,优选的,解析出所述软件的原始代码的步骤包括:在运行并注册所述软件时,获取注册反馈信息;采用反汇编方式将所述软件的二进制文件转换为所述源代码;在所述源代码中获取所述注册反馈信息的汇编地址,根据所述汇编地址确定所述注册码的地址。解析过程实际上类似于汉化过程,在不能识别文字时,需对源代码进行汉化,当然,也可以转换为其他语言,从而获取注册反馈信息的汇编地址。
在上述技术方案中,优选的,在所述源代码中没有获取到所述汇编地址时,解析所述源代码,在解析结果中获取与所述注册反馈信息对应的编号;对所述编号进行反编译处理,得到所述注册反馈信息的汇编地址;根据所述汇编地址获取所述注册码。
在上述技术方案中,优选的,将所述汇编地址设置为调试中断点,在执行所述软件时,获取生成的注册码。
下面以翻译软件为例来详细说明本发明的技术方案。
根据本法的注册码获取方法主要是通过反汇编程序而分析出软件的源代码,包括分析软件,分析软件的源代码,分析源代码的互操作性,根据编译器产生的代码来验证编译器的性能和正确性(软件注册)。获取注册码就是在执行程序时,通过调试设立中断点,把系统生成的正确注册码截下来,从而得到正确的注册码。
基本流程如下:检测壳→脱壳→尝试注册→反汇编→解析汉化→确定注册码位置→调试。
步骤302,检测壳(壳即软件的保护代码):可使用检测软件,例如PEID v0.92来检测壳,通过该软件获知了翻译软件这款软件的壳的类型。用检测软件对翻译软件进行扫描,找到壳的类型。
步骤304,脱壳:去除其中无关的干扰信息和保护限制,把软件的壳脱去,解除伪装,还原软件本来的面目。这个过程就叫做脱壳,可使用UPX SHELL v3.09UPX外壳程序成功进行脱壳。
步骤306,尝试注册:运行翻译软件,尝试注册,获取注册相关信息。通过尝试注册,发现一个关键的字符串“序列号输入错误”的提示信息。
步骤308,反汇编:将翻译软件可执行的二进制文件转为汇编代码,进而可以研究该程序。可使用W32Dasm无极版,反汇编翻译软件的程序文件,然后看看PE(Portable Execute)信息--字符串参考,在搜索栏中输入“序列号输入错误”。
步骤310,解析汉化:通过eXeScope这个软件来查看未能在w32dasm中正确显示的字符串信息。
1.没搜索到与“序列号输入错误”对应的汇编地址,原因不识别汉字,所以使用eXeScope v6.50软件更改字体,更改菜单,更改对话框的排列,重写可执行文件的资源,包括(EXE,DLL,OCX)等。该软件是方便强大的汉化工具,可以直接修改用VC++及DELPHI编制的程序的资源,包括菜单、对话框、字符串表等新版可以直接查看加壳文件的资源。
2.在eXeScope v6.50中打开翻译软件,选择资源—字符串找到关键字—序列号输入错误对应的编号。
3.例如找到如下字串符:
122,"序列号输入错误";
123,"恭喜您成为正式用户中的一员!";
124,注册成功;
125,失败。
步骤312,确定注册代码的位置:
再次返回到反汇编步骤,即回到软件w32dasm,查找编号122得到Possible Reference to String Resource ID=00122:"?e?"。
在查找中找Possible Reference to String Resource ID=00122对应的汇编语言。最终得到"序列号输入错误"对应的汇编地址406F01,将该地址作为调试断点的地址。
步骤314,调试:采用的测试软件是ollydbg测试程序。打开翻译软件;点击右键选择“前往”并输入406F01地址;设置断点;运行该测试程序;注册观察提示信息;F8单步跳过,观察提示信息,获取到注册码。
以上结合附图详细说明了根据本发明的技术方案,在丢失软件的注册码或忘记注册码时,可准确快速地获取软件的注册码,方便用户正常使用软件的功能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种注册码获取装置,其特征在于,包括:
解析单元,去除软件的保护代码,解析出所述软件的源代码;
获取单元,根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。
2.根据权利要求1所述的注册码获取装置,其特征在于,还包括:检测单元,检测所述软件的保护代码的类型,以根据所述保护代码的类型去除所述保护代码。
3.根据权利要求1或2所述的注册码获取装置,其特征在于,所述获取单元包括:
反馈信息获取子单元,在运行并注册所述软件时,获取注册反馈信息;
转换子单元,采用反汇编方式将所述软件的二进制文件转换为所述源代码;
地址获取子单元,在所述源代码中获取所述注册反馈信息的汇编地址,根据所述汇编地址确定所述注册码的地址。
4.根据权利要求3所述的注册码获取装置,其特征在于,在所述源代码中没有获取到所述汇编地址时,所述解析单元解析所述源代码,在解析结果中获取与所述注册反馈信息对应的编号;
所述注册码获取装置还包括:反编译单元,对所述编号进行反编译处理,得到所述注册反馈信息的汇编地址,所述获取单元根据所述汇编地址获取所述注册码。
5.根据权利要求4所述的注册码获取装置,其特征在于,所述获取单元将所述汇编地址设置为调试中断点,在执行所述软件时,获取生成的注册码。
6.一种注册码获取方法,其特征在于,包括以下步骤:
去除软件的保护代码,解析出所述软件的源代码;
根据所述软件的源代码获取所述注册码的位置,以获取所述注册码。
7.根据权利要求6所述的注册码获取方法,其特征在于,在去除所述软件的保护代码之前还包括:检测所述软件的保护代码的类型,以根据所述保护代码的类型去除所述保护代码。
8.根据权利要求6或7所述的注册码获取方法,其特征在于,解析出所述软件的原始代码的步骤包括:在运行并注册所述软件时,获取注册反馈信息;
采用反汇编方式将所述软件的二进制文件转换为所述源代码;
在所述源代码中获取所述注册反馈信息的汇编地址,根据所述汇编地址确定所述注册码的地址。
9.根据权利要求8所述的注册码获取方法,其特征在于,在所述源代码中没有获取到所述汇编地址时,解析所述源代码,在解析结果中获取与所述注册反馈信息对应的编号;
对所述编号进行反编译处理,得到所述注册反馈信息的汇编地址;
根据所述汇编地址获取所述注册码。
10.根据权利要求9所述的注册码获取方法,其特征在于,将所述汇编地址设置为调试中断点,在执行所述软件时,获取生成的注册码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104599959A CN103116489A (zh) | 2012-11-15 | 2012-11-15 | 注册码获取装置和注册码获取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104599959A CN103116489A (zh) | 2012-11-15 | 2012-11-15 | 注册码获取装置和注册码获取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103116489A true CN103116489A (zh) | 2013-05-22 |
Family
ID=48414875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104599959A Pending CN103116489A (zh) | 2012-11-15 | 2012-11-15 | 注册码获取装置和注册码获取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103116489A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354523A (zh) * | 2015-07-15 | 2017-01-25 | 北京谊安医疗系统股份有限公司 | 一种呼吸机的配置升级方法 |
CN106548046A (zh) * | 2016-10-25 | 2017-03-29 | 北京深思数盾科技股份有限公司 | 一种保护代码的装置和方法 |
CN104199778B (zh) * | 2014-09-15 | 2017-09-15 | 大连楼兰科技股份有限公司 | 测试软件注册算法错误的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068009A1 (ja) * | 2009-12-03 | 2011-06-09 | 沖電気工業株式会社 | 生体認証装置 |
CN102236761A (zh) * | 2010-04-27 | 2011-11-09 | 张云梯 | 一种软件防盗版中注册码生成方法 |
-
2012
- 2012-11-15 CN CN2012104599959A patent/CN103116489A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068009A1 (ja) * | 2009-12-03 | 2011-06-09 | 沖電気工業株式会社 | 生体認証装置 |
CN102236761A (zh) * | 2010-04-27 | 2011-11-09 | 张云梯 | 一种软件防盗版中注册码生成方法 |
Non-Patent Citations (1)
Title |
---|
CSDN博主WUZONGMAN: "破解DLL", 《HTTP://BLOG.CSDN.NET/WUZONGMAN/ARTICLE/DETAILS/6078344》, 15 December 2010 (2010-12-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199778B (zh) * | 2014-09-15 | 2017-09-15 | 大连楼兰科技股份有限公司 | 测试软件注册算法错误的方法 |
CN106354523A (zh) * | 2015-07-15 | 2017-01-25 | 北京谊安医疗系统股份有限公司 | 一种呼吸机的配置升级方法 |
CN106548046A (zh) * | 2016-10-25 | 2017-03-29 | 北京深思数盾科技股份有限公司 | 一种保护代码的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Babić et al. | Fudge: fuzz driver generation at scale | |
KR101981028B1 (ko) | 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램 | |
US10657264B2 (en) | Techniques for correlating vulnerabilities across an evolving codebase | |
CN105912381B (zh) | 一种基于规则库的编译期代码安全检测方法 | |
Yu et al. | Deescvhunter: A deep learning-based framework for smart contract vulnerability detection | |
ElWazeer et al. | Scalable variable and data type detection in a binary rewriter | |
Autili et al. | Aligning qualitative, real-time, and probabilistic property specification patterns using a structured english grammar | |
CN101661543A (zh) | 软件源代码安全漏洞的检测方法及检测装置 | |
CN109117368A (zh) | 一种接口测试方法、电子设备及存储介质 | |
CN104679495B (zh) | 软件识别方法及装置 | |
CN102819698B (zh) | 检测网页中恶意代码的方法及装置 | |
CN106547782A (zh) | 日志信息的获取方法及装置 | |
Delahaye et al. | Infeasible path generalization in dynamic symbolic execution | |
CN103116489A (zh) | 注册码获取装置和注册码获取方法 | |
Salimi et al. | VulSlicer: Vulnerability detection through code slicing | |
Wu et al. | Casper: An efficient approach to call trace collection | |
CN102799528B (zh) | 一种用于电路板级测试的脚本调试方法、装置及其系统 | |
Shi et al. | Lifting network protocol implementation to precise format specification with security applications | |
Kroustek et al. | Accurate retargetable decompilation using additional debugging information | |
Sui et al. | An effective fuzz input generation method for protocol testing | |
Caballero et al. | A zoom-declarative debugger for sequential Erlang programs | |
Pérez et al. | Exploring a method to detect behaviour-preserving evolution using graph transformation | |
CN104199778A (zh) | 测试软件注册算法错误的方法 | |
CN112148581A (zh) | 代码规范检查方法、装置、系统及存储介质 | |
Mussa et al. | Model-based test cases reuse and optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130522 |