2017-06-25 1 views
0

donc en gros ive essayé de créer un programme qui injecte une dllC# WebClient téléchargements moitié de dll

im en ce moment bloqué à la partie de téléchargement webclient car il ne télécharge fondamentalement « la moitié » de ma dll

(dll est de taille est de 470 kb mais le dll téléchargé est seulement 216 kb)

Code:

(étole de ce 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; 
     } 

// Utilisation

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

     DownloadFile(sourceUrl, targetdownloadedFile); 
+0

est 'DownloadFileCompleted' déclenché? –

+0

J'utiliserais un sniffer comme wireshark ou fiddler pour déboguer le problème. 1) Si vous pouvez télécharger manuellement en utilisant une application IE comparer l'en-tête en travaillant avec non-travail 2) Tester si vous obtenez un statut 200 terminé à la fin du message 3) Vérifier si vous utilisez http 1.0 (pas 1.1 qui utilise le mode bloc cela ne fonctionne pas avec Net Library). 4) Vérifiez si votre message est compressé avec gzip, ce qui donnera une taille plus petite. 5) Assurez-vous que les résultats sont sauvegardés dans un fichier en utilisant un encodage correct (utf8 ou unicode). – jdweng

+0

Im en utilisant Dropbox pour le téléchargement est-ce pourquoi? –

Répondre

-1

c'était mon dll tout au long

remercie tout le monde pour l'aide