问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我要为VB程序做一个注册模块,就是客户告诉我“机器码”,我在自己电脑上运行注册机生成注册码给他使用_百度问一问

发布网友 发布时间:2022-04-24 03:47

我来回答

1个回答

热心网友 时间:2023-10-25 22:10

摘要认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)咨询记录 · 回答于2021-12-01我要为VB程序做一个注册模块,就是客户告诉我“机器码”,我在自己电脑上运行注册机生成注册码给他使用您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,很高兴为你解答疑问,这是我为您搜索的结果: 一般是以计算机硬件(如主板,网卡,硬盘)的唯一序列号作为注册源,通过一定的算法(即注册机)来形成所谓的注册码!一般的程序通过在程序中设置一个全局变量来进行注册码的记录; 时间的实现类似于: CString last = "2002/02/20"; int year,month,day,getyear,getmonth,getday; CTime date = CTime::GetCurrentTime(); getyear = date.GetYear(); getmonth = date.GetMonth(); getday = date.GetDay(); year = atoi(last.Left(4)); month = atoi(last.Mid(4,2)); day = atoi(last.Right(2)); 次数可以在注册表里设置一个键值来判断,若有此键,则说明已经到期! 一般情况下软件的注册是通过比较来实现的,也就是说软件本身就是注册机,因为他本身就有个真正的注册码,用他来和你所输入的注册码做比较。不过有的是明码比较有的是加密比较,以明码比较来说:我们已经知道了软件自己可能会产生注册码的有的在内存中有的在软件中有的在注册表中,更有甚者是有个通用的万能注册码。 输入注册码成功是因为软件中用了跳转,也就是说。当你输入的号码和真正的注册码比较完的时候有个跳转。跳转分为一下几个类型 若相等则跳 若不相等则跳 无条件跳 若小于则跳 若大于则跳 若大于等于则跳 若小于则跳 若小于等于则跳您好,很高兴为你解答疑问,这是我为您搜索的结果:大部分注册算法的原理是:软件或者用户自己触发了软件的注册模块-》软件跳转到注册认证模块。-》弹出注册窗口-》用户输入注册名+注册码A,把它们存放在内存中。然后软件的注册码验证部分根据用户输入的注册名生成正确的注册码B并和用户输入的注册码A做对比。如果结果为相同则注册通过,并运行“注册成功”后面的程序分支,比如解除各种软件*。如果不相同则提示“无效的注册码,请重新输入!”或者“Invalid key!”等等警告。 知道了原理,我们只要用SOFTICE和TRW2000等汇编调试软件去做软件的动态反汇编。来找到软件注册部分的入口(这个过程就不细说了,有兴趣去看看汇编调试和软件破解的资料) 破解: 这时候后如果我们在软件的注册失败的那段代码前面加一个跳转,说得容易理解一点就是:跳过软件注册码验证失败后应该运行的分支,而将它转到注册成功的那个分支上。那么这时候不管你输入的注册码是对是错,都会提示注册成功。直接将它跳到注册通过的那个程序分支上。这是一种破解方式。还有一种就是直接屏蔽注册窗口,这个最简单,在那段窗口代码前面加一个跳转指令。这个适合于那种频繁弹出注册窗口但软件功能并没有*的注册软件 注册机: 通过反汇编和调试器跟踪来得到软件的注册码验证部分的汇编代码,然后根据它写出来的逆向算法生成的注册程序。就是注册机了 内存注册机: 跟简单了,因为经过上面的步骤,你已经知道的那个软件的注册算法。知道它会在做注册认证的时候将用户输入的注册码和正确的注册码做对比。把正确内存里的注册码取出来就OK了。所以内存注册机的使用方法都是:先开注册机,用注册机载入软件。然后你随便输入一个注册码,按确定。软件会提示注册失败,因为你的注册码是错误的。不过这个时候正确的注册码已经被内存注册机截取到了****源自:http://bbs.hnitr.com/archiver/?tid-61478.html注册码、使用期限相对于收费而言的,注册码可以达到一台电脑只能安装一次的效果,使用期限可以达到超过期限不能使用的效果。(1)获取机器硬盘序列号(因设计者而异,根据获取类型、种类等结果而不同)(2)序列号根据一系列的算法(加密的范畴)得出注册码(3)注册码根据一系列的算法得出注册号(算法因人而异,千奇百怪 也就是说,在软件刚开始安装的时候,其实注册码已经算出来了,就存放在你的电脑中,只不过不知道放在哪而已。由使用者算出注册码,发给开发者,开发者得出注册码回发使用者,使用者输入注册码,与电脑中存储的对比,成功就注册成功,否则就注册失败。 使用期限也是一个道理,软件只记录安装时候的计算机时间,每启动软件一次,就对比一次时间,当对比本地时间>安装时间的时候也就过期啦,而且不要指望修改系统时间,对比本地时间也可能被记录,一旦时间和对比本地时间有出处,也是会误认为过期滴。 至于使用次数就是毛毛雨了,每启动一次加1而已,当大于软件里设定的最大次数,就伴随的失效了。使用期限和次数可以有傻瓜破解的办法,就是重做系统,使用。到期限后,在重做系统,重安,在使用,太麻烦,不推荐认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)您好,很高兴为你解答疑问,这是我为您搜索的结果:第二招:用公匙,并改名 另外,一定要使用公开密匙算法保护你的软件。RSA、DSA和El Gamal之类的算法都可以从网上找到。但注意:将你算法单元中所有涉及到算法名称的字符串全部改名。避免被Cracker发现你用的算法而模仿写出注册机来!你还可以张冠李戴,明明用的DSA,将名字全部替换成RSA。 其它算法,如对称算法和Hash算法也要注意改名,否则这样: EncryptedCode = Blowfish(MD5(UserName),MD5(Key)); //你的加密算法,使用了Blowfish(对称算法)和MD5(Hash算法) 虽然那些Cracker不了解Blowfish和MD5算法的原理,也不会逆向推测它们,但他们了解你的校验算法的流程和算法名,便可马上从网上找到类似的Blowfish和MD5算法包,从而模拟你的软件仿造出注册机。 如果你用不常见的,算法如Skipjack(NASA美国航天局标准算法)、LOKI、3-WAY、Safer之类不出名但保密程度很高的算法,并且全部改名,这样就会伤透他们脑筋了。 当然,最好把Hash算法也全部改名,会给他们制造更多的困难。但注意,MD5和SHA之类的Hash初始值会被Cracker从内存中找到,这样他就知道你用的Hash了。所以建议同时使用MD5的变形算法Ripe-MD(RMD)128或160或其它的Hash,如Tiger、Haval等算法。第三招:阻止别人调试 还有一点,调试器对我们的威胁很大,我们不会让Cracker们舒舒服服地使用SoftICE、TRW或OllyDbg来调试我们的程序。除了常用的MeItICE方法外,这里我给一个笔者写的方法:

热心网友 时间:2023-10-25 22:10

摘要认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)咨询记录 · 回答于2021-12-01我要为VB程序做一个注册模块,就是客户告诉我“机器码”,我在自己电脑上运行注册机生成注册码给他使用您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,很高兴为你解答疑问,这是我为您搜索的结果: 一般是以计算机硬件(如主板,网卡,硬盘)的唯一序列号作为注册源,通过一定的算法(即注册机)来形成所谓的注册码!一般的程序通过在程序中设置一个全局变量来进行注册码的记录; 时间的实现类似于: CString last = "2002/02/20"; int year,month,day,getyear,getmonth,getday; CTime date = CTime::GetCurrentTime(); getyear = date.GetYear(); getmonth = date.GetMonth(); getday = date.GetDay(); year = atoi(last.Left(4)); month = atoi(last.Mid(4,2)); day = atoi(last.Right(2)); 次数可以在注册表里设置一个键值来判断,若有此键,则说明已经到期! 一般情况下软件的注册是通过比较来实现的,也就是说软件本身就是注册机,因为他本身就有个真正的注册码,用他来和你所输入的注册码做比较。不过有的是明码比较有的是加密比较,以明码比较来说:我们已经知道了软件自己可能会产生注册码的有的在内存中有的在软件中有的在注册表中,更有甚者是有个通用的万能注册码。 输入注册码成功是因为软件中用了跳转,也就是说。当你输入的号码和真正的注册码比较完的时候有个跳转。跳转分为一下几个类型 若相等则跳 若不相等则跳 无条件跳 若小于则跳 若大于则跳 若大于等于则跳 若小于则跳 若小于等于则跳您好,很高兴为你解答疑问,这是我为您搜索的结果:大部分注册算法的原理是:软件或者用户自己触发了软件的注册模块-》软件跳转到注册认证模块。-》弹出注册窗口-》用户输入注册名+注册码A,把它们存放在内存中。然后软件的注册码验证部分根据用户输入的注册名生成正确的注册码B并和用户输入的注册码A做对比。如果结果为相同则注册通过,并运行“注册成功”后面的程序分支,比如解除各种软件*。如果不相同则提示“无效的注册码,请重新输入!”或者“Invalid key!”等等警告。 知道了原理,我们只要用SOFTICE和TRW2000等汇编调试软件去做软件的动态反汇编。来找到软件注册部分的入口(这个过程就不细说了,有兴趣去看看汇编调试和软件破解的资料) 破解: 这时候后如果我们在软件的注册失败的那段代码前面加一个跳转,说得容易理解一点就是:跳过软件注册码验证失败后应该运行的分支,而将它转到注册成功的那个分支上。那么这时候不管你输入的注册码是对是错,都会提示注册成功。直接将它跳到注册通过的那个程序分支上。这是一种破解方式。还有一种就是直接屏蔽注册窗口,这个最简单,在那段窗口代码前面加一个跳转指令。这个适合于那种频繁弹出注册窗口但软件功能并没有*的注册软件 注册机: 通过反汇编和调试器跟踪来得到软件的注册码验证部分的汇编代码,然后根据它写出来的逆向算法生成的注册程序。就是注册机了 内存注册机: 跟简单了,因为经过上面的步骤,你已经知道的那个软件的注册算法。知道它会在做注册认证的时候将用户输入的注册码和正确的注册码做对比。把正确内存里的注册码取出来就OK了。所以内存注册机的使用方法都是:先开注册机,用注册机载入软件。然后你随便输入一个注册码,按确定。软件会提示注册失败,因为你的注册码是错误的。不过这个时候正确的注册码已经被内存注册机截取到了****源自:http://bbs.hnitr.com/archiver/?tid-61478.html注册码、使用期限相对于收费而言的,注册码可以达到一台电脑只能安装一次的效果,使用期限可以达到超过期限不能使用的效果。(1)获取机器硬盘序列号(因设计者而异,根据获取类型、种类等结果而不同)(2)序列号根据一系列的算法(加密的范畴)得出注册码(3)注册码根据一系列的算法得出注册号(算法因人而异,千奇百怪 也就是说,在软件刚开始安装的时候,其实注册码已经算出来了,就存放在你的电脑中,只不过不知道放在哪而已。由使用者算出注册码,发给开发者,开发者得出注册码回发使用者,使用者输入注册码,与电脑中存储的对比,成功就注册成功,否则就注册失败。 使用期限也是一个道理,软件只记录安装时候的计算机时间,每启动软件一次,就对比一次时间,当对比本地时间>安装时间的时候也就过期啦,而且不要指望修改系统时间,对比本地时间也可能被记录,一旦时间和对比本地时间有出处,也是会误认为过期滴。 至于使用次数就是毛毛雨了,每启动一次加1而已,当大于软件里设定的最大次数,就伴随的失效了。使用期限和次数可以有傻瓜破解的办法,就是重做系统,使用。到期限后,在重做系统,重安,在使用,太麻烦,不推荐认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)您好,很高兴为你解答疑问,这是我为您搜索的结果:第二招:用公匙,并改名 另外,一定要使用公开密匙算法保护你的软件。RSA、DSA和El Gamal之类的算法都可以从网上找到。但注意:将你算法单元中所有涉及到算法名称的字符串全部改名。避免被Cracker发现你用的算法而模仿写出注册机来!你还可以张冠李戴,明明用的DSA,将名字全部替换成RSA。 其它算法,如对称算法和Hash算法也要注意改名,否则这样: EncryptedCode = Blowfish(MD5(UserName),MD5(Key)); //你的加密算法,使用了Blowfish(对称算法)和MD5(Hash算法) 虽然那些Cracker不了解Blowfish和MD5算法的原理,也不会逆向推测它们,但他们了解你的校验算法的流程和算法名,便可马上从网上找到类似的Blowfish和MD5算法包,从而模拟你的软件仿造出注册机。 如果你用不常见的,算法如Skipjack(NASA美国航天局标准算法)、LOKI、3-WAY、Safer之类不出名但保密程度很高的算法,并且全部改名,这样就会伤透他们脑筋了。 当然,最好把Hash算法也全部改名,会给他们制造更多的困难。但注意,MD5和SHA之类的Hash初始值会被Cracker从内存中找到,这样他就知道你用的Hash了。所以建议同时使用MD5的变形算法Ripe-MD(RMD)128或160或其它的Hash,如Tiger、Haval等算法。第三招:阻止别人调试 还有一点,调试器对我们的威胁很大,我们不会让Cracker们舒舒服服地使用SoftICE、TRW或OllyDbg来调试我们的程序。除了常用的MeItICE方法外,这里我给一个笔者写的方法:

热心网友 时间:2023-10-25 22:10

摘要认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)咨询记录 · 回答于2021-12-01我要为VB程序做一个注册模块,就是客户告诉我“机器码”,我在自己电脑上运行注册机生成注册码给他使用您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,很高兴为你解答疑问,这是我为您搜索的结果: 一般是以计算机硬件(如主板,网卡,硬盘)的唯一序列号作为注册源,通过一定的算法(即注册机)来形成所谓的注册码!一般的程序通过在程序中设置一个全局变量来进行注册码的记录; 时间的实现类似于: CString last = "2002/02/20"; int year,month,day,getyear,getmonth,getday; CTime date = CTime::GetCurrentTime(); getyear = date.GetYear(); getmonth = date.GetMonth(); getday = date.GetDay(); year = atoi(last.Left(4)); month = atoi(last.Mid(4,2)); day = atoi(last.Right(2)); 次数可以在注册表里设置一个键值来判断,若有此键,则说明已经到期! 一般情况下软件的注册是通过比较来实现的,也就是说软件本身就是注册机,因为他本身就有个真正的注册码,用他来和你所输入的注册码做比较。不过有的是明码比较有的是加密比较,以明码比较来说:我们已经知道了软件自己可能会产生注册码的有的在内存中有的在软件中有的在注册表中,更有甚者是有个通用的万能注册码。 输入注册码成功是因为软件中用了跳转,也就是说。当你输入的号码和真正的注册码比较完的时候有个跳转。跳转分为一下几个类型 若相等则跳 若不相等则跳 无条件跳 若小于则跳 若大于则跳 若大于等于则跳 若小于则跳 若小于等于则跳您好,很高兴为你解答疑问,这是我为您搜索的结果:大部分注册算法的原理是:软件或者用户自己触发了软件的注册模块-》软件跳转到注册认证模块。-》弹出注册窗口-》用户输入注册名+注册码A,把它们存放在内存中。然后软件的注册码验证部分根据用户输入的注册名生成正确的注册码B并和用户输入的注册码A做对比。如果结果为相同则注册通过,并运行“注册成功”后面的程序分支,比如解除各种软件*。如果不相同则提示“无效的注册码,请重新输入!”或者“Invalid key!”等等警告。 知道了原理,我们只要用SOFTICE和TRW2000等汇编调试软件去做软件的动态反汇编。来找到软件注册部分的入口(这个过程就不细说了,有兴趣去看看汇编调试和软件破解的资料) 破解: 这时候后如果我们在软件的注册失败的那段代码前面加一个跳转,说得容易理解一点就是:跳过软件注册码验证失败后应该运行的分支,而将它转到注册成功的那个分支上。那么这时候不管你输入的注册码是对是错,都会提示注册成功。直接将它跳到注册通过的那个程序分支上。这是一种破解方式。还有一种就是直接屏蔽注册窗口,这个最简单,在那段窗口代码前面加一个跳转指令。这个适合于那种频繁弹出注册窗口但软件功能并没有*的注册软件 注册机: 通过反汇编和调试器跟踪来得到软件的注册码验证部分的汇编代码,然后根据它写出来的逆向算法生成的注册程序。就是注册机了 内存注册机: 跟简单了,因为经过上面的步骤,你已经知道的那个软件的注册算法。知道它会在做注册认证的时候将用户输入的注册码和正确的注册码做对比。把正确内存里的注册码取出来就OK了。所以内存注册机的使用方法都是:先开注册机,用注册机载入软件。然后你随便输入一个注册码,按确定。软件会提示注册失败,因为你的注册码是错误的。不过这个时候正确的注册码已经被内存注册机截取到了****源自:http://bbs.hnitr.com/archiver/?tid-61478.html注册码、使用期限相对于收费而言的,注册码可以达到一台电脑只能安装一次的效果,使用期限可以达到超过期限不能使用的效果。(1)获取机器硬盘序列号(因设计者而异,根据获取类型、种类等结果而不同)(2)序列号根据一系列的算法(加密的范畴)得出注册码(3)注册码根据一系列的算法得出注册号(算法因人而异,千奇百怪 也就是说,在软件刚开始安装的时候,其实注册码已经算出来了,就存放在你的电脑中,只不过不知道放在哪而已。由使用者算出注册码,发给开发者,开发者得出注册码回发使用者,使用者输入注册码,与电脑中存储的对比,成功就注册成功,否则就注册失败。 使用期限也是一个道理,软件只记录安装时候的计算机时间,每启动软件一次,就对比一次时间,当对比本地时间>安装时间的时候也就过期啦,而且不要指望修改系统时间,对比本地时间也可能被记录,一旦时间和对比本地时间有出处,也是会误认为过期滴。 至于使用次数就是毛毛雨了,每启动一次加1而已,当大于软件里设定的最大次数,就伴随的失效了。使用期限和次数可以有傻瓜破解的办法,就是重做系统,使用。到期限后,在重做系统,重安,在使用,太麻烦,不推荐认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)您好,很高兴为你解答疑问,这是我为您搜索的结果:第二招:用公匙,并改名 另外,一定要使用公开密匙算法保护你的软件。RSA、DSA和El Gamal之类的算法都可以从网上找到。但注意:将你算法单元中所有涉及到算法名称的字符串全部改名。避免被Cracker发现你用的算法而模仿写出注册机来!你还可以张冠李戴,明明用的DSA,将名字全部替换成RSA。 其它算法,如对称算法和Hash算法也要注意改名,否则这样: EncryptedCode = Blowfish(MD5(UserName),MD5(Key)); //你的加密算法,使用了Blowfish(对称算法)和MD5(Hash算法) 虽然那些Cracker不了解Blowfish和MD5算法的原理,也不会逆向推测它们,但他们了解你的校验算法的流程和算法名,便可马上从网上找到类似的Blowfish和MD5算法包,从而模拟你的软件仿造出注册机。 如果你用不常见的,算法如Skipjack(NASA美国航天局标准算法)、LOKI、3-WAY、Safer之类不出名但保密程度很高的算法,并且全部改名,这样就会伤透他们脑筋了。 当然,最好把Hash算法也全部改名,会给他们制造更多的困难。但注意,MD5和SHA之类的Hash初始值会被Cracker从内存中找到,这样他就知道你用的Hash了。所以建议同时使用MD5的变形算法Ripe-MD(RMD)128或160或其它的Hash,如Tiger、Haval等算法。第三招:阻止别人调试 还有一点,调试器对我们的威胁很大,我们不会让Cracker们舒舒服服地使用SoftICE、TRW或OllyDbg来调试我们的程序。除了常用的MeItICE方法外,这里我给一个笔者写的方法:

热心网友 时间:2023-10-25 22:10

摘要认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)咨询记录 · 回答于2021-12-01我要为VB程序做一个注册模块,就是客户告诉我“机器码”,我在自己电脑上运行注册机生成注册码给他使用您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,我对您提出的问题没有理解,麻烦您讲述一下具体问题您好,很高兴为你解答疑问,这是我为您搜索的结果: 一般是以计算机硬件(如主板,网卡,硬盘)的唯一序列号作为注册源,通过一定的算法(即注册机)来形成所谓的注册码!一般的程序通过在程序中设置一个全局变量来进行注册码的记录; 时间的实现类似于: CString last = "2002/02/20"; int year,month,day,getyear,getmonth,getday; CTime date = CTime::GetCurrentTime(); getyear = date.GetYear(); getmonth = date.GetMonth(); getday = date.GetDay(); year = atoi(last.Left(4)); month = atoi(last.Mid(4,2)); day = atoi(last.Right(2)); 次数可以在注册表里设置一个键值来判断,若有此键,则说明已经到期! 一般情况下软件的注册是通过比较来实现的,也就是说软件本身就是注册机,因为他本身就有个真正的注册码,用他来和你所输入的注册码做比较。不过有的是明码比较有的是加密比较,以明码比较来说:我们已经知道了软件自己可能会产生注册码的有的在内存中有的在软件中有的在注册表中,更有甚者是有个通用的万能注册码。 输入注册码成功是因为软件中用了跳转,也就是说。当你输入的号码和真正的注册码比较完的时候有个跳转。跳转分为一下几个类型 若相等则跳 若不相等则跳 无条件跳 若小于则跳 若大于则跳 若大于等于则跳 若小于则跳 若小于等于则跳您好,很高兴为你解答疑问,这是我为您搜索的结果:大部分注册算法的原理是:软件或者用户自己触发了软件的注册模块-》软件跳转到注册认证模块。-》弹出注册窗口-》用户输入注册名+注册码A,把它们存放在内存中。然后软件的注册码验证部分根据用户输入的注册名生成正确的注册码B并和用户输入的注册码A做对比。如果结果为相同则注册通过,并运行“注册成功”后面的程序分支,比如解除各种软件*。如果不相同则提示“无效的注册码,请重新输入!”或者“Invalid key!”等等警告。 知道了原理,我们只要用SOFTICE和TRW2000等汇编调试软件去做软件的动态反汇编。来找到软件注册部分的入口(这个过程就不细说了,有兴趣去看看汇编调试和软件破解的资料) 破解: 这时候后如果我们在软件的注册失败的那段代码前面加一个跳转,说得容易理解一点就是:跳过软件注册码验证失败后应该运行的分支,而将它转到注册成功的那个分支上。那么这时候不管你输入的注册码是对是错,都会提示注册成功。直接将它跳到注册通过的那个程序分支上。这是一种破解方式。还有一种就是直接屏蔽注册窗口,这个最简单,在那段窗口代码前面加一个跳转指令。这个适合于那种频繁弹出注册窗口但软件功能并没有*的注册软件 注册机: 通过反汇编和调试器跟踪来得到软件的注册码验证部分的汇编代码,然后根据它写出来的逆向算法生成的注册程序。就是注册机了 内存注册机: 跟简单了,因为经过上面的步骤,你已经知道的那个软件的注册算法。知道它会在做注册认证的时候将用户输入的注册码和正确的注册码做对比。把正确内存里的注册码取出来就OK了。所以内存注册机的使用方法都是:先开注册机,用注册机载入软件。然后你随便输入一个注册码,按确定。软件会提示注册失败,因为你的注册码是错误的。不过这个时候正确的注册码已经被内存注册机截取到了****源自:http://bbs.hnitr.com/archiver/?tid-61478.html注册码、使用期限相对于收费而言的,注册码可以达到一台电脑只能安装一次的效果,使用期限可以达到超过期限不能使用的效果。(1)获取机器硬盘序列号(因设计者而异,根据获取类型、种类等结果而不同)(2)序列号根据一系列的算法(加密的范畴)得出注册码(3)注册码根据一系列的算法得出注册号(算法因人而异,千奇百怪 也就是说,在软件刚开始安装的时候,其实注册码已经算出来了,就存放在你的电脑中,只不过不知道放在哪而已。由使用者算出注册码,发给开发者,开发者得出注册码回发使用者,使用者输入注册码,与电脑中存储的对比,成功就注册成功,否则就注册失败。 使用期限也是一个道理,软件只记录安装时候的计算机时间,每启动软件一次,就对比一次时间,当对比本地时间>安装时间的时候也就过期啦,而且不要指望修改系统时间,对比本地时间也可能被记录,一旦时间和对比本地时间有出处,也是会误认为过期滴。 至于使用次数就是毛毛雨了,每启动一次加1而已,当大于软件里设定的最大次数,就伴随的失效了。使用期限和次数可以有傻瓜破解的办法,就是重做系统,使用。到期限后,在重做系统,重安,在使用,太麻烦,不推荐认识注册机破解法 顾名思义,写注册机来破解软件注册的方法,就是模仿你的注册码生成算法或者逆向注册码验证算法而写出来的和你一模一样的注册机。如果被写出注册机,你的软件只好免费了。或者你必须更换算法,但以前注过册的合法用户都得*更换注册码了。 Cracker要写注册机必须详细研究你软件的验证模块,这必须先将你的软件脱壳,再反汇编或者用调试器跟踪。市面上许多加壳和保护软件都吹嘘不可能被脱壳,但到目前为止没有一个软件兑现了自己的诺言。由于CPU最终执行的都是有效指令,所以等你的程序自解压完成后再从内存中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。第一招:制造假相 反汇编和调试器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来调用Windows系统中的关键DLL的(如Kernel32.dll、GDI32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软件还有一件TMG小组的破解利器——DeDe。它可以轻松地看到你软件里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软件中所有的函数名全部替换成随机生成的函数名。例如Func_3dfsa_fs32zlfv 。这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。但要注意,只有当你要发布软件时才使用它,而且一定注意备份源代码。否则,当你看不懂你自己的代码时就着急了:)您好,很高兴为你解答疑问,这是我为您搜索的结果:第二招:用公匙,并改名 另外,一定要使用公开密匙算法保护你的软件。RSA、DSA和El Gamal之类的算法都可以从网上找到。但注意:将你算法单元中所有涉及到算法名称的字符串全部改名。避免被Cracker发现你用的算法而模仿写出注册机来!你还可以张冠李戴,明明用的DSA,将名字全部替换成RSA。 其它算法,如对称算法和Hash算法也要注意改名,否则这样: EncryptedCode = Blowfish(MD5(UserName),MD5(Key)); //你的加密算法,使用了Blowfish(对称算法)和MD5(Hash算法) 虽然那些Cracker不了解Blowfish和MD5算法的原理,也不会逆向推测它们,但他们了解你的校验算法的流程和算法名,便可马上从网上找到类似的Blowfish和MD5算法包,从而模拟你的软件仿造出注册机。 如果你用不常见的,算法如Skipjack(NASA美国航天局标准算法)、LOKI、3-WAY、Safer之类不出名但保密程度很高的算法,并且全部改名,这样就会伤透他们脑筋了。 当然,最好把Hash算法也全部改名,会给他们制造更多的困难。但注意,MD5和SHA之类的Hash初始值会被Cracker从内存中找到,这样他就知道你用的Hash了。所以建议同时使用MD5的变形算法Ripe-MD(RMD)128或160或其它的Hash,如Tiger、Haval等算法。第三招:阻止别人调试 还有一点,调试器对我们的威胁很大,我们不会让Cracker们舒舒服服地使用SoftICE、TRW或OllyDbg来调试我们的程序。除了常用的MeItICE方法外,这里我给一个笔者写的方法:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 关于VB 注册码破解 用软件 解析出了代码, 懂得VB编程或破解的来下? vb 暴力破解密码程序的过程? 真皮沙发需用保护套吗? VB程序破解 注册按钮不显示怎么破解 VB 写了一个程序如何加入注册码,使一个注册码对应一台机器? 怎么破解vb写的程序? 怎么用VB编写一个注册的代码 VB程序密码忘记了怎么破解? 破解VB程序是怎么破解的 VB中关于注册码 防止被人轻易破解!!! 皮质沙发保养用什么? 保养真皮沙发用什么? 皮质沙发用什么保养? 皮沙发用什么保养? iPhone7P可以上微信,但无法打开浏览器网页。提示检查APN或者wifi链接。 小米手环可以链接到苹果7p吗 三星Gear s3链接7p有哪些功能不能用?支付宝 微信能看信信和图片么??求科普,准备入手 你好我的苹果7p升级一半然后断开了 直接让链接iTunes开不了机了怎么办, 苹果7P手机用微信登录公众号链接显示网络连接错误,轻触屏幕重新加载1200,是什么原因,如何解决 怎么才能破解vb的程序? 只要能得到破解这个程序的源代码就可以了。 我想破解一个软件,是个VB程序,加密了,要什么授权码之类的,请问能有高手帮我破解么,报酬可以谈。 vb如何实现软件注册功能? VB密码怎么破解,VB5.0做的,已知道源码,求破解 有如下小程序,用VB编写,请问达人如何破解? 如何对自己的VB程序加密? 用VB编程:写一个破解密码的程序 有人懂vb程序编写的软件破解吗,找高手 户户通小锅天线收多少个台 思维导图不就是个树状图吗? 老师说思维导图按主体来整理是什么意思? MindManager的树形导图模板如何使用? 怎么用思维导图的软件(如:xmind,mindmanager这类的)把表格导成树状图? 用思维导图软件制作的树状图,怎样才能完整地转为word文件? 户户通怎么收本地台 12个生肖是哪些? 十二生肖是哪几个? 十二个生肖 12生肖哪个属相最好? 十二生肖是那十二个生肖