Bytescanner.Com Basic API SDK For Delphi Developers
-
Delphi Source Code :
http://bytescanner.com/sdk/ByteScannerDelphiAPI.rar
Kullanilan Teknolojiler:
- Delphi7
- WinAPI
- CURL
ByteScanner API Dokumantasyonu:
http://tahribat.com/Forum-Bytescanner-Com-Api-Dokumantasyonu-Developerlar-Icin-183574/
ByteScanner Nedir?
http://tahribat.com/Forum-Bytescanner-Com-Guvenilir-Dosya-Analizi-Sistemi-183507/
-
Çok sağlam beyler, ayrıca virustotal gibi yüklediklerinizi antivirus firmalarına bildirmiyor kendi trojanınız varsa güvenle test için yükleyebilirsiniz.
-
HolyOne bunu yazdı
Çok sağlam beyler, ayrıca virustotal gibi yüklediklerinizi antivirus firmalarına bildirmiyor kendi trojanınız varsa güvenle test için yükleyebilirsiniz.
tesekkurler :)
{ Author : Ersan YAKIT http://www.bytescanner.com ZLIB1.DLL http://www.zlib.net/DLL_FAQ.txt CURL http://curlpas.sourceforge.net/curlpas/doc/requires.html } unit uByteScanner; interface uses Windows,Winsock,Classes,curlobj,sysUtils; type TCallbackFunc = procedure(fullData : string); const sDomain : string = 'bytescanner.com'; sLoginURL : string = 'client2api.php'; sUploadURL : string = 'startup.php'; sResultURL : string = 'api2client.php'; type TByteScanner = class(TThread) private bsUserName : string; bsPassword : string; scanResult : TCallbackFunc; statResult : TCallbackFunc; sFileData : string; sFilePath : string; procedure ReadFile; public constructor Create( lFilePath:string; sUserName:string; sPassword:string; funcResult:TCallbackFunc; funcStatus:TCallbackFunc); protected procedure Execute; override; end; var TempBSThread : TByteScanner; ScanID : String; FullScanData : String; implementation constructor TByteScanner.Create(lFilePath:string; sUserName:string; sPassword:string; funcResult:TCallbackFunc; funcStatus:TCallbackFunc); begin TempBSThread := Self; FreeOnTerminate := True; scanResult := funcResult; statResult := funcStatus; sFilePath := lFilePath; bsUserName := sUserName; bsPassword := sPassword; FullScanData := ''; ReadFile; inherited Create(true); end; procedure TByteScanner.ReadFile; var fhandle : Thandle; dSize : DWORD; dRead : DWORD; begin fhandle := Windows.CreateFile(PChar(sFilePath), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0); if fhandle <> 0 then begin dSize := Windows.GetFileSize(fhandle, nil); if dSize<>0 then begin Windows.SetFilepointer(fhandle,0,nil, FILE_BEGIN); SetLength(sFileData, dSize); Windows.ReadFile(fhandle, sFileData[1],dSize, dRead, nil); end; Windows.CloseHandle(fhandle); end; end; function LoginCallBack(IncomingData: pChar; ItemSize, ItemCount:LongWord; UserData:pointer):LongWord; cdecl; begin TempBSThread.statResult(String(IncomingData)); end; function UploadCallBack(IncomingData: pChar; ItemSize, ItemCount:LongWord; UserData:pointer):LongWord; cdecl; var StrData : String; begin StrData := String(IncomingData); delete(StrData,1,POS('"root":',StrData)+Length('"root":')-1); Delete(StrData,Pos(',',StrData),Length(StrData)); ScanID := StrData; end; function ScanResultCallBack(IncomingData: pChar; ItemSize, ItemCount:LongWord; UserData:pointer):LongWord; cdecl; begin FullScanData:=FullScanData + String(IncomingData); end; procedure TByteScanner.Execute; var Curl : pCURL; FirstPost, LastPost:pcurl_httppost; begin Curl := curl_easy_init(); FirstPost:=nil; LastPost:=nil; curl_easy_setopt(Curl, CURLOPT_COOKIEJAR, 'bytescanner.txt'); curl_easy_setopt(Curl, CURLOPT_URL, 'http://'+sDomain+'/'+sLoginURL); curl_easy_setopt(Curl, CURLOPT_VERBOSE, True); curl_easy_setopt(Curl, CURLOPT_WRITEFUNCTION, @LoginCallBack); curl_easy_setopt(Curl, CURLOPT_POSTFIELDS, 'action=Auth&email=' + bsUserName + '&password=' + bsPassword); curl_easy_perform(Curl); curl_easy_setopt(Curl, CURLOPT_URL, 'http://'+sDomain+'/'+sUploadURL); curl_easy_setopt(Curl, CURLOPT_VERBOSE, True); curl_easy_setopt(Curl, CURLOPT_WRITEFUNCTION, @UploadCallBack); curl_formadd(@FirstPost, @LastPost, CURLFORM_COPYNAME, 'action', CURLFORM_COPYCONTENTS, 'BinaryFileTransfer', CURLFORM_END ); curl_formadd(@FirstPost,@LastPost, CURLFORM_COPYNAME, 'binaryFile', CURLFORM_FILE, sFilePath, CURLFORM_END ); curl_easy_setopt(Curl, CURLOPT_HTTPPOST, FirstPost); curl_easy_perform(Curl); curl_easy_setopt(Curl, CURLOPT_URL, 'http://'+sDomain+'/'+sResultURL + '?action=scanResult&ResultID=' + ScanID); curl_easy_setopt(Curl, CURLOPT_VERBOSE, True); curl_easy_setopt(Curl, CURLOPT_WRITEFUNCTION, @ScanResultCallBack); curl_easy_perform(Curl); scanResult(FullScanData); curl_formfree(FirstPost); curl_formfree(LastPost); curl_easy_cleanup(Curl); end; end.
unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, XPMan, ExtCtrls; type TForm1 = class(TForm) ListView1: TListView; StatusBar1: TStatusBar; XPManifest1: TXPManifest; GroupBox1: TGroupBox; edtEmail: TLabeledEdit; edtPassword: TLabeledEdit; GroupBox2: TGroupBox; edtFile: TLabeledEdit; Button3: TButton; Button1: TButton; OpenDialog1: TOpenDialog; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses uByteScanner, Math; {$R *.dfm} procedure StatusCallBack(FullData : string); begin Form1.StatusBar1.Panels[1].Text := FullData; form1.Memo1.Lines.Add(FullData); end; procedure ScanResultCallBack(FullData : string); type TAntivirus = RECORD malwareScanProvider, malwareScanProviderVer, malwareScanProviderResultTime, malwareScanProviderResult : String; End; var Antivirus : TAntivirus; Item : TListItem; smalwareScanProvider, smalwareScanProviderVer, smalwareScanProviderResultTime, smalwareScanProviderResult : String; begin Form1.ListView1.Items.BeginUpdate; try Application.ProcessMessages; smalwareScanProvider := '"malwareScanProvider":"'; smalwareScanProviderVer := '"malwareScanProviderVer":"'; smalwareScanProviderResultTime := '"malwareScanProviderResultTime":"'; smalwareScanProviderResult := '"malwareScanProviderResult":"'; FullData := Trim(FullData); while pos(smalwareScanProvider,FullData)>0 do begin with Antivirus do begin delete(FullData,1,POS(smalwareScanProvider,FullData)+Length(smalwareScanProvider)-1); malwareScanProvider := Copy(FullData,1,POS('"',FullData)-1); delete(FullData,1,POS(smalwareScanProviderVer,FullData)+Length(smalwareScanProviderVer)-1); malwareScanProviderVer := Copy(FullData,1,POS('"',FullData)-1); malwareScanProviderVer :=SysUtils.StringReplace(malwareScanProviderVer,'\/','/',[rfReplaceAll]); delete(FullData,1,POS(smalwareScanProviderResultTime,FullData)+Length(smalwareScanProviderResultTime)-1); malwareScanProviderResultTime := Copy(FullData,1,POS('"',FullData)-1); delete(FullData,1,POS(smalwareScanProviderResult,FullData)+Length(smalwareScanProviderResult)-1); malwareScanProviderResult := Copy(FullData,1,POS('"',FullData)-1); Item := Form1.ListView1.Items.Add; Item.Caption := Antivirus.malwareScanProvider; Item.SubItems.Add(malwareScanProviderVer); Item.SubItems.Add(malwareScanProviderResultTime); Item.SubItems.Add(malwareScanProviderResult); end; end; except on e : exception do begin StatusCallBack('Error : ' + e.Message); end; end; Form1.ListView1.Items.EndUpdate; end; procedure TForm1.Button1Click(Sender: TObject); var ByteScanner: TByteScanner; begin ByteScanner := TByteScanner.Create(edtFile.Text,edtEmail.Text,edtPassword.Text,ScanResultCallBack,StatusCallBack); ByteScanner.Resume; end; procedure TForm1.Button3Click(Sender: TObject); begin if OpenDialog1.Execute then begin edtFile.Text := OpenDialog1.FileName; end; end; procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); var CleanList : Array[0..4] of string; i : Integer; scolor : TCOLOR; begin CleanList[0]:='Nothing Found!'; CleanList[1]:='Beta Version'; CleanList[2]:='Demo Version'; CleanList[3]:='Order Now!'; scolor := clRED; for i:= low (CleanList) to High(CleanList)-1 do begin if (item.subItems[2]=cleanList[i]) then begin scolor := clGreen; end; end; ListView1.Canvas.Font.Color:=scolor; end; end.
wh0 tarafından 05/Eyl/13 16:38 tarihinde düzenlenmiştir -
websitesinde interface icin kullandiginiz frameworkmudur herneyde ne hocam ? jsf mi o ?
-
extjs'dir.. ancak programlamada profesyonel degilseniz kullanmamanizi oneririm. cunku debug etmek / hata yakalamak cok zor...
-
benzetmişim :) / #tr0jan.net /
SUPERBICO tarafından 05/Eyl/13 16:59 tarihinde düzenlenmiştir -
Abi şahsen son zamanlarda gördüğüm en taşaklı girişim, yolunuz açık olsun.
-
bende geçen gün doctus ta görmüştüm . siteyi denedimde . upload biraz uzun sürüyor onun dışında iyi :D .
-
Simdilik sunucuyu kendi bunyemizde barindirdigimizdan upload biraz yavas malesef. Ama kisa sure sonra cozulecektir.
-
-
sayfaya girince kullanıcı girişi istiyor :d