2016-12-02 6 views
0

私は.exeファイルにコードセクションを追加するためにCFF Explorerを使用しました。セクションの特性を0x60000020(実行可能、読み取り可能、コード含む)に設定し、そこでIDAを使用してダミーコードを作成しました。`jmp`のアクセス違反が追加されたセグメント

しかし、元の.textセグメントのコードにjmpを注入すると、アクセス違反が発生していました。それは私のためのオフセットを生成したので、私は、バイナリにパッチを適用するIDAを使用しますが、右のようだ:

jmp  far ptr 6:75D100h 

たオペコードは右、あまりにもなります

EA 00 D1 75 00 06 00 

しかし、すぐに私はそれを打つようジャンプ - "命令は0xFFFFFFFFのメモリを参照し、メモリは読み出すことができません"。私は役に立たないオフセットを少し試しました。追加されたセグメントは、メモリに適切にロードされているようです。

は、私がここで行方不明です何:)

+2

「6」は正しいセグメントセレクタだと思いますか? – Jester

+1

@Jesterが実際にはそうではありません。正しいものが5つのように見えますが、segfaultは存続します。 なぜ私はIDAが6をそこに置くのか分からない、 – Ap31

+2

'5'も非常に疑わしいと思う。 '7 'は、あなたがLDTに新しい記述子を割り当てた場合に動作します。 – Jester

答えて

0

に答えとしてだけでこれをマークするために任意のヒントのために感謝される - ソリューションは、@Jesterと@RossRidgeによって提案されているように、jmp farをドロップしました。使用:

jmp  near ptr 75D100h 

すべてを修正しました。 IDAの行動はやや厄介かもしれないと言わなければならない。

関連する問題