From the few that I did back in the day, I would:
Use MONST to work out where in the code the offset was and/or work off a dead listing created using EasyRider.
Get the offsets to where the bytes needed to be altered.
Using a standard front-end bit of code (nicked from the original EXECHEAD.S from Pompey Pirates), I added all kinds of extra options to display the cheats I'd coded. The patches were put into the same code and assembled with the original program as an unpacked binary stored as an INCBIN. Then the program was packed and made ready for distribution.
It's better looking at the examples, than me trying to describe the front-end, so see the attached
They're not top class as I didn't know (still don't!) how to do some of the more advanced trainers/cracking that others could easily do.
My way was "if it interested me, I'd do it!"
You do not have the required permissions to view the files attached to this post.