@Aphton
Ich habe nochmal im Virencode nachgeschaut um sicher zu gehen, sogar den Opcode habe ich nachgeschaut - da steht tatsächlich "AND $3E". Sehr merkwürdig. Ist wohl ein Fehler des Programmierers. Schade das der nicht größere Auswirkungen hat.
@bombinho
Zitat:
... Oder ein Eigenbau?...
Ist nachgebaut und erweitert. Hier kann man es nachlesen:
http://www.cems.uwe.ac.uk/~irjohnso/...parkmiller.pdf Seite 1195 (function Random Integer Version 2)
Der
ASM-Code sieht so aus: (Suche im Virencode nach "rdtsc" . Dann stehst du direkt in der GetRandomNumber- Funktion)
Code:
proc GetRandomNumber
TMP = dword local
push ebp
mov ebp, esp
sub esp, 4
mov [ebp+TMP], 0
push edx
push ecx
mov eax, [ebp+TMP]
or eax, eax
jnz short LABEL ; springt nie
rdtsc
xor eax, edx
mov [ebp+TMP], eax
LABEL:
xor edx, edx
mov ecx, 1F31Dh ; q=127773
div ecx
mov ecx, eax
mov eax, 41A7h ; a=16807
mul edx
mov edx, ecx
mov ecx, eax
mov eax, 0B14h ; r=2836
mul edx
sub ecx, eax
xor edx, edx
mov eax, ecx
mov [ebp+TMP], ecx
mov ecx, 186A0h ; =10000
div ecx
mov eax, edx
pop ecx
pop edx
leave
retn
end;