إجراء MemoryPatch لعمل Loader
#5
بأي حجم Binary/Hex
كود :
[color=Black][COLOR=Blue]procedure [/color]PatchBytes(FileTarget: string; Value: String; Offset: LongInt; IsHex: Boolean = True; MakeBackup: Boolean = True); [color=Blue]var[/color] EXEStream: TMemoryStream; Buf: String; [color=Blue]begin[/color] SetLength(Buf, Length(Value) div 2); [color=Blue]if [/color]IsHex [color=Blue]then[/color] HexToBin(PChar(Value), @Buf[1], Length(Value)) [color=Blue]else [/color]Buf := Value; EXEStream := TMemoryStream.Create; [color=Blue]try[/color] EXEStream.LoadFromFile(FileTarget); [color=Blue]if [/color]MakeBackup [color=Blue]then[/color] EXEStream.SaveToFile(ChangeFileExt(FileTarget, '.bak')); EXEStream.Seek(Offset, 0); EXEStream.WriteBuffer(Buf[1], Length(Buf)); EXEStream.SaveToFile(FileTarget); [color=Blue]finally[/color] EXEStream.Free; [color=Blue]end[/color]; // try [color=Blue]end[/color];[/COLOR]

والأفضل:
كود :
[color=Black][COLOR=Blue]procedure [/color]PatchBytes(FileTarget: [color=Blue]string[/color]; Value: [color=Blue]String[/color]; Offset: LongInt; MakeBackup: Boolean = True); [color=Blue]var[/color] EXEStream: TMemoryStream; Bytes: LongWord; I: Integer; [color=Blue]begin[/color] EXEStream := TMemoryStream.Create; [color=Blue]try[/color] EXEStream.LoadFromFile(FileTarget); [color=Blue]if [/color]MakeBackup [color=Blue]then[/color] EXEStream.SaveToFile(ChangeFileExt(FileTarget, '.bak')); EXEStream.Seek(Offset, 0); I := 1; [color=Blue]while [/color]I < Length(Value) [color=Blue]do begin[/color] Bytes := StrToInt('$'+Value[I] + Value[I+1]); Inc(I, 2); EXEStream.WriteBuffer(Bytes, 1); [color=Blue]end[/color]; EXEStream.SaveToFile(FileTarget); [color=Blue]finally[/color] EXEStream.Free; [color=Blue]end[/color]; // try [color=Blue]end[/color];[/COLOR]
الرد


الردود في هذا الموضوع
إجراء MemoryPatch لعمل Loader - بواسطة kachwahed - 10-02-2010, 11:06 PM
إجراء MemoryPatch لعمل Loader - بواسطة Ahmed18 - 11-02-2010, 03:57 AM
إجراء MemoryPatch لعمل Loader - بواسطة kachwahed - 11-02-2010, 07:20 AM
إجراء MemoryPatch لعمل Loader - بواسطة kachwahed - 19-03-2010, 02:24 PM
إجراء MemoryPatch لعمل Loader - بواسطة kachwahed - 10-10-2010, 02:43 PM

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


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