تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيفية التعديل على قيمه معينه داخل ملف هيكس
#33
تفضل أخي Smile ، بخصوص Swap عند الضغط على زر

كود :
'تعريف متغيرات عامة
Dim MyBuffer As Byte()
Dim FilePath As String = "D:\test.exe"

'كود فتح الملف وتحميل بيانات الملف داخل MyBuffer
Private Sub OpenButton_Click(sender As System.Object, e As System.EventArgs) Handles OpenButton.Click
    Dim MyFileStream As IO.FileStream = Nothing

    Try
        'تعريف مسار الملف
        MyFileStream = New IO.FileStream(FilePath, IO.FileMode.Open, IO.FileAccess.Read)

        'مصفوفة من البايت بحجم الملف
        Array.Resize(MyBuffer, MyFileStream.Length - 1)

        'قرائة الملف حتي النهاية
        MyFileStream.Read(MyBuffer, 0, MyBuffer.Length)

    Finally
        If MyFileStream IsNot Nothing Then MyFileStream.Close()
    End Try
End Sub

'كود Swap
Private Sub SwapButton_Click(sender As System.Object, e As System.EventArgs) Handles SwapButton.Click
    If MyBuffer Is Nothing Then Return

    'المصفوفة 1 المراد البحث عنها داخل الملف
    Dim Find1 As Byte() = {&HB8, &H0, &H0, &H0}

    'المصفوفة 2 المراد البحث عنها داخل الملف
    Dim Find2 As Byte() = {&HE, &H1F, &HBA, &HE}

    'البحث عن المصفوفة الأولى
    Dim Index1 As Integer = SearchByteArray(MyBuffer, Find1, 0)

    'البحث عن المصفوفة الثانية
    Dim Index2 As Integer = SearchByteArray(MyBuffer, Find2, 0)

    If Not Index1 = -1 And Not Index2 = -1 Then
        'تبديل المصفوفة الأولى بالثانية
        For I As Integer = 0 To Find2.Length - 1
            MyBuffer(Index1 + I) = Find2(I)
        Next

        'تبديل المصفوفة الثانية بالأولى
        For I As Integer = 0 To Find1.Length - 1
            MyBuffer(Index2 + I) = Find1(I)
        Next
    End If
End Sub

'كود حفظ التغييرات للملف
Private Sub SaveButton_Click(sender As System.Object, e As System.EventArgs) Handles SaveButton.Click
    Dim MyFileStream As IO.FileStream = Nothing

    Try
        'تعريف مسار الملف
        MyFileStream = New IO.FileStream(FilePath, IO.FileMode.Open, IO.FileAccess.Write)

        'الانتقال لبداية الملف
        MyFileStream.Seek(&H0, IO.SeekOrigin.Begin)

        'كتابة المصفوفة للملف بعد التعديل
        MyFileStream.Write(MyBuffer, 0, MyBuffer.Length)

        'للتأكد من أنه تم كتابة كل البيانات للملف
        MyFileStream.Flush()

    Finally
        If MyFileStream IsNot Nothing Then MyFileStream.Close()
    End Try
End Sub
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
RE: كيفية التعديل على قيمه معينه داخل ملف هيكس - بواسطة Motaz Alnuweiri - 23-05-14, 06:48 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية منع ظهور الأخطاء من إعدادات البيسيك mmaalmesry 2 851 29-08-25, 10:30 AM
آخر رد: mmaalmesry
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 3,860 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  كيفية جلب أسماء الأعمدة بجدول من جداول sql heem1986 2 747 17-08-25, 09:15 PM
آخر رد: heem1986
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,004 06-08-25, 06:34 PM
آخر رد: Taha Okla
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,246 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 554 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  كيفية التعامل مع inputbox في فيجوال ستوديو أسامة حسين 4 3,506 14-01-25, 02:04 AM
آخر رد: أبو خالد الشكري
  استدعاء من جدولين داخل اداه FlowLayoutPanel برجاء الافادة للضرورة جداً modymody300894 7 638 15-11-24, 11:02 AM
آخر رد: modymody300894
  كيفية معرفة الجهاز رئيسي ام فرعي المتألق9 1 398 13-11-24, 06:41 PM
آخر رد: justforit
  كتابه عدد معين من الارقام داخل تيكست بوكس modymody300894 3 559 07-11-24, 09:15 PM
آخر رد: modymody300894

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم