問題タブ [reflexil]
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.
c# - 「モジュールにはアセンブリ マニフェストが含まれている必要があります。」
パッチを適用しようとしている C# .NET DLL があります。私は、(難読化解除のための de4dot と共に) Reflexil プラグインを備えた .NET Reflector を選択しました。Reflector は、私が見たいと思っていた C# をうまく表示することができ、Reflexil で CIL アセンブリにパッチを当てることができました。DLL を新しいバイナリとして保存しようとしたとき、Reflexil は [Signed Assembly] ダイアログ ボックスを表示し、[Remove Strong Name] を選択しました。
アセンブリをロードするコードを実行しようとすると、次のエラーが表示されます。
System.BadImageFormatException: ファイルまたはアセンブリ 'MyAssembly、Version=1.0、Culture=neutral、PublicKeyToken=somehash' またはその依存関係の 1 つを読み込めませんでした。モジュールには、アセンブリ マニフェストが含まれている必要がありました。
この問題を解決するにはどうすればよいですか?
さらに、パッチを適用した DLL で peverify.exe を使用すると、次のエラーが表示されます。ファイルが見つからないか、ヘッダーが正しくありません。これは、Reflexil のパッチ適用プロセスに何か問題があると私に思わせていますか?
c# - 「名前空間には、フィールドやメソッドなどのメンバーを直接含めることはできません」
Reflexil を使用して NET.reflector にこのコードを使用しようとしています。コードをこれに置き換えようとしています:
}
しかし、コンパイルしようとするとエラーが発生します。
これは私が思うUnityコードです。私はそれほど経験がありません。誰かが私のためにこれを修正できますか? または、何をすべきか教えてください。ありがとう!
.net - Reflexil でコードを挿入するときに .NET バージョンを選択する
.NET 2.0 でコンパイルされたソース コードのない .NET dll ファイルがあります。この dll にいくつかのフィールドを追加する必要があったため、Reflexil を (JustDecompile と組み合わせて) 使用しました。Reflexil でインジェクト フィールド オプションを使用しました。保存して再読み込みしたときに参照を確認したところ、「mscorlib 4.0.0.0」が追加されていることがわかりました。Reflexil にフィールドを注入してもらいたいのですが、.NET 4.0 の依存関係は追加しないでください。.NET 2.0 として再コンパイルする設定を探しましたが、これはどこにもありません。
関数を編集するとき、オプションとして使用するコンパイラを選択できます (2.0、3.5、4.0)。フィールドを追加するときに、これと同じオプションが必要です。
誰でもこの問題についての洞察を持っていますか?
plugins - .NET リフレクター + Reflexil プラグイン
reflexil v2.0 プラグインをインストールしたばかりですが、メソッドを強調表示した後にクリックすると、削除、名前変更、リフレクター オブジェクト モデルの更新の 3 つのサブメニューしか表示されません...名前を付けて保存、挿入メニューが表示されません..これを解決するのを手伝ってくれる人はいますか?
cil - Reflexil を使用して IL の CommandText に文字列を割り当てる
少し前に開発されたアプリケーションのクエリを編集する必要があります。しかし、ソースコードはなく、コンパイルされた dll しかありません。以下は、Telerik JustDecompile によって逆コンパイルされたソースです。
Reflexil で得られる IL は次のとおりです。
今私が欲しいのは:
com.CommandText = "Select * form tbl_user where u_name = 'admin'"
オフセット115の後に文字列をロードしようとしました
しかし、出力は
そのため、変更を削除し、オフセット 117 の後に次のように同じ文字列を追加します。
出力が変更され、私が望むものにいくらか近づいたように感じますが、それでも正しくありません。出力は次のようになりました。
私が欲しいのは:
com.CommandText = "select * from tbl_user where u_name = 'admin'"
また、オフセット 122 の後に callvirt オペコードを追加しようとしましたが、ロードされた .NET フレームワークが 4.6.1 の場合、System.Data.SqlClient.SqlCommand で set_CommandText メソッドを見つけることができませんでした。
これどうやってするの?よろしくお願いします。ありがとう
c# - 署名済み dll にパッチを適用する方法
古いバージョンの DevExpress に依存するサードパーティ ライブラリを使用する C# プロジェクトがあります。このバージョンの DevExpress の dll(DevExpress.Utils.v9.2.dll) にバグがあります。.NET Reflector と Reflexil を使用して dll にパッチを適用し、パッチを適用した dll を使用して古いものを置き換えます。次に、ソリューションを再構築すると、Visual Studio に次のエラーが表示されます。
エラー CS0012 タイプ 'XtraForm' は、参照されていないアセンブリで定義されています。アセンブリ 'DevExpress.Utils.v9.2, Version=9.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a' への参照を追加する必要があります。
問題の原因となる元の dll が署名されているようです。厳密な名前を削除しようとしましたが、機能しません。解決方法は?