Slightly tangential here, but why do you need a square wave? It has infinite bandwidth and can therefore never be generated perfectly, a good square wave will require lots of bandwidth (compared to the period of the wave).
Do you just need an edge?
Regardless, I’d be looking in RS, Maplin etc. for a cheap signal generator and oscilloscope. Unless you have ages to spend getting your hands dirty there is most likely no point in trying to build one for yourself.
12V peak to peak is a hell of a lot of power though (at least into a standard 50 Ohm load which is what most test equipment is designed for). You may well need an amplifier to get that amount of power, which would probably need to be linear-ish to get you a decent square wave. Do you know what kind of a load you are driving?
Also, to measure the response of your system, you will need either an equivalent time scope (cheapish), a real-time scope (more expensive) or some kind of spectrum analyser (in the middle). Difficult to know what to recommend without knowing the details of what you want to measure.
One problem you will have is that the lowest specced test equipment at the minute will have MHz of bandwidth. Getting down to the 100Hz range might be a big fiddle.