2017-01-03 4 views
0

を使用して、.mdbデータベースのパスワードにアクセスします。 各データベースには異なるパスワードが設定されています。現在私はパスワードを読むためにAccess Passview http://www.nirsoft.net/utils/accesspv.html(フリーウェア)を使用していますが、私はそれを自動化できるようにしたいので、OLEDB接続文字列の文字列に割り当てることができます。取得アクセスデータベースファイルを読み取るC#アプリケーションを構築するC#

enter image description here

exeファイルが

var proc = new Process 
    { 
     StartInfo = new ProcessStartInfo 
     { 
      FileName = "accesspv.exe", 
      Arguments = _filePath, 
      UseShellExecute = false, 
      RedirectStandardOutput = true, 
      CreateNoWindow = true,  
     } 
    }; 

    proc.Start(); 
    while (!proc.StandardOutput.EndOfStream) 
    { 
     string line = proc.StandardOutput.ReadToEnd(); 
     Console.WriteLine(line); 
     _password2016 = line; 
    } 

これにはない、私は自分のアプリケーションに実装しようとしたものですコマンドラインから実行することができます (実行exeファイルのスクリーンショット)アクセスpassview exeが正常に実行され、パスワードがコンソールに表示されないので、私のために働いてください。

私の主な質問は になります。1.接続文字列の変数にパスワードを割り当てることができますか? 2. accesspv.exeがバックグラウンドで実行されるので、エンドユーザーはそれを見ませんか?

ありがとうございました。

+0

....そうしないと、そこからパスワードをスクリーンスする必要があります..申し訳ありません – BugFinder

+0

私の間違い、そのフリーウェア、オープンソースではない – CM99

答えて

2

このユーティリティのソースコードは、hereで利用できます。あなたはC#で同じコードを書くことができます。そのオープンソースは、コンソール版を作ることができれば何それはその標準出力への書き込みではないとして、単語をピックアップしていないwouldntのよう

public class Program 
{ 
    private static readonly byte[] XorBytes = { 
     0x86, 0xFB, 0xEC, 0x37, 0x5D, 0x44, 0x9C, 0xFA, 0xC6, 
     0x5E, 0x28, 0xE6, 0x13, 0xB6, 0x8A, 0x60, 0x54, 0x94 
    }; 

    public static void Main(string[] args) 
    { 
     var filePath = args[0]; 
     var fileBytes = new byte[256]; 

     using (var fileReader = File.OpenRead(filePath)) 
     { 
      fileReader.Read(fileBytes, 0, fileBytes.Length); 
     } 

     var passwordBytes = XorBytes 
      .Select((x, i) => (byte) (fileBytes[i + 0x42]^x)) 
      .TakeWhile(x => x != 0); 
     var password = Encoding.ASCII.GetString(passwordBytes.ToArray()); 

     Console.WriteLine($"Password is \"{password}\""); 
     Console.ReadKey(); 
    } 
} 
+0

将来の読者への注意:元のVB6ソースコードでは、 "Access 95または97 [データベースファイル]でのみ動作します。 –

+0

Mattさん、ありがとうございました! – CM99

関連する問題