Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Gui, Add, Button,, SELECT
  2. Gui, Show
  3. return
  4.  
  5. ; ===================== Функция записи в файл. ======================
  6.  
  7. FilePatch(SrcFile, Offset, HexString)
  8. {
  9.  
  10.   FileGetSize, FileSize, %SrcFile%
  11.  
  12.   HexString := RegExReplace(HexString, "\s")
  13.  
  14.   Len := StrLen(HexString)
  15.  
  16.   cBytes := Len / 2
  17.  
  18.   VarSetCapacity(Buf, cBytes, 0)
  19.  
  20.   Pos = 1
  21.  
  22.   Loop, % cBytes
  23.   {
  24.     Byte := "0x" . SubStr(HexString, Pos, 2)
  25.     Pos += 2
  26.     NumPut(Byte, Buf, A_Index - 1, "Char")
  27.   }
  28.  
  29.   OPEN_EXISTING = 3
  30.   FILE_WRITE_DATA = 2
  31.   FILE_BEGIN = 0
  32.  
  33.   VarSetCapacity(BytesWritten, 4, 0)
  34.  
  35.   hFile := DllCall( "CreateFile", "Str",  SrcFile
  36.                                 , "UInt", FILE_WRITE_DATA
  37.                                 , "UInt", 0
  38.                                 , "UInt", 0
  39.                                 , "UInt", OPEN_EXISTING
  40.                                 , "UInt", 0
  41.                                 , "UInt", 0 )
  42.  
  43.   DllCall( "SetFilePointer", "UInt",  hFile
  44.                            , "UInt", Offset
  45.                            , "UInt", 0
  46.                            , "UInt", FILE_BEGIN )
  47.  
  48. DllCall( "WriteFile", "UInt", hFile
  49.                              , "UInt", &Buf
  50.                              , "UInt", cBytes
  51.                              , "UInt", &BytesWritten
  52.                              , "UInt", 0 )
  53.  
  54.  
  55.   DllCall( "CloseHandle", "UInt", hFile )
  56.  
  57. }
  58.  
  59. ButtonSELECT:
  60.  
  61. Offset = 0x2DD      ; Смещение в файле, по которому писать.
  62.  
  63.  
  64. Data =               ; Данные для записи. Пробелы необязательны.
  65. (
  66. EB 1B
  67. )
  68.  
  69. FileSelectFile, FilePath, 0, , Выберете CrackMe, *.exe
  70.  
  71. FilePatch(FilePath, Offset, Data)
  72.  
  73. MsgBox, Patching Success!
  74.  
  75. return
  76.  
  77. GuiClose:
  78. ExitApp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement