GDB を使用して実行中のプロセスにコードを挿入しようとしていますが、コードを実行しようとするたびに SIGSEGV を取得しています。私はubuntu(Oneiric)を使用しています。Python スクリプトを使用してコードを環境変数にエクスポートして出力し、gdb 内x/50s *((char**)environ)
から .
したがって、私が行うx/30i *(addressOfCode)
と、そこにあるアセンブリ命令は、実行したいものと完全に一致します。したがって、コードの開始点にブレークポイントを挿入し、そこにジャンプして stepi を実行すると、segfault が発生します。さらに、メモリ内の場所を選択していくつかの NOP を挿入し、そのうちの 1 つで中断し、そこにジャンプしてステップ実行すると、セグメンテーション違反も発生します。
どうすればこれを回避できますか? プロセスの指定されたメモリから飛び出しているという理由だけで、セグメンテーション違反を起こしているのでしょうか? これを回避するには、どのようなオプションがありますか?
ご協力いただきありがとうございます!