2016-09-17 1 views
-1

こんにちは私のc/C++プログラミングスキルには本当に助けが必要です。バイナリファイルをロードしなければなりません。おそらく単純な "hello World"をバッファから直接実行する必要があります。したがって、バイナリファイルをバッファにロードし、バッファへのプログラミングポインタを設定しようとしました。しかし、正しく動作しません。役に立った提案を私に教えてください。C++ - メモリからバイナリファイルを実行

+2

'ret =(int *)&ret + 2; (* ret)=(int)* buffer'..それは何をすべきか? –

+3

プラットフォームによっては、メモリバッファの実行許可ビットが設定されていない可能性があります。これはC++標準外であり、OS固有のAPIを使用する必要があります –

+1

言語はありませんC/C++!これは純粋なCのように見えますが、明示的にC++を宣言すると、それはあなたが意味することです。 – Olaf

答えて

0

プログラム命令は、テキストコードセグメントと呼ばれるプロセスメモリの読み取り専用領域に配置され、コンパイラによってEXEが生成されると決定されます。 OSは単にスタックやヒープ内のプログラム命令を期待しません!それ以外のウイルスは非常に簡単に作られていたでしょう....

+0

はい、私は理論的な概念に精通しています。しかし、おそらくバッファオーバーフローなどの可能性があるはずです。すでに述べたように、実際的な例があり、私はそれがどのように機能するのか理解しようとしています。 – Bubbsi

関連する問題