web-dev-qa-db-ja.com

* .dllファイルを実行する方法

DLLファイルがあり、Windowsで実行したい。このDLLは、DLLを個別に実行する必要があると主張するチャレンジサイトから入手しました。

26
vs4vijay

DLLで関数を実行するには、まず、それらの関数がPE( Portable Executable )解析プログラム(たとえば Dependency Walker )を使用しているものを見つけます。次に、 RUNDLL32.EXE with this syntax を使用します。

 RUNDLL32.EXE <dllname>,<entrypoint> <optional arguments>

dllnameはdllファイルのパスと名前、entrypointは関数名、オプションの引数は関数の引数です

38
anon

rundll コマンドを使用すると、DLLファイルで定義された関数を実行できます。 Dependency Walker を使用すると、使用可能な関数を調べることができます。

5
Krumelur

Dllを直接実行することはできず、rundll32.exeを使用してエクスポートされた関数を実行する必要があることを多くの人々が指摘していますが、実行可能ファイルのように実行される実際のdllファイルのスクリーンショットを次に示します。

enter image description here

Dllファイルを直接実行することはできませんが、WinAPI関数CreateProcessを使用して別のプロセスから実行することは可能だと思われます。

https://msdn.Microsoft.com/en-us/library/windows/desktop/ms682425(v = vs.85).aspx

2
Timur Nuriyasov

.DLLファイルは、.EXE/.COM/.BATファイルが実行可能であるという意味で実行可能ではないので、どういう意味かわかりません。

Windows SDKに付属のDependency Walkerアプリケーションを使用して、.DLLに問い合わせて、ファイルによってエクスポートされる機能を確認できます。

0
William Leara

他の実行可能ファイルと同様にDLLを実行することは完全に可能であるため、セキュリティの問題と長い間考えられていたことに注意してください。そのため、追加の特権なしで通常のユーザースペースからDLLを実行できないようにするセキュリティの改善とレジストリハッキングが多数行われました(参照リンクはなくなりました)。

良い例として。私はこれらのハックをしたことを思い出しますが、自分が何をしたか正確に覚えていないので。さまざまなWindowsアプリをGUIから起動することで問題なく動作する場合でも、通常のユーザーシェル環境からDLLを実行できなくなりました。

とはいえ、「 Dynamic-Link Library Security 」および「 防止するベストプラクティスDLLハイジャック 」を必ず読む必要があります。

0
not2qubit

.dllファイルを実行するには、まずエクスポートする関数を見つけます。Dllファイルは、エクスポートカテゴリで指定された関数を実行します。エクスポートする関数を知るには、「filealyzer」アプリケーションを参照してください。 「PE EXPORT」カテゴリの下にあるエクスポート関数。関数名をメモします。次に、コマンドPrompt、Type Rundll32 dllname、functionname(dllname--dllの名前)(Functionname-- PEで見つけた関数の名前エクスポート)注:コマンドプロンプトの場所がdllファイルの場所であることを確認してください

0
pavithran G

DLLを「実行」することはできません。他の回答で説明されているように、DLL内で関数を実行できます。 .EXEファイルと.DLLファイルはフォーマットの点では基本的に同一ですが、.EXEの際立った機能は、指定された「エントリポイント」が含まれており、EXEが作成されたことを実行することです。 DLLには実際には似たようなものがありますが、「dll main」の目的は初期化を実行することであり、DLLの主な目的を果たすことではありません。それは、(おそらく)それに含まれるさまざまな他の機能のためのものです。

実行する機能がわかっている場合、DLLによってエクスポートされた任意の関数を実行できます。 EXEには多くの機能が含まれている場合がありますが、「実行」するだけで実行されるように特別に指定されているのは1つだけです。

0
Zenilogix