0

情報セキュリティに関連するいくつかのテストを行っていますが、次のような状況に遭遇しました。これを間違った場所に投稿していたら申し訳ありません。問題があればお知らせください。修正します!

WIFIパスワードのクラッキングについて調査したところ、aircrack-ngアプリケーションスイートを見つけ、しばらく研究した後、家のwifiパスワードを見つけるというミッションをなんとか完了しましたxD

これ以上苦労することなく、以下に私の問題を詳しく説明します。

aircrack-ng は、パラメーターでテストするパスワードを受け取ることができます。私の質問は次のとおりです。

C# コンソール アプリケーションからこのパラメーターを渡す方法

いくつかの方法を試しましたが、成功しませんでした。

私の最後の試みでは、必死になって、windows のuser32.dllライブラリで利用可能なsendmessage関数を使用しました。

Obs : 私は Windows 用にコンパイルされた aircrack バイナリを使用してい ます。

class Program
{
    public const Int32 WM_COPYDATA = 0x4A;

    [DllImport("user32.dll")]
    static extern long SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
    [DllImport("user32.dll", CharSet = CharSet.Unicode)]
    static extern IntPtr FindWindow(string classname, string windowname);

    public static IntPtr IntPtrAlloc<T>(T param)
    {
        IntPtr retval = Marshal.AllocHGlobal(Marshal.SizeOf(param));
        Marshal.StructureToPtr(param, retval, false);
        return (retval);
    }

    public static void IntPtrFree(IntPtr preAllocated)
    {
        if (IntPtr.Zero == preAllocated) throw (new Exception("Go Home"));
        Marshal.FreeHGlobal(preAllocated); preAllocated = IntPtr.Zero;
    }

    public struct COPYDATASTRUCT
    {
        public IntPtr dwData;
        public int cbData;
        [MarshalAs(UnmanagedType.LPStr)]
        public string lpData;
    }


    static void Main()
    {
        string msg = "123456";
        var cds = new COPYDATASTRUCT
        {
            dwData = new IntPtr(3),
            cbData = msg.Length + 1,
            lpData = msg
        };
        IntPtr hWnd = FindWindow("ConsoleWindowClass", @"C:\WINDOWS\system32\cmd.exe aircrack-ng");
        IntPtr cdsBuffer = IntPtrAlloc(cds);
        SendMessage(hWnd, WM_COPYDATA, IntPtr.Zero, cdsBuffer);
    }
}

現在これを行うアプリケーションがあります。これはcrunchと呼ばれ、基本的に単語ジェネレーターです。また、コンソールから次のコマンドを使用して、このパラメーターを aircrack に送信できます。

crunch 8 8 0123456789 | aircrack-ng -a 2 my-handshake-capture.cap -b my-router-mac-addres -w -

最後の-は aircrack では crunch からのパラメーターに置き換えられます。

githubで公開されているCrunchプロジェクトで調べてみましたが、C言語で書かれていて、私には複雑です。誰でも私を助けることができますか?事前にどうもありがとうございました!

4

1 に答える 1