問題タブ [opcodes]
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.
android - Dalvikオペコードを実行するにはどうすればよいですか
Android上のアプリケーション内から、実行中のDalvikVMインスタンスに対して直接オペコードを実行したいと思います。Casm関数に似たものを探しています。dalvikのオペコードのリストがありますが、それらを直接実行する方法、またはそれらを.classファイルに書き出して、実行中のアプリケーション内からdalvikvmなどのある種のVMCLIコマンドに対して実行する方法に慣れていません。
opcodes - オペコードをファイルに印刷する
16進エディタを開き、手動でオペコードを入力して保存すると、興味があります。1をレジスタ1に移動し、2をレジスタ2に移動してから、addを呼び出すなど、プログラムが機能するようになりますか?それとも、これを自動化することで、くだらないコンパイラができますか?
編集:OSを忘れてしまったので、Mac OS XとLinuxを自由に使用でき、CPUとしてx86を使用できます。
.net - ILオペコードの変更
言語:VB.NET 3.5
ILオペコード:
に対応:
少なくとも私はそう信じています。代わりに、これを反映するためにILにどのような変更を加える必要がありますか。
c# - 同じタイプのILGeneratorで動的に生成されたメソッドを呼び出す
通常、同じタイプのメソッドを記述している別のILGeneratorオブジェクトで動的メソッドを呼び出したい場合は、次のようにします。
ただし、次の問題に直面しました。別のフレームワークによって生成されているため、呼び出したいメソッドのメソッドビルダーへの参照を取得できません(現在のTypeBuilderへの参照のみを取得します)。このメソッドは、現在の動的タイプの基本クラスで保護された仮想(および参照を取得できないメソッドビルダーでオーバーライド)として定義されており、次のようにすることで参照を取得できます。
問題は、これがオーバーライドされたメソッドではなく、基本タイプのメソッドを呼び出すことです。
メソッドビルダーへの参照を、それを定義したタイプビルダーへの参照のみを持つようにする方法はありますか?または、'MethodInfo'オブジェクトを渡さずにILGeneratorを使用してメソッドを呼び出す方法はありますか?
.net - ILプレフィックスオペコードは何をしますか?
私はILをいじってみましたが、Prefix1のようなOpCodeに気づきました。ドキュメントには、基本的にそれについて心配しないようにと書かれています。当然、これにより、これらのさまざまなプレフィックスOpCodeが実際に何をするのかについて非常に興味があります。グーグルで簡単に検索しても何も見つからなかったので、ここで専門家に聞いてみようと思いました。誰かがこれらが何を意味するのか知っていますか?
reflection.emit - Reflectio.emit で変数を格納する System.AccessViolationException
空き時間にreflection.emitでコンパイラを構築していて、理解できない問題に遭遇しました。
ちょっとしたコンテキストですが、いくつかの型を持つランタイムがあり、そのうちの 1 つは Float2 です。これは、2 つの float 値 (X と Y) を持つ単純なベクター構造体です。値を入れ替えることができるプロパティをいくつか作成しました (hlsl 風)。たとえば、新しい Float2(1.0f, 2.0f) がある場合、(new Float2(1.0f, 2.0f)).YX のようなものを作成すると、Float2(2.0f, 1.0f) が取得されます。 '私の言語でこのタイプを使用しており、現在このケースをテストしています (言語の細かい詳細は省略されています):
新しい呼び出しで float2(1.0, 2.0) を変換し、.yx で Float2 型のプロパティ YX にアクセスしています。
問題は、「System.AccessViolationException : 保護されたメモリの読み取りまたは書き込みを試みました。これは、多くの場合、他のメモリが破損していることを示しています。」というメッセージが表示されることです。このようなものを作成すると、理由がわかりません。
すべてがうまくいきます。
私が生成しているILコードは次のとおりです(問題は「L_0014:stloc.0」で発生すると思いますが、なぜ発生するのかわかりません):
検証の結果:
[IL]: エラー: [オフセット 0x0000000F] [値 'Bifrost.Psl.Compiler.Runtime.Float2' が見つかりました][値 'Bifrost.Psl.Compiler.Runtime.Float2' の予想されるアドレス] スタックに予期しない型があります。
c#-4.0 - .Net 4.0 で検証できない DynamicMethod コード (ref 'this' ポインターが見つかりました... ref '<>f__AnonymousType1` が必要です)
このソリューションを使用して、reflection.emit を使用して匿名型を辞書に変換していました。3.5 から .Net 4.0 に変更するまでは問題なく動作していました。
現在、「System.Security.VerificationException: 操作によりランタイムが不安定になる可能性があります」というメッセージが表示されます。エラー。
匿名で読み込まれた動的メソッドを動的アセンブリでホストされるメソッドに変換して保存し、それに対して peverify.exe を実行して何が問題なのかを調べました。
取得: [IL]: エラー: [DynamicAssemblyExample.dll : MyDynamicType::MyMethod][offs et 0x0000000D][found ref ('this' ptr) 'MyDynamicType'][expected ref '<>f__AnonymousType1`3[System.String, System.Int32,System.Byte]'] スタックに予期しない型があります。[IL]: エラー: [DynamicAssemblyExample.dll : MyDynamicType::MyMethod][offs et 0x0000000D] メソッドが表示されません。2 エラー DynamicAssemblyExample.dll の検証中
コード:
実際のプロパティへのポインタを逆参照する方法はありますか? それとも、どういうわけかキャストする必要がありますか?ポインタはありますか?
よろしく!
android - Androidのsmaliの質問
私は現在、smali / "code obfuscator"について調査を行っており、現在、逆コンパイルされたソースコードに慣れようとしています。このために、私は簡単なアプリを作成し、smaliで逆コンパイルしました。
後でコード難読化ツールを使用した後、セキュリティを改善して(逆コンパイルに対して)比較するために、逆コンパイルされたソースコードを理解しようとしています。ほとんどのsmaliソースコードはそれほど難しくはありませんが、それでも図のフォーマット変換で問題が発生することがあります。
次の行など、私に説明してもらえますか。値は5になるはずですが、これがどの種類のバイナリ形式かはわかりません。それを計算する方法0x4014=5 ???
添付されているのは、このテスト関数の完全なjavaおよびsmaliコードソースです。
Javaソース:
Smaliソース:
assembly - Lua 5.1 アセンブラーは存在しますか?
退屈から、Lua 5.1 VM オペコードをしばらく勉強してきました。
そして何かコーディングしてみたい!
Lua Assembly を Bytecode にアセンブルする既存の方法はありますか?
c - ゲームボーイ カラー エミュレータ オペコードの自動化
私は C でゲームボーイ カラー エミュレーターを書いています。この世界に自己紹介するためだけに、それは解釈され、動的または静的な再コンパイルはありません :P
今、私はすべての CPU オペコードを C コードで実装するという退屈な作業に取り組んでいます。これらすべてを記述しなければなりません: http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.htmlそして、私はしたくないそれらを別のエミュレーターから取得します。
問題は、オペコードの書き込みを自動化する方法があるかどうかです。ばかげた質問かもしれませんし、ばかげた答えになるかもしれませんが、私はできるだけ仕事を減らしたいと思っています。:)