The fundamental skills are:
A good knowlege of how the hardware protection mechanisms work.
A good knowlege of what any instruction actually does.
A good knowlege of a few primary software conventions:
How a stack is used and what information is in it.
How to use the stack data for debugging.
How to find the program's variables in storage.
How to obtain the above documentation for some IBM languages.
How to collect a dump of a system at the point of failure.
How to use the available analysis tools.
How to determine the owner of a part of storage,
and which processes have access to that storage.
And that's what this material is designed to teach!