المشاركات : 6
المواضيع 2
الإنتساب : Feb 2013
السمعة :
0
الشكر: 4
تم شكره 2 مرات في 2 مشاركات
السلام عليكم ورحمة الله وبركاته
اخي Ahmed_Mansoor
لقد قمت بجميع طرق لكن الكو د يغير القيمة لقبل القيمة لانا طلب منو شكرا للمتابعة وسرعة الرد انتظر الرد بحرارة
Private Function HexToString(ByVal HexToStr As String) As String
Dim StrTemp As String
Dim StrReturn As String
Dim I As Long
For I = 1 To Len(HexToStr) Step 2
StrTemp = Chr$(Val("&H" & Mid$(HexToStr, I, 2)))
StrReturn = StrReturn & StrTemp
Next I
HexToString = StrReturn
End Function
Private Sub Command1_Click()
Dim FileBytes As String
Dim F As Integer
Dim OffSet As Double
Dim NewValue As String
'موقع بداية التغيير
OffSet = 1F4
OffSet = 1F5
OffSet = 1F6
'القيم الجديدة التي تريد إستبدالها بالقديمة
NewValue = "45"
NewValue = "7A"
NewValue = "F2"
F = FreeFile
Open "C:\MyFile.exe" For Binary As #F
FileBytes = Space$(LOF(F))
Get #F, , FileBytes
Close #F
NewValue = HexToString(NewValue)
'عدد القيم المراد تغييرها 3
Mid$(FileBytes, OffSet, 3) = NewValue
F = FreeFile
Open "C:\MyFile.exe" For Binary As #F
Put #F, 1, FileBytes
Close #F
MsgBox "تم تعديل القيم بنجاح"
End Sub
المشاركات : 2,008
المواضيع 58
الإنتساب : Oct 2014
السمعة :
1,005
الشكر: 31833
تم شكره 22865 مرات في 2187 مشاركات
شكلك مافهمت الكود اخي العزيز ، الكود جربته ويعمل بكفاءه ، المقصود بالمتغير offset ليس الرقم الازرق الطويل الموجود على اليسار في صورتك المرفقه وانما المقصود به رقم اول قيمة من القيم التي تريد تغييرها ، انت لما تحدد اول قيم وذلك بتظليلها اكيد سيظهر لك رقمها او رقم موقعها في الملف ربما ستجد الرقم في اسفل شاشة برنامج الهيكس الدي تستخدمة ، جرب تظلل قيم مختلفة وشوف اذا رقم في اسفل الشاشة يتغير مع تظليلك لقيم مختلفة ، اذا عثرت عليه فهذا هو الرقم المقصود ان يكون قيمة متغير الoffset في الكود الذي ارفقته لك ، وبالنسبة للمتغير الذي يحمل القيم الجديدة فاتركها مثلما كانت في الكود اكتبها بجنب بعض كما كانت .
المشاركات : 6
المواضيع 2
الإنتساب : Feb 2013
السمعة :
0
الشكر: 4
تم شكره 2 مرات في 2 مشاركات
نجحت معايا وشكرا ليكم بجد انا فعلا مبسوط من دعمكم وشكر