Short: exe file packer with protection Author: lorylombus@gmail.com (Lorence Lombardo) Uploader: lorylombus@gmail.com (Lorence Lombardo) Type: util/pack Version: 5.6b Architecture: m68k-amigaos rc Friday 26-Jul-24 22:27:29 Warning...!!! This program is slightly experimental, a work in progress and if you use it you do so at your own risk. bgpk v5.6b (c) 2017-2024 Lorence Lombardo. (body guard packer) Requirements:- "CrM.library" for the default packing method only. OR Compress with the "z.library" or gzip for the packing method with the result executable also preferably requiring the xfdmaster library or gzip or minigzip. OR Compress with lzma for the packing method with the result executable also preferably requiring the xfdmaster library or lzma or lzmadec. See the archive "lzmautils-68k.lha" for the builds most suitable for you. OR Compress with clzip or lzip for the packing method with the result executable also preferably requiring lunzip or clzip or lzip. OR Compress with uclpack for the packing method with the result executable also requiring uclpack. OR Compress with bro (brotli) for the packing method with the result executable also requiring bro. OR Compress with bzip2 for the packing method with the result executable preferably requiring the xadmaster library or bzip2. OR Compress with lzop for the packing method with the result executable also requiring lzop. OR Compress with STC S404 data for the packing method only. OR Compress with the "lh.library" for the packing method only. OR Compress with Nibble for the packing method only. OR Compress with Shrinkler for the packing method only. OR Compress with Cranker for the packing method only. OR Compress with LZ4 for the packing method only. OR Compress with PackIt for the packing method only. OR Compress with FImp for the packing method only. OR Compress with PPami for the packing method only. "bgpk" is a CLI mixed technology executable file packer for AmigaOS 2+ providing a number of protection options. The compulsory protection is a check for at least ROM 2. On "ROM1.3" bgpk prevents some programs from crashing. In the default packing method the result executable does not require the "CrM.library". For the purpose of re-compression and decrunching packed executable's the xfdmaster library may be required, or the newdpk library v2+. "bgpk" also allows you to pack programs that many other executable packers do not pack such as SoundBox or programs that are compiled with vbcc. "bgpk" does no hunk sorting or stripping so bgpk packed files will be restored to their original state when depacked (horses for courses). Although a means of stack protection is provided the recommended ~4k minimum is a requirement. For complete protection the minimum stack can be set with a program called StackAttack. Although bgpk runs from CLI only it is hoped to act as a reasonable plugin for a directory utility. Usage:- bgpk [OPTIONS] Options:- FILE name Specify a destination. DIR name Specify a destination. NMO name Specify name only, path used. STACK n Inbuild a fixed launch stack value. 020 Enable minimum 68020 CPU checking. FPU Enable FPU checking. EXEC n Exec check minimum. (default=>36) IXA Convert amiga paths to unix & provide assigns. UPM Core unpack message if bgpk lib is available. DPK DePack only. DSET name DePack only & set type. INFO bgpk info only. ISET name bgpk info only & set type. GZIP Use gzip packing method. ZLIB Use zlib packing method via minigzip. LZMA Use lzma packing method. LZIP Use lzip packing method. UCL Use UCL packing method. BR1 Use brotli with faster packing method. BR2 Use brotli with maximum packing method. BZ2 Use bzip2 packing method. LZOP Use lzop packing method. FAST Use faster CrM method. S404 Use STC packing method. LH Use LH packing method. NIB Use Nibble packing method. SRNK Use Shrinkler packing method. CRNK Use Cranker packing method. LZ4 Use LZ4 packing method. PP20 Use PackIt packing method. IMP Use FImp packing method. RNC Use PPami packing method. XSTK n External packer stack (default=environment). UI Pack mode only RT user interface. AUI Pack mode only AWNPIPE user interface. RAUI Pack mode only ragmcc lib user interface. SCRN name PUBSCREEN for UI. NAI No activity indicator. AIn Alternate indicator. `n' is 2-4. NT No time display. Apart from the inbuilt stack option the IXA option is much the same behaviour as per the "IXA.readme" of my previous project, but in bgpk IXA is a much more comprehensive implementation. The IXA option is for CLI programs only, because currently it is not seen as applicable to WB programs. "bgpk" is all for the WB launch script. ;) Bug reports and suggestions from qualified packers are welcome. ;) See the "bug_reports.txt" text file. The LZMA packing method is working well provided enough RAM is available and on WinUAE I found 256MB of fast RAM to be sufficient. "bgpk_WB" is a WB interface, uses the "reqtools.library" and has a number of tooltypes which are hopefully mostly self explanatory. For extended info "bgpk_WB" supplies arguments to the script "bgpk_WBinf" in the same location also. The recommended installation is to place "bgpk" in your c: assign. Also if you keep it in "sys:packers/", you can do an "assign c: sys:packers add", without the quotes in your user-startup. CLI usage examples:- bgpk 7za lzma ixa 020 fpu stack=500000 bgpk 7za ui DiskMaster 2.5.30a configuration suggestion:- AddMenu Crunchers, bgpk dest., StdIO "CON:0/12/640/100/bgpk Window";extern stack 500000 \cc:bgpk %s FILE %d%n ui;StdIO CLOSE AddMenu Crunchers, bgpk info, extern cc:bgpk %s info >t:bgpk_info.tmp;read t:bgpk_info.tmp;delete t:bgpk_info.tmp AddMenu Crunchers, bgpk DePack, StdIO "CON:0/12/640/100/bgpk Window";extern stack 500000 \cc:bgpk %s FILE %d%n dpk;StdIO CLOSE Q. Is it possible to stop the external depacker dictating the stack size ? A. Yes, if you stack pack the depacker with its own stack you will no longer have that perceived problem. bgpk_WB tooltypes:- ================= PMODE Intended to set the default pack mode UI settings. HPOS Sets the horizontal position of the output window. VPOS Sets the vertical position of the output window. HSIZE Sets the horizontal size of the output window. VSIZE Sets the vertical size of the output window. PUBSCREEN Allows bgpk_WB to run on a public screen instead of the WB screen. SCREEN_ID This ID gives bgpk_WB its own screen instead of the WB screen. REQ_ID A screen can be selected for bgpk_WB to run on and the SCREEN_ID tooltype is updated if enabled. RPOSX Sets the X position of the main controlling requester. RPOSY Sets the Y position of the main controlling requester. ALL_RT When set to 1 the pack mode UI will use the reqtools library. When set to -1 the pack mode UI will use the ragmcc library. COLORS Certain colors may be specified in hex RGB format or hex RRGGBB format which will be used when a dedicated screen mode is used. The WB palette prefs may assist you in determining the COLORS tooltype values but you will need to convert decimal to hex. RRGGBB can be converted to RGB by dividing 17. eg. 255 / 17 = 15 = F SCREEN_FONT Font and size may be specified for a dedicated screen mode. SAVE_ON_EXIT When enabled the tooltypes HPOS, VPOS, HSIZE, VSIZE, RPOSX and RPOSY are updated when quitting bgpk_WB. REQ_PALETTE Colors may be selected and adjusted for a dedicated screen mode. The COLORS tooltype will be updated in RGB format if enabled. REQ_FONT A font can be selected for a dedicated screen mode and tested for suitability. The SCREEN_FONT tooltype will be updated if enabled. CONMETH2 When enabled SAVE_ON_EXIT will use a different method to obtain the output window details. All tooltypes have a CLI equivalent to allow for additional IconX script configurations. See the bgpk_WB_FS iconX script for more details. Related URL's:- http://aminet.net/package/util/pack/CrMv191t http://aminet.net/package/util/pack/Stc4103 http://aminet.net/package/util/pack/LhLib http://aminet.net/package/dev/cross/Shrinkler http://aminet.net/package/util/pack/cranker http://www.pouet.net/prod.php?which=62299 http://aminet.net/package/util/pack/xfdmaster http://aminet.net/package/util/pack/gzip124x2 http://aminet.net/package/util/pack/xfd_lzma http://aminet.net/package/util/libs/ReqToolsUsr http://aminet.net/package/util/libs/zlib http://aminet.net/package/util/arc/xadmaster-key http://aminet.net/package/util/arc/xadmaster000 http://aminet.net/package/util/arc/xadmaster020 http://aminet.net/package/util/arc/xadmaster060 http://aminet.net/package/dev/misc/AWNP_2-54 http://aminet.net/package/util/pack/PackIt119 http://aminet.net/package/util/pack/imploder-4.0 http://aminet.net/package/util/pack/RNC_ProPack http://aminet.net/package/util/misc/StripHunks http://geocities.ws/lorylomb/ragmcc.txt http://geocities.ws/lorylomb/ragmcc.lha http://geocities.ws/lorylomb/