問題タブ [bytecode-manipulation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
string - Luaバイトコードの文字列(コンテンツとサイズ)を変更して、それが正しいままになるようにすることは可能ですか?
Luaバイトコードの文字列(コンテンツとサイズ)を変更して、それが正しいままになるようにすることは可能ですか?Luaバイトコードの文字列を翻訳することです。もちろん、すべての言語が各単語に対して同じサイズであるとは限りません...
python - バイトコードの書き換えに importlib を使用するには?
Python 2.x でimportlibを使用して、インポートされたモジュールのバイトコードをオンザフライで書き換える方法を探しています。つまり、インポート中のコンパイルと実行ステップの間に独自の関数をフックする必要があります。それに加えて、組み込みの機能と同じようにインポート機能が機能することを望みます。
私はすでにimputilでそれを行っていますが、そのライブラリはすべてのケースをカバーしているわけではなく、とにかく非推奨です。
perl - Perlのcoderefから構文ツリーを取得するにはどうすればよいですか?
Perlで任意のPerlプロシージャ(coderefsによって取得)のコードを検査して操作したいと思います。そのためのツール/モジュール/ライブラリはありますか?B :: Conciseに似ていますが、B :: Conciseが出力にコードを出力する点が異なりますが、プログラムで検査したいと思います。
こんな感じで使いたいです。F
たとえばと呼ばれるcoderefが与えられます。10個の引数付き:
F1
関数stを作成したいのですが。
つまり、2つの部分に「因数分解」します。2つ目は依存せずx1
、1つ目は可能な限り単純です(私はF
巨大な製品として構築されていると思います)。
これが必要なアプリケーションは、メトロポリスサンプリングアルゴリズムの最適化です。分布をサンプリングしていると仮定しますp(x1 | x2 = X1, x3 = X3, ...) = f(x1, x2, x3, ...)
。アルゴリズム自体は不変です。乗法定数係数やその他の変数はアルゴリズムによって変化しないため、依存しない部分x1
(つまり$c
上から)を評価する必要はまったくありません)。
同時確率は、例えばを持っているかもしれません。次のフォーム:
p
また、特定の因子が依存する変数の注釈が付いた因子で構成されるオブジェクトとして構築することも検討します。これでも、コードのイントロスペクション(変数を自動的に決定する)の恩恵を受けます。
java - シリアル化される可能性のあるクラスでバイトコード拡張技術を使用することは安全ですか?またその理由は?
これはまだ試していませんが、リスクがありそうです。私が考えているケースは、JiBX を使用して単純な VO クラスをインストルメント化することです。これらの VO は、AMF やその他のスキームでシリアル化される予定です。バイトコード拡張のような裏方の作業を行うと、一般的に何かが台無しになる可能性があるという私の疑いを確認または否定し、その理由に関する背景情報を提供できる人はいますか? また、JiBX の具体的な事例にも興味があります。
java - Double.doubleToLongBits に相当する Obj C
私はいくつかの Java コードを Objective C に移植していますが、頭痛がするほどのビット単位の知識があります。Double.doubleToLongBits および Float.floatToIntBits に相当する objC を教えてもらえますか?
java - ASMifierClassVisitor の使用中にエラーが発生しました
ASMifierClassVisitor ツールを使用してクラス作成の asm コードを取得したかったのですが、使用するとエラーが発生します
コードを使用しました
ここで何が問題なのですか?
java - Java 逆アセンブル 再アセンブル
Java クラス ファイルを取得して逆アセンブルし、Java バイトコード出力を微調整してから、再度アセンブルしたいとします。
定数プール テーブルのシンボルの名前を変更する必要があります。また、ソースコードにアクセスすることもできず、逆コンパイラを使用するのはやり過ぎのようです。私は何かを最適化しようとしているわけではありません - Java はそれで素晴らしい仕事をします。
これを行う簡単な方法はありますか?分解または再組み立て用のツールをいくつか見つけましたが、両方用のツールはありません。または、バイトコードをテキストで表現するために同じ形式を使用しているように見えるツールのペアがありません。
java - クラス内のフィールドのバイトコード拡張
クラスフィールドが読み書きされるたびにコードを実行するバイトコード拡張を介して、クラスに「フック」を追加することは可能ですか?たとえば、新しい値がフィールドに割り当てられるたびに、「ダーティ」フラグを自動的に設定したいと思います。
もしそうなら、どのライブラリがこの機能を実装するのに最も適していますか?
java - バイトコード操作の危険性は何ですか (ある場合)?
バイトコードの拡張は、非常に興味深い Java 手法のように思えますが、少し「黒魔術」のようにも感じられます。それを使用することの欠点はありますか (ソース コードからは明らかではない機能がクラスに追加されるという事実以外に)?
セキュリティ、シリアル化などで問題が発生しますか?
java - フィールドの値の設定をインターセプトするためのバイトコード操作
ASM
またはのようなライブラリを使用して、cglib
バイトコード命令をクラスに追加して、クラス フィールドの値が設定されるたびにコードを実行する方法はありますか?
たとえば、次のクラスがあるとします。
コードのセクションに次の行が含まれているとします。
person.name = "Joe";
dirty
フラグが に設定されるように、この命令をインターセプトする必要がありtrue
ます。クラスメソッドはバイトコード操作によって変更できるため、セッターメソッドでこれが可能であることはわかっていますが、フィールドperson.setName (“Joe”)
に対しても同じことをしたいと考えています。
これは可能ですか?
編集
クラスにアクセスするコード セクションの変更を避けたいので、傍受コードをクラスの一部として保持する方法を探していPerson
ます。Python クラスのプロパティに似た、フィールド アクセス用の疑似メソッドはありますか?