The tried and true method is to just hit training mode (or have someone test locally with you in vs), do an attack, have your opp take the hit or block, then have them try to reversal with various moves from various characters. Rinse and repeat with all the normals and specials from all the characters that you want to know about. After so many repetitions you'll have a solid idea of what is and is not safe. It's much more time consuming than just looking at a table with all the frame data, but it's a solid way to intuitively grasp the frame data of a move without actually knowing it.
If you wanted to go really hardcore you could setup some video capture equipment/software and record the moves at 60fps, then frame step the recording (one frame at a time) until you see the hitspark (or I guess in MK's case, the "bloodspark"). That number would be the startup frames of the move. From there you can continue to count the frames of the move until the animation resets to neutral, the sum of which plus the startup would be the moves total frames. I'm not sure how one would go about figuring out exact active and recovery frames though. Maybe you would just have to rely on intuition for those parts. Maybe setup some tests to see how good a move is in a meaty situation to get a basic idea of how long it's active frames are and perhaps some startup tests to see about how good or bad a moves recovery is. Say you determine that a certain chars uppercut comes out in 4 frames (using the frame stepping method above) and from experience you know it can be used to punish a certain blocked special from another char. We would then know that the special that was punished is -4 or more on block. You could then test it with faster and slower moves after having determined their startup frames to see what can and can't punish it, which would eventually tell you the exact frame disadvantage the given special is on block (that is to say, if the uppercut that comes out in 4 frames can punish the special but a different move that comes out in 5 frames can't, then you know that the special is exactly -4 on block). There are other considerations beyond the basic math of course, like odd hitboxes and such, but that's the basic gist of it.
Of those two methods I would personally stick with just playing around in training mode or with a friend though. The other way is too much work.
If you wanted to go really hardcore you could setup some video capture equipment/software and record the moves at 60fps, then frame step the recording (one frame at a time) until you see the hitspark (or I guess in MK's case, the "bloodspark"). That number would be the startup frames of the move. From there you can continue to count the frames of the move until the animation resets to neutral, the sum of which plus the startup would be the moves total frames. I'm not sure how one would go about figuring out exact active and recovery frames though. Maybe you would just have to rely on intuition for those parts. Maybe setup some tests to see how good a move is in a meaty situation to get a basic idea of how long it's active frames are and perhaps some startup tests to see about how good or bad a moves recovery is. Say you determine that a certain chars uppercut comes out in 4 frames (using the frame stepping method above) and from experience you know it can be used to punish a certain blocked special from another char. We would then know that the special that was punished is -4 or more on block. You could then test it with faster and slower moves after having determined their startup frames to see what can and can't punish it, which would eventually tell you the exact frame disadvantage the given special is on block (that is to say, if the uppercut that comes out in 4 frames can punish the special but a different move that comes out in 5 frames can't, then you know that the special is exactly -4 on block). There are other considerations beyond the basic math of course, like odd hitboxes and such, but that's the basic gist of it.
Of those two methods I would personally stick with just playing around in training mode or with a friend though. The other way is too much work.