-
-
浮点指令 转换 C语言该怎么写
-
发表于:
2013-11-27 19:43
7487
-
小弟代码能力很弱 烦劳各位大哥 指点下 在此谢过
在破解一个CM的时候 里面的算法是用的浮点指令
fild qword ptr ss:[ebp-0x8]
fstp qword ptr ss:[ebp-0x14]
fld qword ptr ss:[ebp-0x14]
fmul qword ptr ds:[0x639534] ;*2.0000000000
fstp qword ptr ss:[ebp-0x1C]
fld qword ptr ss:[ebp-0x1C]
算法十分简单就是
循环50次 key=key*2.0000000000
OD得出的值是这个
9.4289814595999989760E+11
程序取了一个DWORD 最后得出的是9428981459
我用VC6写注册机
cstring str;
double key=atof(numstr)
while(i<50)
{
key=key*2.0;
i++;
}
str.Format("%lf",key);
得出的值是这个
9.4289814601930156e+038
转换str=9428981460 和上面程序运行的尾数不一样
请问下各位大哥 该怎么改写注册机 觉得是精度问题 该怎么改呀 多谢了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)