E
Size: a a a
E
LG
LG
include 'win32a.inc'
format PE console 4.0
section '.text' code readable executable
mov eax,00B704CEh ; init
mov ebx,01864CFBh ; poly
mov esi,_data ; input
mov ecx,[length] ; input length
xor edi,edi ; used to iterate thru input
begin:
movzx edx,byte [esi+edi]
shl edx,10h
xor eax,edx
mov edx,8
_loop:
shl eax,1
test eax,01000000h
jz update
xor eax,ebx
update:
dec edx
jnz _loop
inc edi
cmp edi,ecx
jnz begin
and eax,00FFFFFFh
finish:
cinvoke itoa,eax,checksum,10h
invoke MessageBox,0,0,eax,0
sub eax,eax
ret
int3
section '.data' data readable writeable
length dd 4
_data db 'fasm',0
checksum rb 6
section '.idata' import data readable
library user32,'user32.dll',\
ntdll,'ntdll.dll'
import user32,\
MessageBox,'MessageBoxA'
import ntdll,\
itoa,'_itoa'
section '.reloc' fixups data readable discardable
LG
LG
LG
LG
E
xor ebx, ebxЗамени на
xor eax, eax
xor ebx, ebx
mov eax, ebx
LG
LG
LG
LG
LG
E