プログラムカウンター(命令ポインター)の内容を変更したい。C でシステム シグナル ハンドラをオーバーライドすることで、システム スタック フレームでポインタを取得できると考えました。そこから、関数の戻りアドレスを取得して変更できます。
ただし、スタック内のポインターを取得しましたが、リターンアドレスがスタックフレームのどこに格納されているか正確にはわかりません。
void signal_handler(int signal){
char* ptr = (char*) & signal;
// As, signal is stored on the paramter list of the stack,
// I get the address in the current stack frame. From , here
// I want to change the return address(that is stored in the
// current stack frame).
}