Are all steganography tools alike?
No. There are various techniques you can use to embed data into an image starting from just embeding black-white images in the least significant bit of each color channel to more sophisticated methods to methods that only work for specific image formats etc. There are methods that require a key and methods that don't require a key (or passphrase).
Not all stegonagraphy uses images. You can use txt files, you can use html files, you can use word documents, you can use audio files... you can hide pretty much "anything" in "anything" - but it depends on how much secret data you can hide in non-secret data so depending on the methods you use you're limited in how much data you can hide.
If you want to know how each individual tool works... you gonna have to read the documentation of the individual tool and hope they document how they do it or you gonna have to read their source code.
Addendum:
People think data is somehow "typed" or has an innate format of some sort. But this is obviously false. If you see 8bits 10101010
you have absolutely zero clue as to what these bits represent. It could be a character, it could be 8 single bits, it could be 2 4-bit unsigned numbers, it could be a pixel in an image, it could be 8 pixels in a black white image it could be a 1 byte instruction. Bits have no inherent meaning. WE give them meaning by associating a type & encoding with it. That's why you can hide almost anything in anything.
You can hide text in html by abusing the fact that multiple spaces are rendered as a single space so when you open the file in a browser you see nothing. But these spacings you can use to encode bits. For example: 2 spaces -> 1 bit, 3 spaces -> 0 bit so this text in html:
This is a short text.
Which is rendered as
This is a short text
BUT
This is a short text.
1 0 1 0
contains 4 bits of hidden data. You can give meaning to things in some format that don't have meaning in their intended format. Or you can abuse the fact that humans can't see the difference between a pixel 11111111
and 11111110
so you can use the last bit to encode your data.