تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيفية التعديل على قيمه معينه داخل ملف هيكس
#19
تفضل أخي، هذا بالنسبة للبحث عن 3 قم واستبدال القيمة الثالثة

كود :
Dim MyFileStream As IO.FileStream = Nothing

Try
    'تعريف مسار الملف
    MyFileStream = New IO.FileStream("D:\test.exe", IO.FileMode.Open, IO.FileAccess.ReadWrite)

    'مصفوفة من البايت بحجم الملف
    Dim Buffer(MyFileStream.Length - 1) As Byte

    'المصفوفة المراد البحث عنها داخل الملف
    Dim Find As Byte() = {&HFF, &HFF, &H10}

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

    Dim Index As Integer = 0
    Do
        Index = SearchByteArray(Buffer, Find, Index)

        If Index <> -1 Then
            'اسنبدال القيمة الثالثة بقيمة جديدة
            Buffer(Index + 2) = &HFF
        End If
    Loop Until Index = -1

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

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

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

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

والكود المستخدم للبحث داخل مصفوفة عن مصفوفة آخرى من برمجتي (مع العلم أنه كل الأكواد من برمجتي) Wink

كود :
Function SearchByteArray(ByVal Array As Byte(), ByVal Find As Byte(), ByVal Start As Integer) As Integer
    If Find.Length > Array.Length Then Return -1

    Dim Index As Integer = 0

    If Start > 0 Then
        Index = Start + Find.Length
    End If

    If Index > Array.Length Then Return -1

    For I As Integer = Index To (Array.Length - Find.Length) - 2
        If Array(I) = Find(0) Then
            Dim Counter As Integer = 1

            For J As Integer = 1 To Find.Length - 1
                If Array(I + J) = Find(J) Then
                    Counter += 1
                Else
                    Exit For
                End If
            Next

            If Counter = Find.Length Then Return I
        End If
    Next

    Return -1
End Function
الرد }}}
تم الشكر بواسطة: محمديات


الردود في هذا الموضوع
RE: كيفية التعديل على قيمه معينه داخل ملف هيكس - بواسطة Motaz Alnuweiri - 21-05-14, 02:13 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] كيفية عمل جدولين في نفس التقرير مختار الوافي 3 489 05-04-26, 02:51 PM
آخر رد: مصمم هاوي
  [سؤال] كيفية عمل ارشيف للملفات المحفوظة عاصم النجار 5 2,393 25-02-26, 04:04 AM
آخر رد: السودي
  كيفية منع ظهور الأخطاء من إعدادات البيسيك mmaalmesry 2 1,049 29-08-25, 10:30 AM
آخر رد: mmaalmesry
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 4,222 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  كيفية جلب أسماء الأعمدة بجدول من جداول sql heem1986 2 952 17-08-25, 09:15 PM
آخر رد: heem1986
  كيفية حفظ إعدادات البرنامج بحيث لا تتغير أحمد إبراهيم سعد 4 3,335 06-08-25, 06:34 PM
آخر رد: Taha Okla
  مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك ahmedfa71 13 2,823 09-07-25, 11:24 PM
آخر رد: أبو خالد الشكري
  كيفية احتساب الفرق بين تاريخين بناء على عدد معين مصمم هاوي 2 762 15-01-25, 02:02 PM
آخر رد: مصمم هاوي
  كيفية التعامل مع inputbox في فيجوال ستوديو أسامة حسين 4 3,758 14-01-25, 02:04 AM
آخر رد: أبو خالد الشكري
  استدعاء من جدولين داخل اداه FlowLayoutPanel برجاء الافادة للضرورة جداً modymody300894 7 924 15-11-24, 11:02 AM
آخر رد: modymody300894

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


يقوم بقرائة الموضوع: