10-05-2017, Saat: 15:09
http://www.delphican.com/delphi-ile-cmd-...almak.html
buradaki konudan yola çıkarak acaba cmd ile yapacağımız işlerden daha efektif şeyler yapabilirmiyiz diye biraz araştırma yaptım ve
Windows PowerShell
ile karşılaştım ve örneği şu şekilde değiştirdim.
sonra şu komutla dosya indirebildiğimi farkettim.
sonra aklıma şu geldi ben programın alacağı komutları herhangi bir porta takılmadan nasıl dışarıdan verebilirim haberleşebilirim
bir örnekle http://www.siteadi.com/komut.txt yi her 40 sn yede bir çekip komutvar ise çalıştırıp sonucuda memo yerine
http://www.siteadi.com/formpost.php ye gönderen bir uygulama yapılabilir.
kendi uygulamalarınızı download etirip bunlara parametrelerle çalıştırarak örnek ekran görüntüsü alıp bunu yine http://www.siteadi.com/resimpost.php post etirebilirsiniz ister dosya olarak ister base64 vel hasıl kelam tarayıcınızdan bilgisayarınızı uzaktan kontrol edebilirsiniz.
powershell windows 7 ve sonra ki sürümlerde var
gerisi hayal gücünüze kalmış
buradaki konudan yola çıkarak acaba cmd ile yapacağımız işlerden daha efektif şeyler yapabilirmiyiz diye biraz araştırma yaptım ve
Windows PowerShell
ile karşılaştım ve örneği şu şekilde değiştirdim.
function GetDosOutput(CommandLine: string; Work: string = 'C:\Windows\System32\WindowsPowerShell\v1.0\'): AnsiString; var SA: TSecurityAttributes; SI: TStartupInfo; PI: TProcessInformation; StdOutPipeRead, StdOutPipeWrite: THandle; WasOK: Boolean; Buffer: array[0..255] of ansiChar; BytesRead: Cardinal; WorkDir: String; Handle: Boolean; begin Result := ''; with SA do begin nLength := SizeOf(SA); bInheritHandle := True; lpSecurityDescriptor := nil; end; CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0); try with SI do begin FillChar(SI, SizeOf(SI), 0); cb := SizeOf(SI); dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; wShowWindow := SW_HIDE; hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin hStdOutput := StdOutPipeWrite; hStdError := StdOutPipeWrite; end; WorkDir := Work; Handle := CreateProcess(nil, PChar('C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe ' + CommandLine), nil, nil, True, 0, nil, PChar(WorkDir), SI, PI); CloseHandle(StdOutPipeWrite); if Handle then try repeat WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil); if BytesRead > 0 then begin Buffer[BytesRead] := #0; Result := Result + Buffer; end; until not WasOK or (BytesRead = 0); WaitForSingleObject(PI.hProcess, INFINITE); finally CloseHandle(PI.hThread); CloseHandle(PI.hProcess); end; finally CloseHandle(StdOutPipeRead); end; end;Kullanımı
procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Text:=GetDosOutput(Edit1.Text); end;
sonra şu komutla dosya indirebildiğimi farkettim.
-command "& { (New-Object Net.WebClient).DownloadFile('http://www.deneme.com/dosyalar/DENEME.exe', 'C:\Users\username\Desktop\test\DENEME.exe') }"
sonra aklıma şu geldi ben programın alacağı komutları herhangi bir porta takılmadan nasıl dışarıdan verebilirim haberleşebilirim
bir örnekle http://www.siteadi.com/komut.txt yi her 40 sn yede bir çekip komutvar ise çalıştırıp sonucuda memo yerine
http://www.siteadi.com/formpost.php ye gönderen bir uygulama yapılabilir.
kendi uygulamalarınızı download etirip bunlara parametrelerle çalıştırarak örnek ekran görüntüsü alıp bunu yine http://www.siteadi.com/resimpost.php post etirebilirsiniz ister dosya olarak ister base64 vel hasıl kelam tarayıcınızdan bilgisayarınızı uzaktan kontrol edebilirsiniz.
powershell windows 7 ve sonra ki sürümlerde var
gerisi hayal gücünüze kalmış
“Do. Or do not. There is no try.”