2017-06-25 3 views
0

so dass im Grunde ive versucht, ein Programm zu erstellen, das eine DLL injiziertC# webclient Downloads Hälfte dll

jetzt im, am webclient Download Teil, weil es nur Downloads im Grunde „halben“ meine dll steckte

(dll ist Größe 470 kb ist aber die heruntergeladene dll ist nur 216 kb)

Code:

(stahlen diese von Stackoverflow)

public void DownloadFile(string sourceUrl, string targetFolder) 
     { 
      WebClient downloader = new WebClient(); 
      // fake as if you are a browser making the request. 
      downloader.Headers.Add("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0)"); 
      downloader.DownloadFileCompleted += new AsyncCompletedEventHandler(Downloader_DownloadFileCompleted); 
      downloader.DownloadProgressChanged += 
       new DownloadProgressChangedEventHandler(Downloader_DownloadProgressChanged); 
      downloader.DownloadFile(new Uri(sourceUrl), targetFolder); 
      // wait for the current thread to complete, since the an async action will be on a new thread. 
      while (downloader.IsBusy) { } 
     } 

     private void Downloader_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) 
     { 
      // print progress of download. 
      metroLabel2.Text = "Downloading: " + e.ProgressPercentage + "%"; 
     } 

     private void Downloader_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) 
     { 
      // display completion status. 
      if (e.Error != null) 
       Console.WriteLine(e.Error.Message); 
      else 
       metroLabel2.Text = "Ready to Inject!"; 

      injectbutton.Enabled = true; 
     } 

// Verwendung

string sourceUrl = "https://www.webiste/mad.dll"; 
     string targetdownloadedFile = @"C:\\temp\\mad.dll"; 

     DownloadFile(sourceUrl, targetdownloadedFile); 
+0

Ist 'DownloadFileCompleted' war ausgelöst? –

+0

Ich würde einen Sniffer wie Wireshark oder Fiddler zum Debuggen verwenden. 1) Wenn Sie manuell herunterladen können, indem Sie eine IE-Anwendung verwenden, vergleichen Sie den Header bei der Arbeit mit nicht arbeitenden. 2) Testen Sie, ob Sie am Ende der Nachricht einen Status von 200 erreicht haben. 3) Überprüfen Sie, ob Sie http 1.0 (nicht 1.1) verwenden das funktioniert nicht mit Net Library). 4) Überprüfen Sie, ob Ihre Nachricht mit gzip gepackt wird, was eine kleinere Größe ergibt. 5) Stellen Sie sicher, dass die Ergebnisse in einer Datei gespeichert werden, indem Sie die korrekte Codierung (utf8 oder Unicode) verwenden. – jdweng

+0

ich benutze Dropbox für den Download ist das warum? –

Antwort

-1

es meine dll entlang

dankt allen für die Hilfe