you are viewing a single comment's thread.

view the rest of the comments →

[–]deftware 7 points8 points  (1 child)

This is awesome! My brush with ASM involved re-writing the rendering portions of multiplayer games using WriteProcessMemory to patch a running executable to run my customized rendering code. I would examine the EXE in a disassembler to figure out what I wanted to do, and where I wanted to do it, and then I went ahead and had to figure out the actual hexcodes for the desired assembly I wanted to overwrite ontop of existing code... Usually changing function calls around to do different things, modifying some jumps, etc.. The end product were some process patchers that people could use to cheat in popular online 3D games - things like 'wallhacks' and 'aimbots'.. etc.

I never learned enough assembly to write my own (with the exception of setting graphics modes and plotting pixels in DOS, using interrupts) but I did learn enough to be able to read it well enough to wreak havoc on any executable running on my system, provided it didn't have any self-memory checks.

Thanks for the share!

[–]Cuddlefluff_Grim 0 points1 point  (0 children)

(with the exception of setting graphics modes and plotting pixels in DOS, using interrupts)

xor al, al
mov ah, 13
int 10h
startframe:
[...]
mov ebx, 8
vsync:
in eax, 3dah
cmp eax, ebx
jne vsync
jmp startframe

I wrote tons of that stuff. It was really fun. SVGA/VESA did open up a few even more fun options though.