扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
PAGE:004970CC loc_4970CC:
;下面的代码得到一个进程唯一的随机数,子功能代码为0x24
PAGE:004970CC cmp edi, edx ; case 0x24
PAGE:004970CE jnz loc_497349
PAGE:004970D4 cmp dword ptr [ebp+8], 0FFFFFFFFh
PAGE:004970D8 jnz loc_4977B8
;下面的代码得到保存随机数的地址
PAGE:004970DE mov eax, large fs:124h
PAGE:004970E4 mov eax, [eax+44h]
PAGE:004970E7 mov [ebp-34h], eax
PAGE:004970EA
PAGE:004970EA loc_4970EA:
PAGE:004970EA mov edi, [ebp-34h]
PAGE:004970ED add edi, 258h
;edi地址中保存的是一个跟进程相关的随机数,这里取出这个随机数
PAGE:004970F3 mov eax, [edi]
PAGE:004970F5 test eax, eax
PAGE:004970F7 jz loc_4B2379
{
;如果得到的随机数为0,则重新得到随机数,得到随机数的过程如下:
;1、先得到系统的时间,
;2、而后将这个时间和系统内核中的一个值进行不断的异或操作,
;就产生了一个随机数
PAGE:004B2379
PAGE:004B2379 loc_4B2379:
;得到系统时间
PAGE:004B2379 lea eax, [ebp-3Ch]
PAGE:004B237C push eax
PAGE:004B237D call KeQuerySystemTime
PAGE:004B2382 db 3Eh
;得到系统内核中的一个全局变量,该全局变量估计也是一个随机数
PAGE:004B2382 mov eax, ds:0FFDFF020h
PAGE:004B2388 mov ecx, [eax+518h]
PAGE:004B238E xor ecx, [eax+4B8h]
;将得到的随机数和得到系统时间进行异或
PAGE:004B2394 xor ecx, [ebp-38h]
PAGE:004B2397 xor ecx, [ebp-3Ch]
;将计算得到的随机数保存在上面的跟进程相关的全局变量中,edi中保存的就是
;这个地址。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。