منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيفية التعديل على قيمه معينه داخل ملف هيكس
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
لو سمحتم عايز اسأل سؤال من اهل الخبرة الموجودين بالمنتدى
انا اريد اغير قيمة عند اوفست محدد ببرنامج يتم تصميمهعلى ال vb.net
والمقصود انه يعمل ستريم للملف ويتم التعديل على الملف ويقوم بحفظ التعديل دون عرض الملف على المستخدم

وليوضح السؤال اكثر انا اريد تغير قيمة معينه وليكن نقطة تقاطع صف مع عمود معين الى قيمة اخرى انا اعطيها له مسبقا داخل البرنامج عند ضغط المستخدم على هذا الزر يغير القيمة تلقائيا اللتي قمت بأدخالها انا مسبقا في برمجة البرنامج
وادلوني على الخير جزاكم الله ك خير



وانتظر الرد في اقرب وقت لأنه مهم جدا بالنسبه لي
في اللينك التالي ستجد برنامج ربما يناسب ما تريد ......أتمني إنه يفيدك

اللينــــــــــــــــــــــــــــــك...........الكود الخاص بالبرنامج موجود في نفس الملف
شكرا للمتابعة وسرعة الرد ولكن طلب غير ذلك انا اريد تغيير القيمة من غير ما افتح الهيكس امام المستخدم ويعدل بأيده يعني انا عايز يدوس على زر مجرد مايدوس عليه يتعدل اتوماتيكيا لقيمه انا واضعها مسبقا
أخي الفاضل ...عليك دراسة المشروع الموجود في اللينك.... و سوف تجد إجابة لسؤالك ب هذا المشروع......خاصة أنك تطلب شيئا ربما يحتاج الي جهدا و وقتا و أعتذر منك أخي الفاضل مستحيل ف الوقت الراهن أن أدرس الأمر لأنني ليس لدي الوقت الكافي ...ربما أحد الاعضاء الأخرين يستطيع مساعدتك...عفوا و أعتذر منك مرة ثانية لعد إستطاعتي تلبية طلبك
(13-05-14, 12:11 PM)محمديات كتب : [ -> ]بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
لو سمحتم عايز اسأل سؤال من اهل الخبرة الموجودين بالمنتدى
انا اريد اغير قيمة عند اوفست محدد ببرنامج يتم تصميمهعلى ال vb.net
والمقصود انه يعمل ستريم للملف ويتم التعديل على الملف ويقوم بحفظ التعديل دون عرض الملف على المستخدم

وليوضح السؤال اكثر انا اريد تغير قيمة معينه وليكن نقطة تقاطع صف مع عمود معين الى قيمة اخرى انا اعطيها له مسبقا داخل البرنامج عند ضغط المستخدم على هذا الزر يغير القيمة تلقائيا اللتي قمت بأدخالها انا مسبقا في برمجة البرنامج
وادلوني على الخير جزاكم الله ك خير



وانتظر الرد في اقرب وقت لأنه مهم جدا بالنسبه لي


منقول (مع تعديل بسيط ليناسب طلبك)

كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' تحديد اسم الملف
    Dim filename As String = "C:\Users\Admin\Desktop\tmp.exe"

    ' قراءة الملف على شكل مصفوفة بايتات
    Dim bytes() As Byte = IO.File.ReadAllBytes(filename)

    ' تغيير قيمة موقع معين في المصفوفة
    bytes(Val("&h103")) = Val("&hDD") ' بتحديد الموقع مباشرة
    'bytes(Val("&h100") + Val("&h3")) = Val("&hDD") ' بتحديد الموقع بطريقة صف + عمود


    ' حفظ المصفوفة بعد تغييرها في الملف مرة أخرى
    IO.File.WriteAllBytes(filename, bytes)

End Sub
نجحت معايا وشكرا ليكم بجد انا فعلا مبسوط من دعمكم وشكراااااااااااااااااااااااااااااااااااااااااااا
انا فرحان جدا اني نجحت فيها


ممكن بعد اذنكم طريقة استبدال صف كامل مع صف اخر على ان يتم التبديل بينهم فقط اقصد SWAPING
و
ايه هوه كود اللي يخليه يعمل Check Sum قبل مايخزن
انتظر الرد بحرارة
تفضل أخي
كود :
Dim MyFileStream As IO.FileStream = Nothing

Try
    MyFileStream = New IO.FileStream("D:\test.exe", IO.FileMode.Open, IO.FileAccess.Write)

    'صف من البايت مكون من 16 خانة
    Dim Buffer As Byte() = {&H4, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H4, &H0, &H0, &H0, &H0, &H0, &H0, &H0}

    ' عنوان الصف وهو C0
    MyFileStream.Seek(&HC0, IO.SeekOrigin.Begin)

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

Finally
    If MyFileStream IsNot Nothing Then MyFileStream.Close()
End Try
كود :
'صف من البايت مكون من 16 خانة
    Dim Buffer As Byte() = {&H4, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H4, &H0, &H0, &H0, &H0, &H0, &H0, &H0}
شكرا اخي للمساعده ولكن بهذا الكود سيأخذ القيم من صف سيتم ادخاله مسبقا داخل البرنامج لكن المطلوب هوه التبديل بين صفين داخل نفس ملف الهيكس يعني مثالا القيم الموجوده في السطر الأول تأتي مكان القيم الموجوده في الصف الثالث والقيم الموجوده في السطر الثالث يأتي مكانها القيم الموجوده في السطر الأول وانتظر ردك وشكرا للك

ةياريت لو فيه كود للCheck sum
PLz

Smile
الصفحات : 1 2 3 4