⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 patch.pb

📁 利用春节七天在家里写的PureBasic示例代码.基本按照C教程的章节编排.适合入门学习使用.还请大家多多提出宝贵意见 Email:haihong5995037@163.com QQ:254082
💻 PB
字号:
;//////////////////////////////////
; Amlinger
;                   by 2008 02 06
;描述:一个补丁程序
;目标:用于测试演示 补丁程序的原理
;//////////////////////////////////

;描述:打补丁的过程
;参数:
;     file.s 文件名
;     location.l 文件需要修补的位置
;     byte.b  替换的新字节
Procedure.l Patch(file.s,location.l,byte.b) 
;备份原文件,嘿嘿,防止写错了..
;如果已经有备份的文件则不再备份
;FileSize 返回值 -1 文件不存在
;         返回值 -2 目标是目录
If FileSize(file)=-1
    CopyFile(file,file+".bak")
EndIf
;打开目标文件
  If OpenFile(0,file) 
    ;定位补丁位置
    FileSeek(0,location) 
    ;写入补丁内容
    WriteData(0,@byte,1) 
    ;关闭文件
    CloseFile(0) 
    ;返回结果为真 
    ProcedureReturn 1
  EndIf 
EndProcedure 

;测试结果
;这里 $497 $498 是我这里的位置
;如果想要找到这个位置,,就用汇编模式找找看.
;需要一定的汇编基础才行.
;不懂汇编的朋友可以用Winhex 打开未修改前text.exe 查找下面 16 进制序列
;E8692F00007411
;找到 74 11 看看WINHEX 显示的文件偏移位置是多少 在我这里是 $497
;因为需要修改两个字节,所以地址自然就是 $497 和 $498 了
;修改后为
;E8692F00009090
;当然也可以用WINHEX直接修改然后保存,结果是一样的,这里只是为了演示
;如果写自己的 补丁
Debug Patch("test.exe",$497,$90) 
Debug Patch("test.exe",$498,$90) 
; IDE Options = PureBasic 4.10 (Windows - x86)
; CursorPosition = 16
; Folding = -
; Executable = Examples.exe

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -