-
-
[原创]R0/R3 通用高效取随机数
-
发表于:
2019-4-21 12:46
6435
-
R3有 srand(?) rand(),凑合使用.
但是最近搞的驱动需要随机参数,R0又没有随机数值的获取.
因为x64不能直接 _asm{}了,根据网上流传的汇编方式获取随机数的方法,改成了这样的
ULONG dv_rand(ULONG min, ULONG max)
{
ULONG t1 = __rdtsc();
//ULONG v = (((t1*(min^ t1) + t1 * (max*min)) * 0x17) / 7) % (max + 1) + min; 之前写错的
ULONG v = (((((t1*(min^ t1) + t1 * (max*min )) * 0x17) / 7) % (max- min+1)) + min);//修正 2019-5-20
return v;
}
ULONG dv_rand(ULONG min, ULONG max)
{
ULONG t1 = __rdtsc();
//ULONG v = (((t1*(min^ t1) + t1 * (max*min)) * 0x17) / 7) % (max + 1) + min; 之前写错的
ULONG v = (((((t1*(min^ t1) + t1 * (max*min )) * 0x17) / 7) % (max- min+1)) + min);//修正 2019-5-20
return v;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-5-20 22:57
被游乐娃子编辑
,原因: 修改错误.