使用UPX压缩资源加密资源文件

#NSIS使用UPX压缩资源加密资源文件
#程序输出名称
OutFile "Variables.exe"
#设置压缩方式
SetCompress force
SetCompressor /SOLID lzma
#是否进入调试模式
#!define _DEBUG ""
#安装目录
!define InstDir "$PROGRAMFILESVariables"
#压缩资源
!packhdr "exehead.tmp" '"upx.exe" -4 "exehead.tmp"'
#区段
Section "nsis变量"
 #在安装过程中改变安装目录
 StrCpy "$INSTDIR" "$EXEDIRVariables"
 #设置输出目录
 SetOutPath "$INSTDIR"
 #显示输出目录
 DetailPrint "$OUTDIR"
 #将.(当前目录)打包和程序,安装目录为$INSTDIR
 File /r ".*.nsi"
 File /r ".upx.exe" #The password is:yhxs33442013
 #输出当前主程序目录
 DetailPrint "$EXEDIR"
 #输出当前使用的语言标记符
 DetailPrint "输出当前使用的语言标记符$LANGUAGE"
#"nsis命令行参数操作"
Call nsis_cmdline
SectionEnd
Function nsis_cmdline #"nsis命令行参数操作"
#使用变量$CMDLINE获得命令行信息
 !ifdef _DEBUG
 MessageBox MB_OK|MB_ICONINFORMATION "$CMDLINE"
 !endif
 DetailPrint "$CMDLINE"
#使用宏来处理命令行信息,它也是基于对$CMDLINE的信息进行处理
 !include FileFunc.nsh
 ${GetParameters} $R0 # 获得命令行
 ${GetOptions} $R0 "/T" $R0 # 在命令行里查找是否存在/S选项
 !ifdef _DEBUG
 IfErrors 0 +2
 MessageBox MB_OK "Not found" IDOK +2
 MessageBox MB_OK "Found"
 !endif
 IfErrors 0 +3
 DetailPrint "Not found"
 goto +2
 DetailPrint "Found"
FunctionEnd
/*
这些变量也可以在插件里传递,因为他们可以被 DLL 插件读取和写入
enum
{
INST_0, // $0
INST_1, // $1
INST_2, // $2
INST_3, // $3
INST_4, // $4
INST_5, // $5
INST_6, // $6
INST_7, // $7
INST_8, // $8
INST_9, // $9
INST_R0, // $R0
INST_R1, // $R1
INST_R2, // $R2
INST_R3, // $R3
INST_R4, // $R4
INST_R5, // $R5
INST_R6, // $R6
INST_R7, // $R7
INST_R8, // $R8
INST_R9, // $R9
INST_CMDLINE, // $CMDLINE
INST_INSTDIR, // $INSTDIR
INST_OUTDIR, // $OUTDIR
INST_EXEDIR, // $EXEDIR
INST_LANG, // $LANGUAGE
__INST_LAST
};
*/
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容