[spam][crazy] bomb malware

Karl gmkarl at gmail.com
Tue Dec 14 03:48:49 PST 2021


There are a handful of different ways to notate assembly code.
Luckily, I stumbled on what appears to be the same one.

https://www.cs.virginia.edu/~evans/cs216/guides/x86.html#memory

Some examples of mov instructions using address computations are:
mov eax, [ebx]	; Move the 4 bytes in memory at the address contained
in EBX into EAX
mov [var], ebx	; Move the contents of EBX into the 4 bytes at memory
address var. (Note, var is a 32-bit constant).
mov eax, [esi-4]	; Move 4 bytes at memory address ESI + (-4) into EAX
mov [esi+eax], cl	; Move the contents of CL into the byte at address ESI+EAX
mov edx, [esi+4*ebx]    	; Move the 4 bytes of data at address
ESI+4*EBX into EDX

So, [var] treats var as the memory address to read from or write to,
and the MOV statements above are not dereferencing the pointer, but
rather adjusting where it is pointing.


More information about the cypherpunks mailing list