I use Translhextion primarily for hex editing, but a lot of people prefer windhex32. If you're going to be corrupting ROMs though, it isn't just looking in a hex editor and changing random bytes, you'll need to use a corrupter program. I've had good experience with
ROM Corrupter.
The basic method is to corrupt a certain range of bytes (say 1000) at a time starting at the beginning of the ROM. The program I linked will automatically open the ROM in an emulator of your setting. My general technique is to create a savestate before the place in game I'm trying to corrupt. So if it's a menu I savestate in a place I can open the menu. If whatever you're trying to change breaks or changes, note the area. Once you find a range that breaks, narrow it down (try 500 bytes, then 250, etc) until you find the exact location that breaks or changes the game. Sometimes you'll have just overwritten a vital piece of code or other data and not what you are looking for, in this case just try the next range.
Corrupting is a bit of an art, so don't lose hope if you can't easily find what you're looking for. Experiment with different sizes of ranges and different values of bytes to use for corruption. For example, if you change everything to 00s and 00 is the signifier for the end of a string, it may break more things than using the table values from A-Z.
As far as stat hacking goes, I'd probably go about it by finding stat values in RAM with a cheat search then tracing backwards with a debugger. If something like that is above your grasp, your only other option is to master corruption.