問題タブ [dumpbin]
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++ - クリーンな「マングルされていない」関数名をエクスポートするには?
完全にクリーンな関数名をエクスポートしようとしています。これは、GetProcAddress (2 番目のパラメーター) 内で使用する必要があるためです。Kernel32に対してdumpbinをテストすると、クリーンな関数名が表示されるため、これが可能であることはわかっています。
私は周りを見回して多くの「解決策」を見つけました。
1 0 00001810 SomeFunction = _SomeFunction
ただし、次のようにする必要があります。
1 0 00001810 いくつかの関数
これにより、GetProcAddress 関数から呼び出すことができます。これは、「Mangled」名で動作させることができないためです。
これが私がそれを定義する方法です:
モジュール定義ファイルだとダメだな… めちゃくちゃな名前になってしまいました。この方法を使用すると、ほぼそこに到達できますが、「_」が GetProcAddress が関数名をアドレスに解決するのを妨げています。
モジュール定義の出力:
1 0 00001810 SomeFunction = ?SomeFunction@@YAXPAX@Z (void __cdecl SomeFunction(void *))
編集:(関数がコンテンツの上にあることを意味する場合...それは単なるメッセージボックス MessageBoxA() です...そこに何か問題があるはずはありません。)
GetProcAddressLine:
完全な「GetProcAddress」:
windows - プログラムが AnyCPU でビルドされたかどうかを判断する
このコメントを読んで から
「任意の cpu」に組み込まれている場合は、dumpbin ヘッダーに 32 ビットとして表示されます。
通常の 32 ビット プログラムとAnyCPUプログラムを区別する方法を知りたい です。可能であれば、コマンドラインからこれを行うことをお勧めします。私は試した
各タイプのプログラムで、この方法ではそれらを区別できませんでした。
ollydbg - OllyDBG と Dumpbin は同じ逆アセンブルを行わない
ntdll.dll を逆アセンブルして、いくつかのネイティブ API ライブラリを調べようとしています。OllyDBG (loaddll.exe を使用) と dumpbin を /disasm オプション付きで使用してみました。
両方のプログラムの出力が大きく異なるようです。まず、メモリアドレスが一致せず、行数も一致しません。さらに、関数呼び出しは同じではありません。
ここで何か間違ったことをしていますか?どちらの場合も、実際に何を見ているのでしょうか。両方の部分で同一のコードが表示されると思いました。
c - dumpbin がスタティック ライブラリの間違ったターゲット アーキテクチャを報告する
Visual Studio コマンド ラインで次のコマンドを実行すると、dumpbin が x64 を返す理由がわかりません。
これは、Cygwin 32 ビット バージョンでコンパイルされた GMP ライブラリで、次のビルド構成があります。
ビルド システムは、指定されたホストのすべてのファイルを正常にコンパイルおよびビルドしました。それでも、dumpbin は .a または .lib が 64 ビット アーキテクチャ用であると報告します。
出力スタティック ライブラリは libgmp.a ですが、拡張子を .lib に変更し、Visual Studio プロジェクトに問題なくリンクしました。
もう 1 つの重要な注意事項: libgmp.lib を 32 ビット プログラムとリンクすることは問題なく、CFF Explorer によって報告されるように、PE32 ファイルが生成されます。
それはダンプビンの解釈エラーですか、それとも何か重要なものがありませんか?
debug-symbols - ライブラリのシンボル テーブルにアクセスして、ルーチン シンボル名を検索する方法
OpenSSL ライブラリにリンクする Linux 実行可能ファイルで使用される暗号化ルーチンのアドレスを特定する必要があります。openssl シンボル テーブルにアクセスするにはどうすればよいですか?
openssl cyptolib から上記の情報を取得するにはどうすればよいですか?
誰でもこの問題を解決するのを手伝ってもらえますか?
c# - PInvoke 署名がアンマネージド ターゲットの署名と一致しません
modbusm.dll (win-tech.com/html/mbusocx.htm) のラッパー C# ファイルを作成しようとしています。これには dumpbin 出力を使用しています。
modbusm.dll ファイルのダンプ
ファイルの種類: DLL
セクションには、modbusm.dll の次のエクスポートが含まれています
概要
私のC#ラッパーは
コードを実行しているとき
ビジュアルスタジオで、例外が発生しています
PInvoke 関数 'TestApp!TestApp.MbMasterV7::ConnectModbusTCP' の呼び出しにより、スタックのバランスが崩れています。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します。
すべての呼び出し規約を試しましたが、同じエラーが発生しました。modbus プロトコルで使用できる .Net ライブラリは、私が使用している新しい plc タイプには十分ではありません。
c++ - エクスポートされたものとは異なる DLL 関数名
私は、c++ と matlab を使用して他の誰かが開発したプログラムを使用しています。両方のソースコードを持っていますが、何が起こっているのかわかりません...
Matlab は、次のようなものを使用して、c++ から生成された dll を呼び出します。
dll エクスポートでmyCustomCppFunctionが表示されることを期待していましたが、見つかりませんでした。
dumpbinコマンドを実行すると、次のようなメッセージが表示されます。
そう、
myCustomCppFunctionWithADifferentName != myCustomCppFunction
DLL は、私の matlab が呼び出している関数名とは異なる関数名をエクスポートしています。そして、私はマングルされた名前について話しているのではなく、「リンゴ」と「バナナ」のように、両方の名前が 100% 異なります。:-)
どういうわけか、すべてがうまくいきます!しかし、どのように?!?
Matlabでは、呼び出された関数が調査中のDLLからのものであることを確認するコマンドも実行しました....
手がかりはありますか?
c++ - Windows 2012 の「スタート メニュー」または「設定」メニューは RUNDLL32 からアクセスできますか?
ターミナル/RDP セッションで Windows 2012 を使用している場合、[設定] メニューを表示したり (再起動またはシャットダウンするため)、[スタート] メニューをクリックしたり (隅にホバーする必要があります) するのに苦労します。
問題は、RDP、デスクトップ共有、またはその他のリモート ソリューションを使用しているときに、Windows キーを押すことができないことです。
「すべてのプログラムを検索」または「設定」を起動するショートカットを作成し、デスクトップまたはタスクバーに配置したいと考えています。過去に、RunDLL32 に似たようなことをしました。これをカスタマイズするために、私はよく C++ SDK から DUMPBIN を実行します。以下はデスクトップ ウィンドウ マネージャーのダンプです。これは、すべてのアプリケーションを閉じたときに実行されたままになっている数少ないものの 1 つです。
質問
RunDLLステートメントまたは同等のものを介して、Windows 2012でわずかに隠された設定または「スタートメニュー」を開くことは可能ですか?