最新消息:

nsisFile是NSIS文件操作特别是支持二进制文件操作和十六进制文件操作的插件

nsis 永恒心锁 2161浏览 0评论
/*
nsisFile是NSIS文件操作特别是支持二进制文件操作和十六进制文件操作的插件
文件的句柄可以通过FileOpen函数来获得,nsisFile函数的返回值在nsis的栈里,可以使用Pop来获得返回值.
你可以通过NSIS的内置函数FileSeek来定位文件读取位置与nsisFile插件进行交互.
nsisFile::BinToHex:将二进制转成十六进制
nsisFile::HexToBin:十六进制转成二进制
nsisFile::FileReadBytes:读取文件
nsisFile::FileWriteBytes:写入文件,以十六进制写入
nsisFile::FileFindBytes:字符查找,-1为未找到,找到返回偏移地址.
nsisFile::FileTruncate:关闭句柄
*/
!ifndef TARGETDIR
!define TARGETDIR "..bin"
!endif
!addplugindir "${TARGETDIR}"
Name "Sample nsisFile"
OutFile "Sample.exe"
ShowInstDetails show
Section "Main program"
Delete "Temp.tmp"
FileOpen $0 "Temp.tmp" "a"
FileWrite $0 "Test-Atotorney"
FileSeek $0 -4 END
nsisFile::FileReadBytes $0 5
Pop $1
DetailPrint 'read: "$1" = "726E6579"'
FileSeek $0 1
nsisFile::FileWriteBytes $0 "6f 746F d-u-m-b"
Pop $1
DetailPrint 'written: $1 = 3'
FileSeek $0 0
nsisFile::FileFindBytes $0 "42" -1
Pop $1
DetailPrint 'searching "B": $1 = -1'
FileSeek $0 0
nsisFile::HexToBin "746f726e"
Pop $1
DetailPrint 'HexToBin: "$1" = "torn"'
nsisFile::BinToHex $1
Pop $1
DetailPrint 'BinToHex: "$1" = "746F726E"'
nsisFile::FileFindBytes $0 "$1" -1
Pop $1 ; should be 1
DetailPrint 'searching "torn": $1 = 8'
nsisFile::FileTruncate $0
FileClose $0
SectionEnd
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » nsisFile是NSIS文件操作特别是支持二进制文件操作和十六进制文件操作的插件

您必须 登录 才能发表评论!