2016-07-24 4 views
1

どうすれば関数を取ることができますか?たとえばvoid example() { int i = 1; }をバイト換算しますか?だから、(例えば)このような何か:その後、C++関数の同等のバイトを取得して実行する

0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42 

そして、彼らは元の関数void example() { int i = 1; }であるかのようにこれらのバイトを取り、それらを実行。これは可能ですか?

+0

コンパイラとCPU(あなたが設計した存在またはバイトコード)エミュレータを開発したいのですか?それは多くの努力で可能になるはずです。 – MikeCAT

+0

サンプル関数は、おそらくNOPとして出力されます。 –

+2

これはあなたのコンパイラが行うことと全く同じです – user4759923

答えて

1

私の知識を1として、このバイトの方法では動作しません

Uでし可能関数のアドレスを取得し、関数ポインタ に同じを格納し、関数ポインタを呼び出すことで機能を実行

関数ポインタを検索してみてください

関連する問題