关于一个软件注册的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 12:36:05
我单位购买了某正版软件,安装后还需要给软件公司打电话进行注册。注册过程是告之软件公司我电脑的标识码(该软件生成),然后他们再告之我一个注册码,输入注册码,注册过程结束,软件可以使用了。
另外,该软件只可以在两台电脑上安装,当我安装到第三台电脑上时,就必须在注册这第三台电脑时告之他们取消之前的两台电脑中的一台的软件注册才可以。这样那台取消了注册的电脑就不能再使用该软件了。

我想问的是:
1、软件公司是靠什么来注册我的软件的?是通过一定算法,将我电脑的标识码转换成注册码,从而完成注册的吗?比如我的电脑标识码为“ABCD”,其算法为将电脑标识码反转,则注册码就是“DCBA”,其大概原理是这样的吗?
2、如果是象我猜测的那样通过一定的算法将我电脑的标识码转换成注册码,那么他们又是怎么取消我的注册的呢?一个算法不是固定的吗?如果从“ABCD”生成“DCBA”是完成注册了,那他们又怎么让“DCBA”完不成对“ABCD”的注册呢?
注:所有注册过程都是通过电话完成的,电脑完全可以不连通网络,所以通过网络控制注册是不可能的。

我完全是出于好奇,没有任何不良目的!单位买的也是正版软件,请不要给我注册机一类的东东啊!仅仅是因为好奇而已!
希望高手能帮我详细解惑,我基本属于菜鸟!谢谢!

修改软件的跳转~~~
用od来说就简单了
je 或jz 若相等则跳(机器码74 或0F84)
jne或jnz 若不相等则跳(机器码75或0F85)
jmp 无条件跳(机器码EB)
jb 若小于则跳
ja 若大于则跳
jg 若大于则跳
jge 若大于等于则跳
jl 若小于则跳
jle 若小于等于则跳
pop 出栈
push 压栈
三、常见修改(机器码)
74=>75 74=>90 74=>EB
75=>74 75=>90 75=>EB
jnz->nop
75->90(相应的机器码修改)
jnz -> jmp
75 -> EB(相应的机器码修改)
jnz -> jz
75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)

软件的注册码就是通过软件内的函数修改的
一般jne修改成je
若相等则跳就注册成功
用算法很难搞定的

呵呵从破解的角度来解答不知道对不对~

软件的算法是不可以逆的
能算出逆法就是超级数学家了呵呵^_^