时间提醒助手算法
本机机器码:-1343620097
1、将机器码转为16进制字符串 记为 M1
-1343620097=>(FFFFFFFF舍)AFE9FBFF
2、在M1前加'aB',后加'Cd' 即 'aB'+M1+'Cd' 记为M2
aBAFE9FBFFCd
3、循环 从M2后面开始取字符 Char
9FBFFCd
4、常数 $587C5F33 / Char 的 ASCII值 取余数,余数转化为10进制字符串
d C F F B F 9
43435353555352
5、循环取字符到 length(M2)-6 结束
6、将余数10进制字符串转换为16进制字符串即为注册码。
43435353555352=>278114D1C198
[参考]http://www.pediy.com/bbshtml/bbs7/pediy7-121.htm
[摘录]
--------------------------------------
【Crack总结】:
作者的算法很简单,我不知到里面的浮点运算是干什么用的。
1、将机器码转为16进制字符串 记为 M1
2、在M1前加'aB',后加'Cd' 即 'aB'+M1+'Cd' 记为M2
3、循环 从M2后面开始取字符 Char
4、常数 $587C5F33 / Char 的 ASCII值 取余数,余数转化为10进制字符串
5、循环取字符到 length(M2)-6 结束
6、将余数10进制字符串转换为16进制字符串即为注册码。
贴出注册机delphi源码:
Procedure TForm1.btn1Click(Sender: TObject);
Const
Num: Integer = $587C5F33;
Var
MnoStr, SerailNo: String;
i: Integer;
Begin
MnoStr := 'aB' + IntToHex(StrToInt64(edt1.Text), 1) + 'Cd';
For i := 0 To Length(MnoStr) - 6 Do
SerailNo := SerailNo + FormatFloat('0', Num Mod Ord(MnoStr[Length(MnoStr) - i]));
edt2.Text := IntToHex(StrToInt64(SerailNo), 1);
End;
内存注册机:
中断地址:004949F1
中断次数:1
第一字节:8B
指令长度:3
注册码: 内存方式 寄存器 EAX
大家可以验证一下:
机器码:1072429567
注册码:278114D14C6B
------------------------------------------------------
RelatedEntries: