die-python 0.1.0__cp39-cp39-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2836) hide show
  1. db/ACE +45 -0
  2. db/APK/PackageName.1.sg +15 -0
  3. db/APK/SingleJar.3.sg +10 -0
  4. db/APK/_APK.0.sg +15 -0
  5. db/APK/_init +4 -0
  6. db/Archive/_init +4 -0
  7. db/Binary/Amiga loadable.1.sg +16 -0
  8. db/Binary/Empty.1.sg +11 -0
  9. db/Binary/Img.UDIF.1.sg +15 -0
  10. db/Binary/RIFF.1.sg +19 -0
  11. db/Binary/U-Boot.1.sg +321 -0
  12. db/Binary/Universal Binary.1.sg +17 -0
  13. db/Binary/Video.FLV.1.sg +16 -0
  14. db/Binary/_init +5 -0
  15. db/Binary/archive.7z.1.sg +14 -0
  16. db/Binary/archive.ACE.1.sg +9 -0
  17. db/Binary/archive.AR.1.sg +84 -0
  18. db/Binary/archive.ARC.1.sg +18 -0
  19. db/Binary/archive.ARJ.1.sg +8 -0
  20. db/Binary/archive.ASAR.sg +13 -0
  21. db/Binary/archive.BZip.1.sg +20 -0
  22. db/Binary/archive.Cab.1.sg +25 -0
  23. db/Binary/archive.DEFLATE.1.sg +245 -0
  24. db/Binary/archive.DotBundle.sg +9 -0
  25. db/Binary/archive.LRZ.1.sg +57 -0
  26. db/Binary/archive.LZ4.1.sg +42 -0
  27. db/Binary/archive.LZOP.1.sg +14 -0
  28. db/Binary/archive.MS Compound.1.sg +24 -0
  29. db/Binary/archive.PEA.1.sg +65 -0
  30. db/Binary/archive.RAR.1.sg +8 -0
  31. db/Binary/archive.Unity.1.sg +73 -0
  32. db/Binary/archive.ZIP.1.sg +9 -0
  33. db/Binary/archive.ZLIB.1.sg +13 -0
  34. db/Binary/archive.ZPAQ.1.sg +16 -0
  35. db/Binary/archive.btoa.1.sg +14 -0
  36. db/Binary/archives.1.sg +298 -0
  37. db/Binary/archives.ancient.sg +721 -0
  38. db/Binary/audio.1.sg +8380 -0
  39. db/Binary/audio.AU.1.sg +118 -0
  40. db/Binary/audio.FSB.1.sg +105 -0
  41. db/Binary/audio.VOC.1.sg +140 -0
  42. db/Binary/audio.WAV.1.sg +806 -0
  43. db/Binary/audio.mp3.2.sg +189 -0
  44. db/Binary/backup images.1.sg +27 -0
  45. db/Binary/bin.AAALogo.1.sg +16 -0
  46. db/Binary/bin.Atari ST.1.sg +12 -0
  47. db/Binary/bin.Borland TDS.sg +14 -0
  48. db/Binary/bin.GuitarPro.1.sg +26 -0
  49. db/Binary/bin.IDA.1.sg +78 -0
  50. db/Binary/bin.ISO 9660.1.sg +13 -0
  51. db/Binary/bin.JMDL.1.sg +36 -0
  52. db/Binary/bin.JSC.1.sg +87 -0
  53. db/Binary/bin.Java.1.sg +141 -0
  54. db/Binary/bin.LUA.1.sg +47 -0
  55. db/Binary/bin.NVA.1.sg +15 -0
  56. db/Binary/bin.PDB.1.sg +16 -0
  57. db/Binary/bin.PEFF.1.sg +11 -0
  58. db/Binary/bin.Python.1.sg +627 -0
  59. db/Binary/bin.SWF.1.sg +26 -0
  60. db/Binary/cad.DWG.1.sg +62 -0
  61. db/Binary/cert.WinAuth.1.sg +13 -0
  62. db/Binary/database.SQLite.1.sg +45 -0
  63. db/Binary/databases.1.sg +16 -0
  64. db/Binary/doc.CHM.1.sg +18 -0
  65. db/Binary/doc.DJVU.1.sg +112 -0
  66. db/Binary/doc.HLP.1.sg +11 -0
  67. db/Binary/doc.PDF.1.sg +16 -0
  68. db/Binary/doc.RTF.1.sg +12 -0
  69. db/Binary/donut.1.sg +49 -0
  70. db/Binary/font.ADOBE.1.sg +35 -0
  71. db/Binary/font.BMF.1.sg +63 -0
  72. db/Binary/format.MS-DBG.1.sg +19 -0
  73. db/Binary/format.MS-VHD.1.sg +61 -0
  74. db/Binary/format.MS-WIM.1.sg +43 -0
  75. db/Binary/format.MS-XNA.1.sg +80 -0
  76. db/Binary/format.UE.1.sg +36 -0
  77. db/Binary/format.VDI.1.sg +40 -0
  78. db/Binary/formats.1.sg +90 -0
  79. db/Binary/graphics.1.sg +37 -0
  80. db/Binary/image.ANI.1.sg +26 -0
  81. db/Binary/image.BMP.1.sg +48 -0
  82. db/Binary/image.CUR.1.sg +55 -0
  83. db/Binary/image.DDS.1.sg +26 -0
  84. db/Binary/image.EPS.1.sg +26 -0
  85. db/Binary/image.GIF.1.sg +97 -0
  86. db/Binary/image.ICO.1.sg +57 -0
  87. db/Binary/image.JNG.1.sg +34 -0
  88. db/Binary/image.JPEG.1.sg +45 -0
  89. db/Binary/image.JPEG.DQT.4.sg +13 -0
  90. db/Binary/image.JPEG.Tools.3.sg +53 -0
  91. db/Binary/image.JPEG.camera.2.sg +16 -0
  92. db/Binary/image.JPEG.comment.4.sg +16 -0
  93. db/Binary/image.KTX.1.sg +36 -0
  94. db/Binary/image.LBM.1.sg +69 -0
  95. db/Binary/image.MNG.1.sg +19 -0
  96. db/Binary/image.PCX.1.sg +57 -0
  97. db/Binary/image.PNG.1.sg +165 -0
  98. db/Binary/image.PSD.1.sg +63 -0
  99. db/Binary/image.PVR.1.sg +29 -0
  100. db/Binary/image.QOI.1.sg +36 -0
  101. db/Binary/image.TGA.1.sg +134 -0
  102. db/Binary/image.TIFF.1.sg +187 -0
  103. db/Binary/image.XAR.1.sg +31 -0
  104. db/Binary/img.VM.1.sg +13 -0
  105. db/Binary/overlays.6.sg +368 -0
  106. db/Binary/pe_to_shellcode.1.sg +107 -0
  107. db/Binary/rom.1.sg +579 -0
  108. db/Binary/srdi-monoxgas.1.sg +128 -0
  109. db/Binary/text.HTML.1.sg +14 -0
  110. db/Binary/text.Pascal.1.sg +18 -0
  111. db/Binary/text.Shell.1.sg +14 -0
  112. db/Binary/text.XML.1.sg +18 -0
  113. db/Binary/text.c.1.sg +35 -0
  114. db/Binary/text.pdb.1.sg +40 -0
  115. db/Binary/text.plaintext.3.sg +25 -0
  116. db/Binary/text.python.1.sg +16 -0
  117. db/Binary/text.script.2.sg +16 -0
  118. db/Binary/video.MP4.1.sg +15 -0
  119. db/Borland +19 -0
  120. db/COM/32-bit crypt.2.sg +13 -0
  121. db/COM/4kZIP.2.sg +13 -0
  122. db/COM/8086 Forth 83.4.sg +14 -0
  123. db/COM/A3E.1.sg +13 -0
  124. db/COM/ABK-Scrambler.2.sg +12 -0
  125. db/COM/ACE Scrambler.2.sg +34 -0
  126. db/COM/ACiDDRAW.1.sg +16 -0
  127. db/COM/ANS2ALL.1.sg +18 -0
  128. db/COM/ARF AV Inject.1.sg +14 -0
  129. db/COM/ASC2COM.1.sg +25 -0
  130. db/COM/ASIC-Basic.4.sg +21 -0
  131. db/COM/AVAST-Protect.2.sg +13 -0
  132. db/COM/AVPACK.2.sg +14 -0
  133. db/COM/AdFlt.2.sg +17 -0
  134. db/COM/Anti-Lamer Cryptor.2.sg +14 -0
  135. db/COM/Anti-hack encryption system.2.sg +13 -0
  136. db/COM/AutoCracker.1.sg +14 -0
  137. db/COM/BAT2EXEC.2.sg +18 -0
  138. db/COM/BIN-Lock.2.sg +14 -0
  139. db/COM/BatLite.4.sg +13 -0
  140. db/COM/Best Protection Kit-B.2.sg +16 -0
  141. db/COM/Borland C++.4.sg +17 -0
  142. db/COM/Budokan.1.sg +13 -0
  143. db/COM/C-crypt.2.sg +14 -0
  144. db/COM/CC#3.2.sg +13 -0
  145. db/COM/CC.2.sg +22 -0
  146. db/COM/CC286.2.sg +14 -0
  147. db/COM/CCC.2.sg +16 -0
  148. db/COM/CHECKPRG.2.sg +13 -0
  149. db/COM/CNT.2.sg +13 -0
  150. db/COM/COM Sccrambler.2.sg +14 -0
  151. db/COM/COM-Protect.2.sg +16 -0
  152. db/COM/COM-Protection.2.sg +13 -0
  153. db/COM/COM2TXT.1.sg +13 -0
  154. db/COM/COMCRYPT.2.sg +23 -0
  155. db/COM/COMPACK.2.sg +32 -0
  156. db/COM/COMPROTECT.2.sg +14 -0
  157. db/COM/COP.2.sg +14 -0
  158. db/COM/CPAV.1.sg +13 -0
  159. db/COM/CRX2COM.1.sg +12 -0
  160. db/COM/Character Intro Engine.1.sg +16 -0
  161. db/COM/Cheat packer.2.sg +13 -0
  162. db/COM/CodeLock.2.sg +14 -0
  163. db/COM/ComProt.2.sg +13 -0
  164. db/COM/ComProtector.2.sg +18 -0
  165. db/COM/Comlock.2.sg +17 -0
  166. db/COM/CrAcKeR.2.sg +14 -0
  167. db/COM/Crack2EXE.1.sg +14 -0
  168. db/COM/Crypt (Dismember).2.sg +16 -0
  169. db/COM/CryptCom.2.sg +18 -0
  170. db/COM/CryptGeneric.2.sg +12 -0
  171. db/COM/CyberWare Packer.2.sg +13 -0
  172. db/COM/DCFR.2.sg +13 -0
  173. db/COM/DIGPAK.1.sg +16 -0
  174. db/COM/DOC2COM.1.sg +13 -0
  175. db/COM/DOC2PAGE.1.sg +13 -0
  176. db/COM/DS-CRP.2.sg +16 -0
  177. db/COM/Datalight C.4.sg +17 -0
  178. db/COM/Deep Crypter.2.sg +14 -0
  179. db/COM/Deeper.2.sg +17 -0
  180. db/COM/Diet.2.sg +26 -0
  181. db/COM/Dn.COM Cruncher.2.sg +13 -0
  182. db/COM/E2C-Scrambler.2.sg +13 -0
  183. db/COM/E2C.1.sg +16 -0
  184. db/COM/E2C1.2.sg +13 -0
  185. db/COM/EPW.2.sg +14 -0
  186. db/COM/EXE2COM.1.sg +72 -0
  187. db/COM/EXETools EXE2COM.1.sg +16 -0
  188. db/COM/EXETools.2.sg +22 -0
  189. db/COM/Easy!-C.4.sg +13 -0
  190. db/COM/Entropy Coder.2.sg +13 -0
  191. db/COM/ExOM.2.sg +14 -0
  192. db/COM/FCRYPT.2.sg +14 -0
  193. db/COM/FIXCRK.1.sg +13 -0
  194. db/COM/Fig-FORTH.4.sg +13 -0
  195. db/COM/ForthCMP.2.sg +23 -0
  196. db/COM/ForthCMP.4.sg +18 -0
  197. db/COM/FromBAT.1.sg +18 -0
  198. db/COM/GOAT.2.sg +19 -0
  199. db/COM/GP-FORTH.4.sg +14 -0
  200. db/COM/Guardian Angel.2.sg +28 -0
  201. db/COM/HDKPROTC.2.sg +13 -0
  202. db/COM/HYPDOC.1.sg +13 -0
  203. db/COM/HackStop.2.sg +19 -0
  204. db/COM/ICE.1.sg +13 -0
  205. db/COM/IMMUN.1.sg +14 -0
  206. db/COM/Inbuild Encryption.2.sg +14 -0
  207. db/COM/IntroC0der.1.sg +13 -0
  208. db/COM/J0B cryptor.2.sg +13 -0
  209. db/COM/Keygen crypt.2.sg +14 -0
  210. db/COM/Khrome Crypt.2.sg +14 -0
  211. db/COM/LAME GG.2.sg +12 -0
  212. db/COM/LAMPROT.2.sg +13 -0
  213. db/COM/LGLZ.2.sg +14 -0
  214. db/COM/LHA.1.sg +16 -0
  215. db/COM/LHarc SFX.1.sg +16 -0
  216. db/COM/Lattice C.4.sg +32 -0
  217. db/COM/List.1.sg +21 -0
  218. db/COM/Lock-Master.2.sg +14 -0
  219. db/COM/MASK.2.sg +26 -0
  220. db/COM/MCLock.2.sg +13 -0
  221. db/COM/MESS.2.sg +13 -0
  222. db/COM/MICRO-C.4.sg +16 -0
  223. db/COM/MIDPAK.1.sg +13 -0
  224. db/COM/MINIFORTH.4.sg +14 -0
  225. db/COM/MSCC.2.sg +14 -0
  226. db/COM/MakeRead.1.sg +14 -0
  227. db/COM/Maveriks C0der.2.sg +16 -0
  228. db/COM/MegaShield.2.sg +14 -0
  229. db/COM/Microsoft C.4.sg +13 -0
  230. db/COM/Microsoft RTL.3.sg +16 -0
  231. db/COM/Microxor.2.sg +13 -0
  232. db/COM/MoonRock.2.sg +14 -0
  233. db/COM/NH.2.sg +13 -0
  234. db/COM/NetCode.1.sg +18 -0
  235. db/COM/NetRun.1.sg +13 -0
  236. db/COM/NoAV.2.sg +13 -0
  237. db/COM/Nodebug.2.sg +14 -0
  238. db/COM/ONLINE-HELP.1.sg +13 -0
  239. db/COM/OUTFORTH.4.sg +13 -0
  240. db/COM/PBFC.2.sg +14 -0
  241. db/COM/PC FORTH.4.sg +13 -0
  242. db/COM/PCOM.2.sg +14 -0
  243. db/COM/PCRYPT.2.sg +14 -0
  244. db/COM/PCVault-Protect.2.sg +13 -0
  245. db/COM/PKLITE.2.sg +29 -0
  246. db/COM/PKZip.1.sg +18 -0
  247. db/COM/PRO-PACK.2.sg +21 -0
  248. db/COM/PROTECT.2.sg +67 -0
  249. db/COM/PTP.2.sg +16 -0
  250. db/COM/PU-Cryptor.2.sg +25 -0
  251. db/COM/PassCOM.2.sg +13 -0
  252. db/COM/Phrozen Crew cryptor.2.sg +13 -0
  253. db/COM/ProtEXE.2.sg +14 -0
  254. db/COM/R-Crypt.2.sg +19 -0
  255. db/COM/RCC.2.sg +25 -0
  256. db/COM/RDT_Compressor2.2.sg +13 -0
  257. db/COM/RDT_ENC 3.2.sg +13 -0
  258. db/COM/RELETTER.1.sg +14 -0
  259. db/COM/RMCOBOL.4.sg +16 -0
  260. db/COM/RSCC.2.sg +65 -0
  261. db/COM/SCC.2.sg +13 -0
  262. db/COM/SCRAM.2.sg +14 -0
  263. db/COM/SCRE2B.2.sg +14 -0
  264. db/COM/SCRNCH.2.sg +22 -0
  265. db/COM/SDW.2.sg +34 -0
  266. db/COM/SHOW IT.1.sg +13 -0
  267. db/COM/SHOWV20.1.sg +18 -0
  268. db/COM/SHRINK.2.sg +14 -0
  269. db/COM/SP-FORTH.4.sg +18 -0
  270. db/COM/SPHINX C--.4.sg +24 -0
  271. db/COM/Scramb.2.sg +18 -0
  272. db/COM/Scrypt!.2.sg +18 -0
  273. db/COM/Scrypt.2.sg +14 -0
  274. db/COM/SelfCrypt.2.sg +13 -0
  275. db/COM/SelfProtect386.2.sg +12 -0
  276. db/COM/Shadow COM encryptor.2.sg +14 -0
  277. db/COM/Shadow.2.sg +14 -0
  278. db/COM/Six-2-Four.2.sg +18 -0
  279. db/COM/SnoopStop.2.sg +14 -0
  280. db/COM/SoftGuard.1.sg +13 -0
  281. db/COM/Steplock.2.sg +14 -0
  282. db/COM/Surpas-86.4.sg +14 -0
  283. db/COM/Sydex.2.sg +13 -0
  284. db/COM/TCEC.2.sg +14 -0
  285. db/COM/TCOM.4.sg +16 -0
  286. db/COM/TPACK.2.sg +18 -0
  287. db/COM/TPC Scramble.2.sg +12 -0
  288. db/COM/TXT2COM.1.sg +22 -0
  289. db/COM/TXTmaker.1.sg +14 -0
  290. db/COM/Text Header.1.sg +14 -0
  291. db/COM/The DRAW.1.sg +15 -0
  292. db/COM/Tiny Xor.2.sg +14 -0
  293. db/COM/Turbo C++.4.sg +13 -0
  294. db/COM/Turbo C.4.sg +27 -0
  295. db/COM/Turbo Pascal.4.sg +30 -0
  296. db/COM/TurboBAT.1.sg +21 -0
  297. db/COM/Txt2Exe.1.sg +14 -0
  298. db/COM/UNIFORTH.4.sg +13 -0
  299. db/COM/UPX.2.sg +22 -0
  300. db/COM/USCC.2.sg +14 -0
  301. db/COM/UnPackStop.2.sg +17 -0
  302. db/COM/UniCrypt.1.sg +14 -0
  303. db/COM/Unknown cryptors.2.sg +62 -0
  304. db/COM/VGA font loader.1.sg +13 -0
  305. db/COM/VSF&K protection.2.sg +13 -0
  306. db/COM/VSS.1.sg +13 -0
  307. db/COM/Vacsina.4.sg +12 -0
  308. db/COM/Venus.2.sg +12 -0
  309. db/COM/Vienna-C.4.sg +12 -0
  310. db/COM/Watcom C.4.sg +37 -0
  311. db/COM/WiZ Cryptor.2.sg +14 -0
  312. db/COM/XCK2COM.1.sg +12 -0
  313. db/COM/XE.2.sg +13 -0
  314. db/COM/XORCOPY.2.sg +14 -0
  315. db/COM/XPACK.2.sg +22 -0
  316. db/COM/XcomOR.2.sg +24 -0
  317. db/COM/XoReR.2.sg +26 -0
  318. db/COM/XorCom.2.sg +14 -0
  319. db/COM/Zbikowski C.4.sg +13 -0
  320. db/COM/Zortech C.4.sg +26 -0
  321. db/COM/_init +4 -0
  322. db/COM/aPACK.2.sg +22 -0
  323. db/COM/aPatch.2.sg +13 -0
  324. db/COM/acBBS protection.2.sg +13 -0
  325. db/COM/com RLE packer.2.sg +15 -0
  326. db/COM/com-crypt.2.sg +16 -0
  327. db/COM/cryptors.2.sg +214 -0
  328. db/COM/envelope.2.sg +13 -0
  329. db/COM/fds-cp.2.sg +13 -0
  330. db/COM/integrity checker.1.sg +13 -0
  331. db/COM/mCrypt.2.sg +14 -0
  332. db/COM/muSIMP-83.4.sg +14 -0
  333. db/COM/packers.2.sg +26 -0
  334. db/COM/patchers.1.sg +100 -0
  335. db/COM/protection.2.sg +13 -0
  336. db/COM/readme.com.1.sg +12 -0
  337. db/COM/simple ansi viewer.1.sg +12 -0
  338. db/COM/simple self-displayer.1.sg +12 -0
  339. db/COM/spirit.2.sg +22 -0
  340. db/COM/x3.2.sg +18 -0
  341. db/CurIcoBPP +14 -0
  342. db/DEX/_DEX.0.sg +15 -0
  343. db/DEX/_init +4 -0
  344. db/ELF/Borland Kylix.4.sg +18 -0
  345. db/ELF/Burneye.2.sg +12 -0
  346. db/ELF/DMD.4.sg +28 -0
  347. db/ELF/ELFCrypt.2.sg +12 -0
  348. db/ELF/Ezuri.1.sg +29 -0
  349. db/ELF/FASM.4.sg +22 -0
  350. db/ELF/Flexlm.4.sg +15 -0
  351. db/ELF/Free Pascal.4.sg +44 -0
  352. db/ELF/GLIBC.3.sg +49 -0
  353. db/ELF/Go.4.sg +125 -0
  354. db/ELF/HASP.1.sg +28 -0
  355. db/ELF/HP C++.4.sg +11 -0
  356. db/ELF/IBM AIX kernel loader.sg +17 -0
  357. db/ELF/Oracle Solaris Studio.4.sg +45 -0
  358. db/ELF/PyInstaller.2.sg +24 -0
  359. db/ELF/QT.3.sg +38 -0
  360. db/ELF/Rust.4.sg +23 -0
  361. db/ELF/SDL.3.sg +35 -0
  362. db/ELF/UPX.2.sg +57 -0
  363. db/ELF/VBCC.4.sg +19 -0
  364. db/ELF/Virbox.2.sg +16 -0
  365. db/ELF/Watcom.4.sg +14 -0
  366. db/ELF/Zig.4.sg +21 -0
  367. db/ELF/_ELF.0.sg +15 -0
  368. db/ELF/_init +4 -0
  369. db/ELF/gcc.4.sg +94 -0
  370. db/ELF/gdc.4.sg +12 -0
  371. db/ELF/ldc.4.sg +33 -0
  372. db/ELF/movfuscator.4.sg +18 -0
  373. db/FASM +9 -0
  374. db/FPC +11 -0
  375. db/IPA/_init +4 -0
  376. db/JAR/SingleJar.3.sg +13 -0
  377. db/JAR/_JAR.0.sg +15 -0
  378. db/JAR/_init +4 -0
  379. db/LE/UPX.1.sg +85 -0
  380. db/LE/Watcom C.4.sg +23 -0
  381. db/LE/_LE.0.sg +15 -0
  382. db/LE/_init +4 -0
  383. db/LX/_LX.0.sg +15 -0
  384. db/LX/_init +4 -0
  385. db/MACH/Carbon.3.sg +13 -0
  386. db/MACH/Cocoa.3.sg +11 -0
  387. db/MACH/Delphi.4.sg +20 -0
  388. db/MACH/QT.3.sg +18 -0
  389. db/MACH/UPX.2.sg +15 -0
  390. db/MACH/Virbox.2.sg +13 -0
  391. db/MACH/WebKit.3.sg +11 -0
  392. db/MACH/Zig.4.sg +21 -0
  393. db/MACH/_MACH.0.sg +15 -0
  394. db/MACH/_init +4 -0
  395. db/MACH/gcc.4.sg +34 -0
  396. db/MACH/java.3.sg +14 -0
  397. db/MFC +13 -0
  398. db/MSDOS/$pirit.2.sg +47 -0
  399. db/MSDOS/32stub.0a.sg +13 -0
  400. db/MSDOS/ABKprot.2.sg +12 -0
  401. db/MSDOS/ACE.6.sg +9 -0
  402. db/MSDOS/AEP.2.sg +12 -0
  403. db/MSDOS/AINEXE.2.sg +19 -0
  404. db/MSDOS/ALEC.2.sg +14 -0
  405. db/MSDOS/ANS2ALL.1.sg +14 -0
  406. db/MSDOS/ARC.1.sg +23 -0
  407. db/MSDOS/ARJ.1.sg +14 -0
  408. db/MSDOS/ASIC-Basic.4.sg +18 -0
  409. db/MSDOS/AVAST CRC-Check.2.sg +14 -0
  410. db/MSDOS/AVPACK.2.sg +16 -0
  411. db/MSDOS/Ada89.4.sg +13 -0
  412. db/MSDOS/Adys COM2EXE.1.sg +11 -0
  413. db/MSDOS/Adys Glue.2.sg +15 -0
  414. db/MSDOS/Aluwain.2.sg +12 -0
  415. db/MSDOS/Amisetup.1.sg +13 -0
  416. db/MSDOS/Anti-LAME.2.sg +13 -0
  417. db/MSDOS/Anti-hack encryption system.2.sg +13 -0
  418. db/MSDOS/Antilame.2.sg +14 -0
  419. db/MSDOS/ApBasic.4.sg +17 -0
  420. db/MSDOS/AutoHack.1.sg +12 -0
  421. db/MSDOS/Aztec C-86.4.sg +40 -0
  422. db/MSDOS/BAT2EXEC.4.sg +16 -0
  423. db/MSDOS/BSTAR_FORTH.4.sg +13 -0
  424. db/MSDOS/BatLite.4.sg +13 -0
  425. db/MSDOS/BetterBASIC.4.sg +13 -0
  426. db/MSDOS/Bitlok.2.sg +14 -0
  427. db/MSDOS/Black fist.2.sg +13 -0
  428. db/MSDOS/Blinker.0a.sg +25 -0
  429. db/MSDOS/Borland C.4.sg +88 -0
  430. db/MSDOS/Borland Pascal.4.sg +88 -0
  431. db/MSDOS/Borland RTM.0a.sg +33 -0
  432. db/MSDOS/Borland TDS.sg +14 -0
  433. db/MSDOS/Borland TLINK.5.sg +13 -0
  434. db/MSDOS/Bunny.2.sg +14 -0
  435. db/MSDOS/CC.2.sg +18 -0
  436. db/MSDOS/CEPexe.2.sg +12 -0
  437. db/MSDOS/CERBERUS.2.sg +12 -0
  438. db/MSDOS/CII-C.4.sg +17 -0
  439. db/MSDOS/COMCRYPT.2.sg +15 -0
  440. db/MSDOS/COMPACK.2.sg +15 -0
  441. db/MSDOS/COMPROTECT.2.sg +14 -0
  442. db/MSDOS/CONVOY.2.sg +17 -0
  443. db/MSDOS/CPAV.1.sg +13 -0
  444. db/MSDOS/CRYPACK.2.sg +12 -0
  445. db/MSDOS/CRYPTEXE.2.sg +19 -0
  446. db/MSDOS/CSCRYPT Pro.2.sg +14 -0
  447. db/MSDOS/CWSDPMI.0a.sg +22 -0
  448. db/MSDOS/CauseWay DOS Extender.0a.sg +16 -0
  449. db/MSDOS/ChSFX.1.sg +27 -0
  450. db/MSDOS/Ciphator.2.sg +12 -0
  451. db/MSDOS/Coderunner.1.sg +22 -0
  452. db/MSDOS/Codesafe.2.sg +13 -0
  453. db/MSDOS/ComProtector.2.sg +15 -0
  454. db/MSDOS/ComprEXE.2.sg +14 -0
  455. db/MSDOS/Compress-EXE.2.sg +14 -0
  456. db/MSDOS/Concurrent Small C.4.sg +15 -0
  457. db/MSDOS/Copy Protector.2.sg +15 -0
  458. db/MSDOS/CopyQM SFX.1.sg +16 -0
  459. db/MSDOS/Copylock PC.1.sg +13 -0
  460. db/MSDOS/CrAcKeR.2.sg +14 -0
  461. db/MSDOS/CrackStop.2.sg +16 -0
  462. db/MSDOS/Cruncher.2.sg +12 -0
  463. db/MSDOS/CryExe.2.sg +12 -0
  464. db/MSDOS/Crypt (Dismember).2.sg +25 -0
  465. db/MSDOS/Crypt (LightShow).2.sg +25 -0
  466. db/MSDOS/CryptCom.2.sg +14 -0
  467. db/MSDOS/CrypteXeC.2.sg +15 -0
  468. db/MSDOS/Cryptors.2.sg +59 -0
  469. db/MSDOS/DAEMON Protect.2.sg +12 -0
  470. db/MSDOS/DCREXE.2.sg +18 -0
  471. db/MSDOS/DIET.2.sg +33 -0
  472. db/MSDOS/DMC.2.sg +14 -0
  473. db/MSDOS/DOS32 loader.0a.sg +14 -0
  474. db/MSDOS/DOS32.0a.sg +22 -0
  475. db/MSDOS/DOS4G.0a.sg +19 -0
  476. db/MSDOS/DOSX16.0a.sg +27 -0
  477. db/MSDOS/DOS_16M.0a.sg +28 -0
  478. db/MSDOS/DOS_32A.0a.sg +22 -0
  479. db/MSDOS/DSHIELD.2.sg +11 -0
  480. db/MSDOS/Deeper.2.sg +17 -0
  481. db/MSDOS/DemoMaker.2.sg +14 -0
  482. db/MSDOS/DexEXE.2.sg +14 -0
  483. db/MSDOS/Digital Research C.4.sg +15 -0
  484. db/MSDOS/Disk eXPress.1.sg +14 -0
  485. db/MSDOS/E-PROT.2.sg +14 -0
  486. db/MSDOS/EEXE.2.sg +14 -0
  487. db/MSDOS/EMMXXXX0 check.0a.sg +12 -0
  488. db/MSDOS/EMX.0a.sg +16 -0
  489. db/MSDOS/EPW.2.sg +18 -0
  490. db/MSDOS/EXARJ.1.sg +13 -0
  491. db/MSDOS/EXE Manager.2.sg +14 -0
  492. db/MSDOS/EXE Packer.2.sg +15 -0
  493. db/MSDOS/EXE encryption.2.sg +13 -0
  494. db/MSDOS/EXE-Crypt.2.sg +13 -0
  495. db/MSDOS/EXE-Cryptor.2.sg +19 -0
  496. db/MSDOS/EXE-Protect.2.sg +13 -0
  497. db/MSDOS/EXE2COM.1.sg +22 -0
  498. db/MSDOS/EXECUTRIX.2.sg +13 -0
  499. db/MSDOS/EXEGUARD.2.sg +12 -0
  500. db/MSDOS/EXEHigh.2.sg +14 -0
  501. db/MSDOS/EXEPACK.2.sg +57 -0
  502. db/MSDOS/EXETools COM2EXE.1.sg +12 -0
  503. db/MSDOS/EXETools.2.sg +16 -0
  504. db/MSDOS/Easy!-C.4.sg +14 -0
  505. db/MSDOS/Eliashim's CodeTrack.1.sg +12 -0
  506. db/MSDOS/Encriptor.2.sg +12 -0
  507. db/MSDOS/Enkryptonator.2.sg +12 -0
  508. db/MSDOS/ExeCode.2.sg +18 -0
  509. db/MSDOS/ExeLITE.2.sg +15 -0
  510. db/MSDOS/ExeLock.2.sg +16 -0
  511. db/MSDOS/F-XLOCK.1.sg +13 -0
  512. db/MSDOS/FACRYPT.2.sg +12 -0
  513. db/MSDOS/FCP IV.2.sg +13 -0
  514. db/MSDOS/FSE.2.sg +61 -0
  515. db/MSDOS/File Shield.1.sg +14 -0
  516. db/MSDOS/Fitted Modula-2.4.sg +14 -0
  517. db/MSDOS/ForthInfo.4.sg +18 -0
  518. db/MSDOS/FromBAT.1.sg +13 -0
  519. db/MSDOS/GFX to EXE.1.sg +14 -0
  520. db/MSDOS/GOAT.1.sg +21 -0
  521. db/MSDOS/GRABBER.1.sg +26 -0
  522. db/MSDOS/GRASP.4.sg +20 -0
  523. db/MSDOS/GameWizard DOS Extender.0a.sg +12 -0
  524. db/MSDOS/Go32Stub.0a.sg +19 -0
  525. db/MSDOS/Graphic WorkShop.1.sg +14 -0
  526. db/MSDOS/Guardian Angel.2.sg +21 -0
  527. db/MSDOS/H+BEDV SelfCheck.1.sg +18 -0
  528. db/MSDOS/HACKSTOP.2.sg +77 -0
  529. db/MSDOS/HASP.2.sg +14 -0
  530. db/MSDOS/HEALTH.2.sg +12 -0
  531. db/MSDOS/Header Changer.2.sg +13 -0
  532. db/MSDOS/Hi-Tech C.4.sg +15 -0
  533. db/MSDOS/HyperLOCK 386.2.sg +14 -0
  534. db/MSDOS/IBM PC Pascal.4.sg +31 -0
  535. db/MSDOS/ICE.1.sg +13 -0
  536. db/MSDOS/IMMUN.1.sg +14 -0
  537. db/MSDOS/Inertia.2.sg +14 -0
  538. db/MSDOS/Ironthorn.2.sg +14 -0
  539. db/MSDOS/JAM.2.sg +12 -0
  540. db/MSDOS/JmCryptExe.2.sg +19 -0
  541. db/MSDOS/John Socha Library.3.sg +13 -0
  542. db/MSDOS/Joke.2.sg +13 -0
  543. db/MSDOS/KeyMaker.2.sg +14 -0
  544. db/MSDOS/Khrome Crypt.2.sg +12 -0
  545. db/MSDOS/Kvetch.2.sg +14 -0
  546. db/MSDOS/LE.0.sg +11 -0
  547. db/MSDOS/LGLZ.2.sg +14 -0
  548. db/MSDOS/LH.1.sg +11 -0
  549. db/MSDOS/LHA.1.sg +20 -0
  550. db/MSDOS/LHarc.1.sg +19 -0
  551. db/MSDOS/LOCK.2.sg +14 -0
  552. db/MSDOS/LSI_C.4.sg +14 -0
  553. db/MSDOS/LX.0.sg +11 -0
  554. db/MSDOS/LZEXE.2.sg +42 -0
  555. db/MSDOS/L_O_V_E_ FORTH.4.sg +18 -0
  556. db/MSDOS/Lahey Fortran.4.sg +14 -0
  557. db/MSDOS/LamerStop.2.sg +12 -0
  558. db/MSDOS/Lattice C.4.sg +87 -0
  559. db/MSDOS/LockTite+.2.sg +12 -0
  560. db/MSDOS/Logitech Modula-2.4.sg +14 -0
  561. db/MSDOS/MEGALITE.2.sg +12 -0
  562. db/MSDOS/MESS.2.sg +30 -0
  563. db/MSDOS/MSLite.1.sg +14 -0
  564. db/MSDOS/Maker.2.sg +14 -0
  565. db/MSDOS/Mandrake.2.sg +13 -0
  566. db/MSDOS/MegaBasic.4.sg +16 -0
  567. db/MSDOS/MegaBasic1.4.sg +30 -0
  568. db/MSDOS/Meridian Ada.4.sg +29 -0
  569. db/MSDOS/Meridian Pascal.4.sg +21 -0
  570. db/MSDOS/MetaWare High C.4.sg +30 -0
  571. db/MSDOS/MetaWare Professional Pascal.4.sg +24 -0
  572. db/MSDOS/Micro Focus Cobol.4.sg +19 -0
  573. db/MSDOS/Micro Focus DOS extender.0a.sg +13 -0
  574. db/MSDOS/Microsoft Basic.4.sg +23 -0
  575. db/MSDOS/Microsoft C Library.3.sg +20 -0
  576. db/MSDOS/Microsoft C.4.sg +57 -0
  577. db/MSDOS/Microsoft Fortran.4.sg +15 -0
  578. db/MSDOS/Microsoft Quick Basic.4.sg +35 -0
  579. db/MSDOS/Microsoft Quick Pascal.4.sg +16 -0
  580. db/MSDOS/Microsoft RTL (Clipper).3.sg +13 -0
  581. db/MSDOS/Microsoft RTL.3.sg +48 -0
  582. db/MSDOS/MultiLoop Protection.2.sg +13 -0
  583. db/MSDOS/MutaWWP.2.sg +14 -0
  584. db/MSDOS/Mutate.2.sg +21 -0
  585. db/MSDOS/NE.0.sg +11 -0
  586. db/MSDOS/NOCLIP.2.sg +14 -0
  587. db/MSDOS/NOTA.2.sg +14 -0
  588. db/MSDOS/NTShell.2.sg +14 -0
  589. db/MSDOS/Netware loader.1.sg +12 -0
  590. db/MSDOS/Nodebug.2.sg +14 -0
  591. db/MSDOS/Novex.2.sg +12 -0
  592. db/MSDOS/Oberon-M.4.sg +14 -0
  593. db/MSDOS/Optlink.2.sg +31 -0
  594. db/MSDOS/Overlay.2.sg +13 -0
  595. db/MSDOS/Oyster.1.sg +13 -0
  596. db/MSDOS/PACKWIN.2.sg +14 -0
  597. db/MSDOS/PC-Guard.2.sg +30 -0
  598. db/MSDOS/PCC.4.sg +28 -0
  599. db/MSDOS/PCOM.2.sg +14 -0
  600. db/MSDOS/PDC Prolog.4.sg +15 -0
  601. db/MSDOS/PGMPAK.2.sg +17 -0
  602. db/MSDOS/PGPROT.1.sg +12 -0
  603. db/MSDOS/PK sig.1.sg +12 -0
  604. db/MSDOS/PKEXE.2.sg +13 -0
  605. db/MSDOS/PKLITE.2.sg +59 -0
  606. db/MSDOS/PKSFX.1.sg +15 -0
  607. db/MSDOS/PKTINY.2.sg +14 -0
  608. db/MSDOS/PKZIP mini-sfx.1.sg +17 -0
  609. db/MSDOS/PKZIP-SFX.1.sg +13 -0
  610. db/MSDOS/PMODE.0a.sg +17 -0
  611. db/MSDOS/PMWLite.2.sg +14 -0
  612. db/MSDOS/PRO-PACK.2.sg +16 -0
  613. db/MSDOS/PRO32.0a.sg +14 -0
  614. db/MSDOS/PROPACK SFX.1.sg +13 -0
  615. db/MSDOS/PROTECT.2.sg +101 -0
  616. db/MSDOS/PVAC.2.sg +14 -0
  617. db/MSDOS/Pacific C.4.sg +23 -0
  618. db/MSDOS/Pack.2.sg +14 -0
  619. db/MSDOS/Packers.2.sg +17 -0
  620. db/MSDOS/Palladix.1.sg +12 -0
  621. db/MSDOS/Panda immunizer.1.sg +14 -0
  622. db/MSDOS/Pascal_MT+86.4.sg +20 -0
  623. db/MSDOS/PassEXE.2.sg +12 -0
  624. db/MSDOS/Patchers.1.sg +18 -0
  625. db/MSDOS/Phar Lap.0a.sg +31 -0
  626. db/MSDOS/Pksmart.2.sg +14 -0
  627. db/MSDOS/Power C.4.sg +16 -0
  628. db/MSDOS/ProtEXE.2.sg +58 -0
  629. db/MSDOS/Protector.2.sg +13 -0
  630. db/MSDOS/Quadru-Lock.2.sg +12 -0
  631. db/MSDOS/R-Crypt.2.sg +13 -0
  632. db/MSDOS/RAR.6.sg +9 -0
  633. db/MSDOS/REC small AV.1.sg +18 -0
  634. db/MSDOS/REC small.1.sg +26 -0
  635. db/MSDOS/REC.2.sg +22 -0
  636. db/MSDOS/RELETTER.1.sg +14 -0
  637. db/MSDOS/RERP.2.sg +13 -0
  638. db/MSDOS/RHC.2.sg +14 -0
  639. db/MSDOS/RJcrush.2.sg +12 -0
  640. db/MSDOS/RLE com-packer.2.sg +13 -0
  641. db/MSDOS/RM_FORTRAN.4.sg +14 -0
  642. db/MSDOS/ROSETINY.2.sg +15 -0
  643. db/MSDOS/RSX.0a.sg +12 -0
  644. db/MSDOS/RTLink VM Manager.0a.sg +12 -0
  645. db/MSDOS/RTPatch SFX.1.sg +13 -0
  646. db/MSDOS/Realia Cobol.4.sg +16 -0
  647. db/MSDOS/Realia SPITBOL.4.sg +14 -0
  648. db/MSDOS/Relpack.2.sg +14 -0
  649. db/MSDOS/SCRNCH.2.sg +14 -0
  650. db/MSDOS/SEA-AXE.2.sg +15 -0
  651. db/MSDOS/SFX.1.sg +14 -0
  652. db/MSDOS/SHOW IT.1.sg +14 -0
  653. db/MSDOS/SP-FORTH.4.sg +18 -0
  654. db/MSDOS/Scramb.2.sg +13 -0
  655. db/MSDOS/Secure.2.sg +37 -0
  656. db/MSDOS/Self UnStuffer.2.sg +16 -0
  657. db/MSDOS/SelfChk.2.sg +14 -0
  658. db/MSDOS/Shrink.2.sg +15 -0
  659. db/MSDOS/Shrinker.2.sg +14 -0
  660. db/MSDOS/SimplyWare.1.sg +22 -0
  661. db/MSDOS/Small C.4.sg +20 -0
  662. db/MSDOS/SnoopStop.2.sg +12 -0
  663. db/MSDOS/StonyBrook Pascal.4.sg +26 -0
  664. db/MSDOS/Stub-386.0a.sg +13 -0
  665. db/MSDOS/SuckStop.2.sg +27 -0
  666. db/MSDOS/Sydex SFX.1.sg +19 -0
  667. db/MSDOS/Symantec BASIC.4.sg +16 -0
  668. db/MSDOS/TCEC.2.sg +18 -0
  669. db/MSDOS/TMTSTUB.0a.sg +14 -0
  670. db/MSDOS/TSCRUNCH.2.sg +13 -0
  671. db/MSDOS/TTW.1.sg +17 -0
  672. db/MSDOS/TUCCRYP.2.sg +14 -0
  673. db/MSDOS/TXT2COM.1.sg +18 -0
  674. db/MSDOS/TXTmaker.1.sg +14 -0
  675. db/MSDOS/Tenth Planet.2.sg +13 -0
  676. db/MSDOS/TinyProg.2.sg +27 -0
  677. db/MSDOS/Tinyprot.2.sg +16 -0
  678. db/MSDOS/Topspeed C.4.sg +20 -0
  679. db/MSDOS/Topspeed Modula.4.sg +42 -0
  680. db/MSDOS/TraceLock.2.sg +13 -0
  681. db/MSDOS/Trap.2.sg +50 -0
  682. db/MSDOS/Turbo Basic.4.sg +18 -0
  683. db/MSDOS/Turbo Prolog.4.sg +16 -0
  684. db/MSDOS/TurboChainer.1.sg +13 -0
  685. db/MSDOS/Txt2Exe.1.sg +14 -0
  686. db/MSDOS/UCEXE.2.sg +22 -0
  687. db/MSDOS/UPX.2.sg +46 -0
  688. db/MSDOS/UR FORTH.4.sg +14 -0
  689. db/MSDOS/Un2pack.2.sg +14 -0
  690. db/MSDOS/UnPackStop.2.sg +33 -0
  691. db/MSDOS/UniVac.1.sg +14 -0
  692. db/MSDOS/Unknown cryptors.2.sg +54 -0
  693. db/MSDOS/Upper Deck Forth.4.sg +14 -0
  694. db/MSDOS/V-Load.1.sg +13 -0
  695. db/MSDOS/Visual Cobol.4.sg +16 -0
  696. db/MSDOS/WATCOM.4.sg +55 -0
  697. db/MSDOS/WDOSX.0a.sg +14 -0
  698. db/MSDOS/WDOSX32.0a.sg +12 -0
  699. db/MSDOS/WPFORTH.4.sg +14 -0
  700. db/MSDOS/WWPACK mutator.2.sg +53 -0
  701. db/MSDOS/WWPACK.2.sg +89 -0
  702. db/MSDOS/Whitesmiths C.4.sg +20 -0
  703. db/MSDOS/Window book.1.sg +21 -0
  704. db/MSDOS/Wizardy protection.1.sg +12 -0
  705. db/MSDOS/WordPerfect EXEPack.2.sg +12 -0
  706. db/MSDOS/XDOC.2.sg +13 -0
  707. db/MSDOS/XMLOD.0a.sg +16 -0
  708. db/MSDOS/XPACK.2.sg +37 -0
  709. db/MSDOS/Xtender.0a.sg +14 -0
  710. db/MSDOS/ZIPSCRUB.2.sg +14 -0
  711. db/MSDOS/ZOO.1.sg +14 -0
  712. db/MSDOS/Zbikowski C.4.sg +18 -0
  713. db/MSDOS/Zip.6.sg +9 -0
  714. db/MSDOS/Zortech(Symantec) C.4.sg +55 -0
  715. db/MSDOS/Zurenava DOS Extender.0a.sg +13 -0
  716. db/MSDOS/_MSDOS.0.sg +15 -0
  717. db/MSDOS/_init +54 -0
  718. db/MSDOS/aPACK.2.sg +60 -0
  719. db/MSDOS/aPatch.2.sg +13 -0
  720. db/MSDOS/anti-tracing add-on.1.sg +12 -0
  721. db/MSDOS/com2exe.2.sg +21 -0
  722. db/MSDOS/cramble.2.sg +12 -0
  723. db/MSDOS/deep-CRyPTer.2.sg +12 -0
  724. db/MSDOS/djgpp.4.sg +16 -0
  725. db/MSDOS/dos extender.0a.sg +16 -0
  726. db/MSDOS/dos extender1.0a.sg +13 -0
  727. db/MSDOS/dos extender2.0a.sg +16 -0
  728. db/MSDOS/iLUCRYPT.2.sg +18 -0
  729. db/MSDOS/immunizer.1.sg +13 -0
  730. db/MSDOS/mbp SHRINK.2.sg +13 -0
  731. db/MSDOS/muLISP-87.4.sg +20 -0
  732. db/MSDOS/nbuild.2.sg +12 -0
  733. db/MSDOS/overlays.6.sg +70 -0
  734. db/MSDOS/self-displayer.1.sg +13 -0
  735. db/MSDOS/virus.1.sg +13 -0
  736. db/NE/ARC SFX.1.sg +13 -0
  737. db/NE/Borland C++.1.sg +25 -0
  738. db/NE/Borland Pascal.1.sg +13 -0
  739. db/NE/MS RTL.0.sg +28 -0
  740. db/NE/PKZIP-SFX.1.sg +13 -0
  741. db/NE/Setup-Specialist.1.sg +16 -0
  742. db/NE/Sydex SFX.1.sg +13 -0
  743. db/NE/Watcom C.1.sg +34 -0
  744. db/NE/_NE.0.sg +15 -0
  745. db/NE/_init +4 -0
  746. db/NPM/JavaScript.5.sg +11 -0
  747. db/NPM/PackageName.1.sg +15 -0
  748. db/NPM/TypeScript.5.sg +11 -0
  749. db/NPM/_NPM.0.sg +16 -0
  750. db/NPM/_init +4 -0
  751. db/PE/12Ghosts Zip2.1.sg +17 -0
  752. db/PE/32Lite.2.sg +12 -0
  753. db/PE/3dcrypter.2.sg +12 -0
  754. db/PE/404crypter.1.sg +13 -0
  755. db/PE/7z.1.sg +43 -0
  756. db/PE/7z.4.sg +14 -0
  757. db/PE/7z.6.sg +21 -0
  758. db/PE/ABC Cryptor.2.sg +12 -0
  759. db/PE/ACCAStore.1.sg +19 -0
  760. db/PE/ACE.6.sg +9 -0
  761. db/PE/ACProtect.2.sg +30 -0
  762. db/PE/ADS Self Extractor.1.sg +18 -0
  763. db/PE/AHTeam EP Protector.2.sg +71 -0
  764. db/PE/AHpacker.2.sg +14 -0
  765. db/PE/ANDpakk.2.sg +21 -0
  766. db/PE/AOLSetup.1.sg +15 -0
  767. db/PE/AR Crypt Private.2.sg +11 -0
  768. db/PE/ARJSFX.1.sg +44 -0
  769. db/PE/ARM Protector.2.sg +21 -0
  770. db/PE/ARQ.1.sg +16 -0
  771. db/PE/ASDPack.2.sg +12 -0
  772. db/PE/ASM Guard.2.sg +27 -0
  773. db/PE/ASPR Stripper.2.sg +12 -0
  774. db/PE/ASPack.2.sg +95 -0
  775. db/PE/ASProtect.2.sg +54 -0
  776. db/PE/AT4RE Protector.2.sg +13 -0
  777. db/PE/AZProtect.2.sg +12 -0
  778. db/PE/Aase Crypter.2.sg +12 -0
  779. db/PE/Abbyy Lingvo.1.sg +15 -0
  780. db/PE/AcidCrypt.2.sg +13 -0
  781. db/PE/Acronis installer.1.sg +30 -0
  782. db/PE/Active Delivery.1.sg +16 -0
  783. db/PE/ActiveMark.2.sg +14 -0
  784. db/PE/Actual Installer.1.sg +18 -0
  785. db/PE/Adept Protector.2.sg +19 -0
  786. db/PE/Adobe Flash Player installer.1.sg +19 -0
  787. db/PE/Adobe FlashPlayer downloader.1.sg +17 -0
  788. db/PE/Adobe installers.1.sg +32 -0
  789. db/PE/Advanced BAT to EXE converter.2.sg +13 -0
  790. db/PE/Advanced installer.1.sg +30 -0
  791. db/PE/Adveractive.1.sg +14 -0
  792. db/PE/Aeco installer.1.sg +14 -0
  793. db/PE/Agile .NET.2.sg +11 -0
  794. db/PE/Alchemy Mindworks installer.1.sg +19 -0
  795. db/PE/Alex Protector.2.sg +15 -0
  796. db/PE/Alienyze.1.sg +14 -0
  797. db/PE/Alloy.2.sg +12 -0
  798. db/PE/AlmafuerteCrypter.1.sg +12 -0
  799. db/PE/Amber.2.sg +16 -0
  800. db/PE/Anskya Binder.2.sg +12 -0
  801. db/PE/Anskya NTPacker Generator.2.sg +11 -0
  802. db/PE/Anslym Crypter.2.sg +11 -0
  803. db/PE/AntiDote.2.sg +34 -0
  804. db/PE/Anticrack Software Protector.2.sg +15 -0
  805. db/PE/Apex-c.2.sg +12 -0
  806. db/PE/App Encryptor.2.sg +13 -0
  807. db/PE/Armadillo.2.sg +48 -0
  808. db/PE/AssemblyInvoke.2.sg +13 -0
  809. db/PE/Astrum.1.sg +21 -0
  810. db/PE/AtomPePacker.2.sg +15 -0
  811. db/PE/AutoHotKey.3.sg +20 -0
  812. db/PE/AutoIt.3.sg +20 -0
  813. db/PE/AutoPlay Media Studio.1.sg +26 -0
  814. db/PE/Autodesk Self-Extract.1.sg +14 -0
  815. db/PE/AutorunProEnterprise.1.sg +16 -0
  816. db/PE/AutorunProEnterpriseII.1.sg +19 -0
  817. db/PE/AverCryptor.2.sg +20 -0
  818. db/PE/Babel .NET.2.sg +17 -0
  819. db/PE/BasicCrypt1.1.sg +12 -0
  820. db/PE/Bat to exe.1.sg +19 -0
  821. db/PE/BattleshipCrypter.2.sg +11 -0
  822. db/PE/BeRo Tiny Pascal.4.sg +12 -0
  823. db/PE/BeRo.2.sg +37 -0
  824. db/PE/Berio.2.sg +15 -0
  825. db/PE/BitRock Installer.1.sg +16 -0
  826. db/PE/BitShape PE Crypt.2.sg +15 -0
  827. db/PE/Blade Joiner.1.sg +12 -0
  828. db/PE/BlindSpot.2.sg +12 -0
  829. db/PE/Blizzard PrePatch.1.sg +14 -0
  830. db/PE/BobPack.2.sg +12 -0
  831. db/PE/BopCrypt.2.sg +12 -0
  832. db/PE/Borland C++.4.sg +36 -0
  833. db/PE/Box Stub.1.sg +14 -0
  834. db/PE/Break Into Pattern.2.sg +12 -0
  835. db/PE/BulletProofSoft installer.1.sg +13 -0
  836. db/PE/ByfronTech.2.sg +67 -0
  837. db/PE/Bytessence Install Maker.1.sg +19 -0
  838. db/PE/CDS SS.2.sg +12 -0
  839. db/PE/CExe.2.sg +12 -0
  840. db/PE/CICompress.2.sg +12 -0
  841. db/PE/CSDD's installer.1.sg +17 -0
  842. db/PE/CUDA-Driver.4.sg +14 -0
  843. db/PE/CZ installer.1.sg +18 -0
  844. db/PE/Cab.1.sg +60 -0
  845. db/PE/Cab.6.sg +33 -0
  846. db/PE/Calibre_installer.1.sg +19 -0
  847. db/PE/Cameyo.2.sg +16 -0
  848. db/PE/Celesty File Binder.1.sg +18 -0
  849. db/PE/ChainskiCrypter.1.sg +11 -0
  850. db/PE/Chaos Software installer.1.sg +14 -0
  851. db/PE/Chilkat ZIP Self-Extractor.1.sg +14 -0
  852. db/PE/Chromium Embedded Framework.4.sg +14 -0
  853. db/PE/Chromium WebView.4.sg +14 -0
  854. db/PE/CipherWall.1.sg +20 -0
  855. db/PE/CliSecure.2.sg +21 -0
  856. db/PE/ClickTeam.1.sg +16 -0
  857. db/PE/Code Virtualizer.2.sg +12 -0
  858. db/PE/Code-Lock.2.sg +11 -0
  859. db/PE/CodeCrypt.2.sg +21 -0
  860. db/PE/CodeCrypter.2.sg +12 -0
  861. db/PE/CodeFusion Wizard.1.sg +14 -0
  862. db/PE/CodeSafe.2.sg +12 -0
  863. db/PE/CodeVeil.2.sg +20 -0
  864. db/PE/Codegear Installer.1.sg +14 -0
  865. db/PE/Codewall.2.sg +18 -0
  866. db/PE/CoffeeCup SFX.2.sg +14 -0
  867. db/PE/Confuser.2.sg +41 -0
  868. db/PE/CopyMinder.2.sg +11 -0
  869. db/PE/Costura.Fody.4.sg +13 -0
  870. db/PE/CreateInstall.1.sg +22 -0
  871. db/PE/Crinkler.2.sg +15 -0
  872. db/PE/Crunch.2.sg +25 -0
  873. db/PE/CrypKey Installer.1.sg +14 -0
  874. db/PE/CrypKey.2.sg +20 -0
  875. db/PE/CrypToCrack Pe Protector.2.sg +15 -0
  876. db/PE/Cryptect.1.sg +13 -0
  877. db/PE/Crypter.2.sg +12 -0
  878. db/PE/Cryptic.2.sg +12 -0
  879. db/PE/CryptoObfuscator.2.sg +17 -0
  880. db/PE/Cxfreeze.1.sg +25 -0
  881. db/PE/Cygwin32.4.sg +11 -0
  882. db/PE/DBPE.2.sg +25 -0
  883. db/PE/DCrypt Private.2.sg +12 -0
  884. db/PE/DECFortran.4.sg +22 -0
  885. db/PE/DEF.2.sg +12 -0
  886. db/PE/DJoin.1.sg +17 -0
  887. db/PE/DMD.4.sg +43 -0
  888. db/PE/DNGuard.2.sg +30 -0
  889. db/PE/DS.EZ-Logic.sg +12 -0
  890. db/PE/DS.Eutron SmartKey dongle.5.sg +25 -0
  891. db/PE/DS.Flexlm.4.sg +19 -0
  892. db/PE/DS.HASP dongle.5.sg +18 -0
  893. db/PE/DS.Hardlock dongle.5.sg +20 -0
  894. db/PE/DS.Key-Lok II dongle.5.sg +19 -0
  895. db/PE/DS.MARX Crypto-Box dongle.5.sg +26 -0
  896. db/PE/DS.Matrix Hardware Lock dongle.5.sg +16 -0
  897. db/PE/DS.NetHASP dongle.5.sg +15 -0
  898. db/PE/DS.Novex dongle.4.sg +14 -0
  899. db/PE/DS.RLM.4.sg +21 -0
  900. db/PE/DS.Rockey4 dongle.5.sg +20 -0
  901. db/PE/DS.SenseLock dongle.5.sg +17 -0
  902. db/PE/DS.Sentinel SuperPro dongle.5.sg +16 -0
  903. db/PE/DS.Sentinel SuperPro.2.sg +21 -0
  904. db/PE/DS.Sentinel dongle.5.sg +24 -0
  905. db/PE/DS.SoftLok dongle.5.sg +15 -0
  906. db/PE/DS.Unikey dongle.5.sg +26 -0
  907. db/PE/DS.WIBU Key dongle.5.sg +16 -0
  908. db/PE/DS.Wizzkey dongle.5.sg +14 -0
  909. db/PE/DYAMAR.2.sg +12 -0
  910. db/PE/DZA Patcher.2.sg +15 -0
  911. db/PE/Daemon Protect.2.sg +13 -0
  912. db/PE/DalKrypt.2.sg +12 -0
  913. db/PE/DataAnubis.1.sg +13 -0
  914. db/PE/DeepSea.2.sg +18 -0
  915. db/PE/DelZip SFX.2.sg +14 -0
  916. db/PE/Delphi.4.sg +270 -0
  917. db/PE/Denuvo protector.2.sg +14 -0
  918. db/PE/DeployMaster.1.sg +15 -0
  919. db/PE/DesktopX Installer.1.sg +18 -0
  920. db/PE/Dimd SFX.1.sg +15 -0
  921. db/PE/Ding Boys PE-lock Phantasm.2.sg +18 -0
  922. db/PE/DirTy CrYpt0r.2.sg +12 -0
  923. db/PE/Direct2D.4.sg +14 -0
  924. db/PE/Direct3D.4.sg +38 -0
  925. db/PE/DirectX.4.sg +14 -0
  926. db/PE/DockerDesktopInstaller.1.sg +20 -0
  927. db/PE/Dolphin VM.1.sg +18 -0
  928. db/PE/DotFix Nice Protect.2.sg +23 -0
  929. db/PE/Dotfuscator.2.sg +11 -0
  930. db/PE/DragonArmor.2.sg +12 -0
  931. db/PE/Duals eXe Encryptor.2.sg +19 -0
  932. db/PE/DxPack.2.sg +22 -0
  933. db/PE/ENIGMA.2.sg +111 -0
  934. db/PE/EP.2.sg +15 -0
  935. db/PE/EP.MPRESS.2.sg +37 -0
  936. db/PE/EP.MSC.4.sg +21 -0
  937. db/PE/EXE Password Protector.2.sg +12 -0
  938. db/PE/EXE32Pack.2.sg +12 -0
  939. db/PE/EXECrypt.2.sg +12 -0
  940. db/PE/EXECryptor.2.sg +99 -0
  941. db/PE/EXEFog.2.sg +22 -0
  942. db/PE/EXERefactor.2.sg +12 -0
  943. db/PE/Eazfuscator.2.sg +17 -0
  944. db/PE/ElecKey.2.sg +34 -0
  945. db/PE/ElectronApp.3.sg +22 -0
  946. db/PE/Embed PE.2.sg +22 -0
  947. db/PE/EncryptPE.2.sg +31 -0
  948. db/PE/Enigma Installer.1.sg +22 -0
  949. db/PE/Enigma Virtual Box.2.sg +17 -0
  950. db/PE/Envoy Packager.1.sg +15 -0
  951. db/PE/Escargot.2.sg +15 -0
  952. db/PE/Eschalon installer.1.sg +15 -0
  953. db/PE/ExE Pack.2.sg +23 -0
  954. db/PE/Excelsior Installer.1.sg +14 -0
  955. db/PE/Excelsior JET.4.sg +35 -0
  956. db/PE/Exe Guarder.2.sg +12 -0
  957. db/PE/Exe Locker.2.sg +12 -0
  958. db/PE/Exe Shield.2.sg +28 -0
  959. db/PE/ExeJoiner.1.sg +12 -0
  960. db/PE/ExeSafeguard.2.sg +12 -0
  961. db/PE/ExeSmasher.2.sg +11 -0
  962. db/PE/ExeSplitter.1.sg +24 -0
  963. db/PE/ExeStealth.2.sg +40 -0
  964. db/PE/FASM.4.sg +21 -0
  965. db/PE/FDM Installer.1.sg +18 -0
  966. db/PE/FISH .NET.2.sg +17 -0
  967. db/PE/FSG.2.sg +175 -0
  968. db/PE/FakeNinja.2.sg +16 -0
  969. db/PE/FileSplit Self-Merger.2.sg +13 -0
  970. db/PE/Fish PE.2.sg +22 -0
  971. db/PE/FishPE Shield.2.sg +21 -0
  972. db/PE/FixupPak.2.sg +12 -0
  973. db/PE/FlashBack Protector.2.sg +13 -0
  974. db/PE/FlashPlayer.1.sg +21 -0
  975. db/PE/Fly-Crypter.2.sg +15 -0
  976. db/PE/Fox Pro.3.sg +25 -0
  977. db/PE/Free Basic.4.sg +24 -0
  978. db/PE/Free Pascal.4.sg +53 -0
  979. db/PE/FreeCryptor.2.sg +22 -0
  980. db/PE/FreeJoiner.1.sg +45 -0
  981. db/PE/Fuck n Joy.2.sg +12 -0
  982. db/PE/Fusion.2.sg +12 -0
  983. db/PE/G!X Protector.2.sg +12 -0
  984. db/PE/GPInstall.1.sg +19 -0
  985. db/PE/GSplit.1.sg +20 -0
  986. db/PE/GZip.1.sg +20 -0
  987. db/PE/GameGuard.2.sg +12 -0
  988. db/PE/Gentee Installer.1.sg +34 -0
  989. db/PE/Ghost Installer.1.sg +16 -0
  990. db/PE/GkSetup.1.sg +18 -0
  991. db/PE/Go.4.sg +65 -0
  992. db/PE/Goats PE Mutilator.2.sg +12 -0
  993. db/PE/GoldSrc.3.sg +19 -0
  994. db/PE/Goliath.2.sg +15 -0
  995. db/PE/Gremlin patcher.1.sg +21 -0
  996. db/PE/GuardantStealth.2.sg +11 -0
  997. db/PE/HASP HL Protection.2.sg +34 -0
  998. db/PE/HASP.2.sg +22 -0
  999. db/PE/HTML executable.1.sg +18 -0
  1000. db/PE/HackShield.2.sg +17 -0
  1001. db/PE/Hamrick_Software_installer.1.sg +16 -0
  1002. db/PE/Hide&Protect.2.sg +12 -0
  1003. db/PE/HidePE.2.sg +255 -0
  1004. db/PE/HyperTech Crackproof.2.sg +13 -0
  1005. db/PE/I-D Media installer.1.sg +14 -0
  1006. db/PE/ICrypt.2.sg +12 -0
  1007. db/PE/ID Application Protector(NoNamePacker).2.sg +12 -0
  1008. db/PE/IDM Installer.1.sg +15 -0
  1009. db/PE/ILProtector.2.sg +19 -0
  1010. db/PE/ILUCRYPT.2.sg +15 -0
  1011. db/PE/IMPostor Pack.2.sg +12 -0
  1012. db/PE/INCrypter.2.sg +12 -0
  1013. db/PE/INFTool.1.sg +15 -0
  1014. db/PE/INTENIUM.1.sg +13 -0
  1015. db/PE/IProtect.2.sg +17 -0
  1016. db/PE/Inno Setup Module.1.sg +97 -0
  1017. db/PE/Inquartos Obfuscator.2.sg +12 -0
  1018. db/PE/Instalit.1.sg +25 -0
  1019. db/PE/Install Factory.1.sg +14 -0
  1020. db/PE/Install4j installer.1.sg +16 -0
  1021. db/PE/InstallAnywhere.1.sg +36 -0
  1022. db/PE/InstallShield.1.sg +91 -0
  1023. db/PE/InstallUs.1.sg +16 -0
  1024. db/PE/Intel C.4.sg +13 -0
  1025. db/PE/Intel IPP.sg +15 -0
  1026. db/PE/IntelliProtector.2.sg +17 -0
  1027. db/PE/InxObfuscator.2.sg +14 -0
  1028. db/PE/JDPack.2.sg +15 -0
  1029. db/PE/JScript.4.sg +14 -0
  1030. db/PE/Jar2exe.1.sg +26 -0
  1031. db/PE/KBys Packer.2.sg +21 -0
  1032. db/PE/KCryptor.2.sg +13 -0
  1033. db/PE/KGCrypt.2.sg +11 -0
  1034. db/PE/KRZIP SFX.2.sg +15 -0
  1035. db/PE/KoiVM.2.sg +22 -0
  1036. db/PE/Konekt Protector.2.sg +12 -0
  1037. db/PE/Krypton.2.sg +25 -0
  1038. db/PE/Kryptonit.2.sg +16 -0
  1039. db/PE/LARP.2.sg +13 -0
  1040. db/PE/LCC-Win32.4.sg +14 -0
  1041. db/PE/LCL.5.sg +17 -0
  1042. db/PE/LDK .NET.2.sg +13 -0
  1043. db/PE/LDK.2.sg +21 -0
  1044. db/PE/Lahey Fortran 90.4.sg +19 -0
  1045. db/PE/LameCrypt.2.sg +12 -0
  1046. db/PE/Laserlok.2.sg +12 -0
  1047. db/PE/LimeCrypter.2.sg +58 -0
  1048. db/PE/Lua Runtime.4.sg +16 -0
  1049. db/PE/LucasArts Update Installer.1.sg +14 -0
  1050. db/PE/Lyme SFX.1.sg +15 -0
  1051. db/PE/MEW.2.sg +23 -0
  1052. db/PE/MP-ZipTool.1.sg +14 -0
  1053. db/PE/MPQ.1.sg +15 -0
  1054. db/PE/MPRESS.2.sg +20 -0
  1055. db/PE/MSLRH.2.sg +117 -0
  1056. db/PE/MZ-Crypt.2.sg +12 -0
  1057. db/PE/MZ0oPE.2.sg +12 -0
  1058. db/PE/MaskPE.2.sg +15 -0
  1059. db/PE/Maxtocode.2.sg +21 -0
  1060. db/PE/Metrowerks CodeWarrior.2.sg +26 -0
  1061. db/PE/MicroJoiner.1.sg +21 -0
  1062. db/PE/Microsoft .NET Runtime.4.sg +15 -0
  1063. db/PE/Microsoft C Runtime.4.sg +16 -0
  1064. db/PE/Microsoft Class Installer.1.sg +22 -0
  1065. db/PE/Microsoft Compound-based installer.1.sg +14 -0
  1066. db/PE/Microsoft Edge WebView.4.sg +14 -0
  1067. db/PE/Microsoft Warbird.2.sg +15 -0
  1068. db/PE/Microsoft dotNet installer.1.sg +15 -0
  1069. db/PE/Microsoft.6.sg +1715 -0
  1070. db/PE/Miktex Installer.1.sg +15 -0
  1071. db/PE/MinGW.4.sg +65 -0
  1072. db/PE/Minke.2.sg +12 -0
  1073. db/PE/Mioplanet installer.1.sg +14 -0
  1074. db/PE/MoleBox.2.sg +41 -0
  1075. db/PE/Morphine.2.sg +12 -0
  1076. db/PE/Morphnah.2.sg +20 -0
  1077. db/PE/Morton installer.1.sg +21 -0
  1078. db/PE/Multimedia Fusion Installer.1.sg +14 -0
  1079. db/PE/Mystic Compressor.2.sg +15 -0
  1080. db/PE/N-Code.2.sg +13 -0
  1081. db/PE/N-Joiner.1.sg +12 -0
  1082. db/PE/N-Joy.2.sg +25 -0
  1083. db/PE/NOS Installer.1.sg +22 -0
  1084. db/PE/NOS Packer.2.sg +13 -0
  1085. db/PE/NTPacker.2.sg +12 -0
  1086. db/PE/NTShell.2.sg +13 -0
  1087. db/PE/NTkrnl Protector.2.sg +37 -0
  1088. db/PE/NakedPacker.2.sg +13 -0
  1089. db/PE/NanoZip.1.sg +16 -0
  1090. db/PE/Native UD Packer.2.sg +12 -0
  1091. db/PE/NativeCryptor by DosX.2.sg +13 -0
  1092. db/PE/NecroVM.Virt.2.sg +44 -0
  1093. db/PE/NeoLite.2.sg +38 -0
  1094. db/PE/NetCompilersLibraries.4.sg +37 -0
  1095. db/PE/NetReactor.2.sg +102 -0
  1096. db/PE/NetShieldProtector.2.sg +55 -0
  1097. db/PE/Newtonsoft.Json.4.sg +14 -0
  1098. db/PE/Nim.4.sg +17 -0
  1099. db/PE/Ningishzida.2.sg +12 -0
  1100. db/PE/NoobyProtect.2.sg +11 -0
  1101. db/PE/NoodleCrypt.2.sg +12 -0
  1102. db/PE/North Star PE Shrinker.2.sg +12 -0
  1103. db/PE/NsPacK.2.sg +40 -0
  1104. db/PE/Nuitka.1.sg +25 -0
  1105. db/PE/Nullsoft Scriptable Install System.1.sg +96 -0
  1106. db/PE/O'Setup95.1.sg +15 -0
  1107. db/PE/ORiEN.2.sg +19 -0
  1108. db/PE/Obfuscar.2.sg +14 -0
  1109. db/PE/Obfuscator .NET 2009.2.sg +16 -0
  1110. db/PE/Obsidium.2.sg +114 -0
  1111. db/PE/Open Source Code Crypter.2.sg +11 -0
  1112. db/PE/OpenAL.4.sg +14 -0
  1113. db/PE/OpenCL.4.sg +14 -0
  1114. db/PE/OpenGL.4.sg +14 -0
  1115. db/PE/OpenSSL.4.sg +14 -0
  1116. db/PE/Oreans CodeVirtualizer.2.sg +14 -0
  1117. db/PE/OxiJoiner.sg +16 -0
  1118. db/PE/PACE.2.sg +17 -0
  1119. db/PE/PACKWIN.2.sg +12 -0
  1120. db/PE/PC Guard.2.sg +20 -0
  1121. db/PE/PCInstall.1.sg +14 -0
  1122. db/PE/PCShrink.2.sg +15 -0
  1123. db/PE/PE Diminisher.2.sg +16 -0
  1124. db/PE/PE Encrypt.2.sg +12 -0
  1125. db/PE/PE Intro.2.sg +12 -0
  1126. db/PE/PE Lock NT.2.sg +21 -0
  1127. db/PE/PE Password.2.sg +12 -0
  1128. db/PE/PE Protect.2.sg +15 -0
  1129. db/PE/PE Quake.2.sg +13 -0
  1130. db/PE/PE-Admin.2.sg +12 -0
  1131. db/PE/PE-Armor.2.sg +21 -0
  1132. db/PE/PE-Shield.2.sg +16 -0
  1133. db/PE/PEBundle.2.sg +25 -0
  1134. db/PE/PECRYPT32.2.sg +22 -0
  1135. db/PE/PECompact.2.sg +167 -0
  1136. db/PE/PELock.2.sg +21 -0
  1137. db/PE/PENightMare.2.sg +15 -0
  1138. db/PE/PESpin.2.sg +56 -0
  1139. db/PE/PETetris.sg +11 -0
  1140. db/PE/PEUnion.2.sg +122 -0
  1141. db/PE/PEncrypt.2.sg +21 -0
  1142. db/PE/PEnguinCrypt.2.sg +12 -0
  1143. db/PE/PIMP.1.sg +14 -0
  1144. db/PE/PKLITE.2.sg +15 -0
  1145. db/PE/PKSFX.1.sg +14 -0
  1146. db/PE/PMaker.1.sg +13 -0
  1147. db/PE/PUNiSHER.2.sg +12 -0
  1148. db/PE/Pack Master.2.sg +12 -0
  1149. db/PE/PackageForTheWeb.1.sg +15 -0
  1150. db/PE/Packanoid.2.sg +12 -0
  1151. db/PE/Packman.2.sg +18 -0
  1152. db/PE/Pantaray QSetup.1.sg +29 -0
  1153. db/PE/Paquet Builder.1.sg +15 -0
  1154. db/PE/Paquet.1.sg +16 -0
  1155. db/PE/Patch.1.sg +20 -0
  1156. db/PE/Pe Ninja.2.sg +12 -0
  1157. db/PE/Pe123.2.sg +15 -0
  1158. db/PE/PePack.2.sg +16 -0
  1159. db/PE/PeX.2.sg +12 -0
  1160. db/PE/Pelles C.4.sg +13 -0
  1161. db/PE/Perl.3.sg +91 -0
  1162. db/PE/PerlApp.1.sg +21 -0
  1163. db/PE/Petite.2.sg +56 -0
  1164. db/PE/Phoenix.2.sg +19 -0
  1165. db/PE/Photo Compiler.2.sg +15 -0
  1166. db/PE/PolyCrypt PE.2.sg +13 -0
  1167. db/PE/PolyEnE.2.sg +12 -0
  1168. db/PE/Power Screen Recorder.1.sg +16 -0
  1169. db/PE/PowerBASIC.4.sg +13 -0
  1170. db/PE/Private EXE Protector.2.sg +61 -0
  1171. db/PE/Protection Plus.1.sg +13 -0
  1172. db/PE/PureBasic.4.sg +33 -0
  1173. db/PE/PwdProtect.2.sg +10 -0
  1174. db/PE/Py2exe.1.sg +16 -0
  1175. db/PE/PyInstaller.2.sg +71 -0
  1176. db/PE/PyInstallerHider.1.sg +26 -0
  1177. db/PE/Python.3.sg +21 -0
  1178. db/PE/QT installer.1.sg +11 -0
  1179. db/PE/QT.5.sg +35 -0
  1180. db/PE/QrYPt0r.2.sg +13 -0
  1181. db/PE/Quantum.1.sg +17 -0
  1182. db/PE/QuickPack NT.2.sg +13 -0
  1183. db/PE/RCryptor.2.sg +39 -0
  1184. db/PE/RDG Tejon Crypter.2.sg +10 -0
  1185. db/PE/REVProt.2.sg +13 -0
  1186. db/PE/RJoiner.1.sg +17 -0
  1187. db/PE/RLP.2.sg +12 -0
  1188. db/PE/RLPack.2.sg +47 -0
  1189. db/PE/RNsetup.1.sg +17 -0
  1190. db/PE/RPP.1.sg +14 -0
  1191. db/PE/RTPatch.1.sg +15 -0
  1192. db/PE/ReNET-pack.2.sg +13 -0
  1193. db/PE/ReactOS PE file.1.sg +15 -0
  1194. db/PE/RealBasic.4.sg +24 -0
  1195. db/PE/Resources.6.sg +19 -0
  1196. db/PE/RosASM.4.sg +19 -0
  1197. db/PE/Rust.4.sg +37 -0
  1198. db/PE/SC Obfuscator.2.sg +12 -0
  1199. db/PE/SCE installer.1.sg +18 -0
  1200. db/PE/SDProtector.2.sg +18 -0
  1201. db/PE/SFXRun.1.sg +14 -0
  1202. db/PE/SLVc0deProtector.2.sg +21 -0
  1203. db/PE/STATICSUP.1.sg +14 -0
  1204. db/PE/STUD.2.sg +12 -0
  1205. db/PE/SVK Protector.2.sg +22 -0
  1206. db/PE/SZDD.1.sg +40 -0
  1207. db/PE/Safedisc.2.sg +12 -0
  1208. db/PE/Safenet RMS.2.sg +12 -0
  1209. db/PE/Safengine Shielden.2.sg +36 -0
  1210. db/PE/ScriptHookV.4.sg +14 -0
  1211. db/PE/SecuPack.2.sg +13 -0
  1212. db/PE/SecuROM.2.sg +22 -0
  1213. db/PE/Secure Shade.2.sg +13 -0
  1214. db/PE/SerGreen Appacker.2.sg +16 -0
  1215. db/PE/Setup Factory.1.sg +43 -0
  1216. db/PE/Setup-Specialist.1.sg +15 -0
  1217. db/PE/SexCrypt.2.sg +12 -0
  1218. db/PE/Sexe Crypter.2.sg +12 -0
  1219. db/PE/SfxCA.1.sg +20 -0
  1220. db/PE/Shrink Wrap.2.sg +12 -0
  1221. db/PE/Shrinker.2.sg +27 -0
  1222. db/PE/SimbiOZ.2.sg +19 -0
  1223. db/PE/Simple Pack.2.sg +15 -0
  1224. db/PE/Simple UPX Cryptor.2.sg +17 -0
  1225. db/PE/SimplePackerByEronana.2.sg +14 -0
  1226. db/PE/Sixxpack.2.sg +20 -0
  1227. db/PE/Skater.2.sg +16 -0
  1228. db/PE/Smart Assembly.2.sg +36 -0
  1229. db/PE/Smart Install Maker.1.sg +17 -0
  1230. db/PE/SmokesCrypt.2.sg +12 -0
  1231. db/PE/Soft Defender.2.sg +20 -0
  1232. db/PE/SoftProtect.2.sg +13 -0
  1233. db/PE/SoftSentry.2.sg +16 -0
  1234. db/PE/Softlocx.1.sg +13 -0
  1235. db/PE/Software Compress.2.sg +15 -0
  1236. db/PE/Sony Windows Installer.1.sg +16 -0
  1237. db/PE/SpASM.4.sg +19 -0
  1238. db/PE/Special EXE Password Protector.2.sg +12 -0
  1239. db/PE/Spices .Net.2.sg +34 -0
  1240. db/PE/Spoon Installer.1.sg +23 -0
  1241. db/PE/Spoon Studio.2.sg +16 -0
  1242. db/PE/Squeez SFX.1.sg +15 -0
  1243. db/PE/Squirrel installer.1.sg +16 -0
  1244. db/PE/Squishy.2.sg +10 -0
  1245. db/PE/StarForce.2.sg +55 -0
  1246. db/PE/Ste@lth PE.2.sg +16 -0
  1247. db/PE/Steam.2.sg +16 -0
  1248. db/PE/Steam.4.sg +14 -0
  1249. db/PE/Stones PE Encryptor.2.sg +22 -0
  1250. db/PE/Store Installer.1.sg +13 -0
  1251. db/PE/SwiftView installer.1.sg +14 -0
  1252. db/PE/Synactis In-The-Box Installer.1.sg +21 -0
  1253. db/PE/TPP Pack.2.sg +12 -0
  1254. db/PE/Tages.2.sg +12 -0
  1255. db/PE/Tarma Installer.1.sg +29 -0
  1256. db/PE/The Best Cryptor.2.sg +12 -0
  1257. db/PE/TheArk.2.sg +10 -0
  1258. db/PE/TheHypers protector.2.sg +11 -0
  1259. db/PE/Themida.2.sg +86 -0
  1260. db/PE/Thinstall.2.sg +89 -0
  1261. db/PE/TrueCrypt-VeraCrypt installer.1.sg +14 -0
  1262. db/PE/UFI_installer.1.sg +14 -0
  1263. db/PE/UG2002 Cruncher.2.sg +12 -0
  1264. db/PE/UPX Inliner.2.sg +12 -0
  1265. db/PE/UPX Modifier.2.sg +12 -0
  1266. db/PE/UPX Mutanter.2.sg +21 -0
  1267. db/PE/UPX Protector.2.sg +12 -0
  1268. db/PE/UPX lock.2.sg +12 -0
  1269. db/PE/UPX scrambler.2.sg +20 -0
  1270. db/PE/UPX shit.2.sg +21 -0
  1271. db/PE/UPX-Patcher.6.sg +29 -0
  1272. db/PE/UPX.2.sg +171 -0
  1273. db/PE/UPXFreak.2.sg +12 -0
  1274. db/PE/UPXcrypter.2.sg +11 -0
  1275. db/PE/UPolyX.2.sg +30 -0
  1276. db/PE/UltraPro.2.sg +18 -0
  1277. db/PE/UnoPiX.2.sg +27 -0
  1278. db/PE/VBox.2.sg +15 -0
  1279. db/PE/VCasm-Protector.2.sg +21 -0
  1280. db/PE/VMProtect.2.sg +287 -0
  1281. db/PE/VMProtect_NET.2.sg +54 -0
  1282. db/PE/VMWare.1.sg +41 -0
  1283. db/PE/VPacker.2.sg +13 -0
  1284. db/PE/VaySoft_PDF2EXE.2.sg +16 -0
  1285. db/PE/VbsToExe.1.sg +29 -0
  1286. db/PE/Virbox.2.sg +13 -0
  1287. db/PE/Virtual Pascal.4.sg +14 -0
  1288. db/PE/Vise.1.sg +16 -0
  1289. db/PE/Visual Objects.4.sg +12 -0
  1290. db/PE/Visual Prolog.4.sg +14 -0
  1291. db/PE/VisualStudio_NET.6.sg +14 -0
  1292. db/PE/Vulkan.4.sg +14 -0
  1293. db/PE/WF.Guna.UI2.4.sg +15 -0
  1294. db/PE/WF.Krypton.4.sg +14 -0
  1295. db/PE/WF.MetroFramework.4.sg +14 -0
  1296. db/PE/WF_WPF.MaterialSkin.4.sg +14 -0
  1297. db/PE/WWPACK.2.sg +11 -0
  1298. db/PE/Watcom.4.sg +35 -0
  1299. db/PE/WiX Toolset installer.1.sg +20 -0
  1300. db/PE/Wibu Codemeter.1.sg +30 -0
  1301. db/PE/WinACE.1.sg +12 -0
  1302. db/PE/WinIMP.1.sg +15 -0
  1303. db/PE/WinImage.1.sg +15 -0
  1304. db/PE/WinKript.2.sg +12 -0
  1305. db/PE/WinPatch.1.sg +18 -0
  1306. db/PE/WinRAR Installer.1.sg +28 -0
  1307. db/PE/WinRAR.1.sg +18 -0
  1308. db/PE/WinUpack.2.sg +61 -0
  1309. db/PE/WinZip.1.sg +44 -0
  1310. db/PE/Winamp Installer.1.sg +14 -0
  1311. db/PE/Wind of Crypt.2.sg +12 -0
  1312. db/PE/Windows Authenticode.7.sg +13 -0
  1313. db/PE/Windows Installer.1.sg +22 -0
  1314. db/PE/Wine.3.sg +12 -0
  1315. db/PE/Wise Installer.1.sg +52 -0
  1316. db/PE/XCR.2.sg +13 -0
  1317. db/PE/XComp.2.sg +19 -0
  1318. db/PE/XPACK.2.sg +17 -0
  1319. db/PE/Xash.3.sg +18 -0
  1320. db/PE/Xbase.4.sg +29 -0
  1321. db/PE/Xenocode Postbuild.2.sg +12 -0
  1322. db/PE/Xojo.3.sg +29 -0
  1323. db/PE/Xoreax installer.1.sg +19 -0
  1324. db/PE/Xtreamlok.2.sg +22 -0
  1325. db/PE/Xtreme-Protector.2.sg +12 -0
  1326. db/PE/Yano.2.sg +12 -0
  1327. db/PE/Yodas Crypter.2.sg +35 -0
  1328. db/PE/Yodas Protector.2.sg +15 -0
  1329. db/PE/Yummy Game SoftwareShield.2.sg +17 -0
  1330. db/PE/Zig.4.sg +20 -0
  1331. db/PE/Zip SFX.2.sg +63 -0
  1332. db/PE/ZipCentral SFX.1.sg +16 -0
  1333. db/PE/Zprotect.2.sg +22 -0
  1334. db/PE/Zydis.4.sg +14 -0
  1335. db/PE/_BJFnt.2.sg +18 -0
  1336. db/PE/_FixDetects.9.sg +24 -0
  1337. db/PE/_NET Spider.2.sg +14 -0
  1338. db/PE/_NETZ.2.sg +13 -0
  1339. db/PE/_PE.0.sg +15 -0
  1340. db/PE/__GenericHeuristicAnalysis_By_DosX.7.sg +2582 -0
  1341. db/PE/_denuvoComplete.2.sg +98 -0
  1342. db/PE/_init +142 -0
  1343. db/PE/_netshrink.2.sg +25 -0
  1344. db/PE/aPack.2.sg +26 -0
  1345. db/PE/arj.6.sg +9 -0
  1346. db/PE/ass-crypter.2.sg +11 -0
  1347. db/PE/avast Antivirus installer.1.sg +14 -0
  1348. db/PE/bambam.2.sg +12 -0
  1349. db/PE/bbfb.2.sg +22 -0
  1350. db/PE/beria.2.sg +14 -0
  1351. db/PE/curl.4.sg +14 -0
  1352. db/PE/dUP.1.sg +19 -0
  1353. db/PE/darkeye.1.sg +13 -0
  1354. db/PE/de4dot.6.sg +20 -0
  1355. db/PE/dePACK.2.sg +13 -0
  1356. db/PE/distutils.1.sg +18 -0
  1357. db/PE/eXPressor.2.sg +47 -0
  1358. db/PE/ezip.2.sg +14 -0
  1359. db/PE/gcc.4.sg +14 -0
  1360. db/PE/hXOR packer.sg +12 -0
  1361. db/PE/hmimys PE-Pack.2.sg +23 -0
  1362. db/PE/hmimys Protect.2.sg +18 -0
  1363. db/PE/iPB Protect.2.sg +12 -0
  1364. db/PE/inPEct.1.sg +9 -0
  1365. db/PE/java.3.sg +20 -0
  1366. db/PE/keygens.1.sg +25 -0
  1367. db/PE/kkrunchy.2.sg +19 -0
  1368. db/PE/kkryptor.2.sg +13 -0
  1369. db/PE/ldc.4.sg +12 -0
  1370. db/PE/linker.6.sg +100 -0
  1371. db/PE/mPack.2.sg +15 -0
  1372. db/PE/mkfPack.2.sg +12 -0
  1373. db/PE/muckis protector.2.sg +14 -0
  1374. db/PE/nPack.2.sg +36 -0
  1375. db/PE/obfus_h.5.sg +15 -0
  1376. db/PE/obfusheader_h.5.sg +32 -0
  1377. db/PE/rar.1.sg +16 -0
  1378. db/PE/rar.6.sg +9 -0
  1379. db/PE/scr2exe.2.sg +19 -0
  1380. db/PE/simple_patch.1.sg +16 -0
  1381. db/PE/sql-server.sg +14 -0
  1382. db/PE/sqlite.4.sg +14 -0
  1383. db/PE/sqx.1.sg +19 -0
  1384. db/PE/tElock.2.sg +81 -0
  1385. db/PE/tcc.4.sg +42 -0
  1386. db/PE/virus-njrat-0.7d.7.sg +136 -0
  1387. db/PE/wxWidgets.5.sg +27 -0
  1388. db/PE/yzPack.2.sg +26 -0
  1389. db/PE/zip.6.sg +9 -0
  1390. db/PE/zlib.4.sg +14 -0
  1391. db/QtFramework +16 -0
  1392. db/RosASM +13 -0
  1393. db/SpASM +8 -0
  1394. db/ZIP/_init +4 -0
  1395. db/_init +128 -0
  1396. db/archive-file +36 -0
  1397. db/arj +80 -0
  1398. db/cab +46 -0
  1399. db/duration +14 -0
  1400. db/language +33 -0
  1401. db/python +30 -0
  1402. db/rar +62 -0
  1403. db/read +423 -0
  1404. db/result +27 -0
  1405. db/result-general +32 -0
  1406. db/result-minimal +27 -0
  1407. db/shell-script +24 -0
  1408. db/wxWidgets +12 -0
  1409. db/zip-file +92 -0
  1410. db/zlib +23 -0
  1411. die/Qt6Concurrent.dll +0 -0
  1412. die/Qt6Core.dll +0 -0
  1413. die/Qt6Network.dll +0 -0
  1414. die/Qt6Qml.dll +0 -0
  1415. die/__init__.py +79 -0
  1416. die/_die.cp39-win_amd64.pyd +0 -0
  1417. die/db/db/ACE +45 -0
  1418. die/db/db/APK/PackageName.1.sg +15 -0
  1419. die/db/db/APK/SingleJar.3.sg +10 -0
  1420. die/db/db/APK/_APK.0.sg +15 -0
  1421. die/db/db/APK/_init +4 -0
  1422. die/db/db/Archive/_init +4 -0
  1423. die/db/db/Binary/Amiga loadable.1.sg +16 -0
  1424. die/db/db/Binary/Empty.1.sg +11 -0
  1425. die/db/db/Binary/Img.UDIF.1.sg +15 -0
  1426. die/db/db/Binary/RIFF.1.sg +19 -0
  1427. die/db/db/Binary/U-Boot.1.sg +321 -0
  1428. die/db/db/Binary/Universal Binary.1.sg +17 -0
  1429. die/db/db/Binary/Video.FLV.1.sg +16 -0
  1430. die/db/db/Binary/_init +5 -0
  1431. die/db/db/Binary/archive.7z.1.sg +14 -0
  1432. die/db/db/Binary/archive.ACE.1.sg +9 -0
  1433. die/db/db/Binary/archive.AR.1.sg +84 -0
  1434. die/db/db/Binary/archive.ARC.1.sg +18 -0
  1435. die/db/db/Binary/archive.ARJ.1.sg +8 -0
  1436. die/db/db/Binary/archive.ASAR.sg +13 -0
  1437. die/db/db/Binary/archive.BZip.1.sg +20 -0
  1438. die/db/db/Binary/archive.Cab.1.sg +25 -0
  1439. die/db/db/Binary/archive.DEFLATE.1.sg +245 -0
  1440. die/db/db/Binary/archive.DotBundle.sg +9 -0
  1441. die/db/db/Binary/archive.LRZ.1.sg +57 -0
  1442. die/db/db/Binary/archive.LZ4.1.sg +42 -0
  1443. die/db/db/Binary/archive.LZOP.1.sg +14 -0
  1444. die/db/db/Binary/archive.MS Compound.1.sg +24 -0
  1445. die/db/db/Binary/archive.PEA.1.sg +65 -0
  1446. die/db/db/Binary/archive.RAR.1.sg +8 -0
  1447. die/db/db/Binary/archive.Unity.1.sg +73 -0
  1448. die/db/db/Binary/archive.ZIP.1.sg +9 -0
  1449. die/db/db/Binary/archive.ZLIB.1.sg +13 -0
  1450. die/db/db/Binary/archive.ZPAQ.1.sg +16 -0
  1451. die/db/db/Binary/archive.btoa.1.sg +14 -0
  1452. die/db/db/Binary/archives.1.sg +298 -0
  1453. die/db/db/Binary/archives.ancient.sg +721 -0
  1454. die/db/db/Binary/audio.1.sg +8380 -0
  1455. die/db/db/Binary/audio.AU.1.sg +118 -0
  1456. die/db/db/Binary/audio.FSB.1.sg +105 -0
  1457. die/db/db/Binary/audio.VOC.1.sg +140 -0
  1458. die/db/db/Binary/audio.WAV.1.sg +806 -0
  1459. die/db/db/Binary/audio.mp3.2.sg +189 -0
  1460. die/db/db/Binary/backup images.1.sg +27 -0
  1461. die/db/db/Binary/bin.AAALogo.1.sg +16 -0
  1462. die/db/db/Binary/bin.Atari ST.1.sg +12 -0
  1463. die/db/db/Binary/bin.Borland TDS.sg +14 -0
  1464. die/db/db/Binary/bin.GuitarPro.1.sg +26 -0
  1465. die/db/db/Binary/bin.IDA.1.sg +78 -0
  1466. die/db/db/Binary/bin.ISO 9660.1.sg +13 -0
  1467. die/db/db/Binary/bin.JMDL.1.sg +36 -0
  1468. die/db/db/Binary/bin.JSC.1.sg +87 -0
  1469. die/db/db/Binary/bin.Java.1.sg +141 -0
  1470. die/db/db/Binary/bin.LUA.1.sg +47 -0
  1471. die/db/db/Binary/bin.NVA.1.sg +15 -0
  1472. die/db/db/Binary/bin.PDB.1.sg +16 -0
  1473. die/db/db/Binary/bin.PEFF.1.sg +11 -0
  1474. die/db/db/Binary/bin.Python.1.sg +627 -0
  1475. die/db/db/Binary/bin.SWF.1.sg +26 -0
  1476. die/db/db/Binary/cad.DWG.1.sg +62 -0
  1477. die/db/db/Binary/cert.WinAuth.1.sg +13 -0
  1478. die/db/db/Binary/database.SQLite.1.sg +45 -0
  1479. die/db/db/Binary/databases.1.sg +16 -0
  1480. die/db/db/Binary/doc.CHM.1.sg +18 -0
  1481. die/db/db/Binary/doc.DJVU.1.sg +112 -0
  1482. die/db/db/Binary/doc.HLP.1.sg +11 -0
  1483. die/db/db/Binary/doc.PDF.1.sg +16 -0
  1484. die/db/db/Binary/doc.RTF.1.sg +12 -0
  1485. die/db/db/Binary/donut.1.sg +49 -0
  1486. die/db/db/Binary/font.ADOBE.1.sg +35 -0
  1487. die/db/db/Binary/font.BMF.1.sg +63 -0
  1488. die/db/db/Binary/format.MS-DBG.1.sg +19 -0
  1489. die/db/db/Binary/format.MS-VHD.1.sg +61 -0
  1490. die/db/db/Binary/format.MS-WIM.1.sg +43 -0
  1491. die/db/db/Binary/format.MS-XNA.1.sg +80 -0
  1492. die/db/db/Binary/format.UE.1.sg +36 -0
  1493. die/db/db/Binary/format.VDI.1.sg +40 -0
  1494. die/db/db/Binary/formats.1.sg +90 -0
  1495. die/db/db/Binary/graphics.1.sg +37 -0
  1496. die/db/db/Binary/image.ANI.1.sg +26 -0
  1497. die/db/db/Binary/image.BMP.1.sg +48 -0
  1498. die/db/db/Binary/image.CUR.1.sg +55 -0
  1499. die/db/db/Binary/image.DDS.1.sg +26 -0
  1500. die/db/db/Binary/image.EPS.1.sg +26 -0
  1501. die/db/db/Binary/image.GIF.1.sg +97 -0
  1502. die/db/db/Binary/image.ICO.1.sg +57 -0
  1503. die/db/db/Binary/image.JNG.1.sg +34 -0
  1504. die/db/db/Binary/image.JPEG.1.sg +45 -0
  1505. die/db/db/Binary/image.JPEG.DQT.4.sg +13 -0
  1506. die/db/db/Binary/image.JPEG.Tools.3.sg +53 -0
  1507. die/db/db/Binary/image.JPEG.camera.2.sg +16 -0
  1508. die/db/db/Binary/image.JPEG.comment.4.sg +16 -0
  1509. die/db/db/Binary/image.KTX.1.sg +36 -0
  1510. die/db/db/Binary/image.LBM.1.sg +69 -0
  1511. die/db/db/Binary/image.MNG.1.sg +19 -0
  1512. die/db/db/Binary/image.PCX.1.sg +57 -0
  1513. die/db/db/Binary/image.PNG.1.sg +165 -0
  1514. die/db/db/Binary/image.PSD.1.sg +63 -0
  1515. die/db/db/Binary/image.PVR.1.sg +29 -0
  1516. die/db/db/Binary/image.QOI.1.sg +36 -0
  1517. die/db/db/Binary/image.TGA.1.sg +134 -0
  1518. die/db/db/Binary/image.TIFF.1.sg +187 -0
  1519. die/db/db/Binary/image.XAR.1.sg +31 -0
  1520. die/db/db/Binary/img.VM.1.sg +13 -0
  1521. die/db/db/Binary/overlays.6.sg +368 -0
  1522. die/db/db/Binary/pe_to_shellcode.1.sg +107 -0
  1523. die/db/db/Binary/rom.1.sg +579 -0
  1524. die/db/db/Binary/srdi-monoxgas.1.sg +128 -0
  1525. die/db/db/Binary/text.HTML.1.sg +14 -0
  1526. die/db/db/Binary/text.Pascal.1.sg +18 -0
  1527. die/db/db/Binary/text.Shell.1.sg +14 -0
  1528. die/db/db/Binary/text.XML.1.sg +18 -0
  1529. die/db/db/Binary/text.c.1.sg +35 -0
  1530. die/db/db/Binary/text.pdb.1.sg +40 -0
  1531. die/db/db/Binary/text.plaintext.3.sg +25 -0
  1532. die/db/db/Binary/text.python.1.sg +16 -0
  1533. die/db/db/Binary/text.script.2.sg +16 -0
  1534. die/db/db/Binary/video.MP4.1.sg +15 -0
  1535. die/db/db/Borland +19 -0
  1536. die/db/db/COM/32-bit crypt.2.sg +13 -0
  1537. die/db/db/COM/4kZIP.2.sg +13 -0
  1538. die/db/db/COM/8086 Forth 83.4.sg +14 -0
  1539. die/db/db/COM/A3E.1.sg +13 -0
  1540. die/db/db/COM/ABK-Scrambler.2.sg +12 -0
  1541. die/db/db/COM/ACE Scrambler.2.sg +34 -0
  1542. die/db/db/COM/ACiDDRAW.1.sg +16 -0
  1543. die/db/db/COM/ANS2ALL.1.sg +18 -0
  1544. die/db/db/COM/ARF AV Inject.1.sg +14 -0
  1545. die/db/db/COM/ASC2COM.1.sg +25 -0
  1546. die/db/db/COM/ASIC-Basic.4.sg +21 -0
  1547. die/db/db/COM/AVAST-Protect.2.sg +13 -0
  1548. die/db/db/COM/AVPACK.2.sg +14 -0
  1549. die/db/db/COM/AdFlt.2.sg +17 -0
  1550. die/db/db/COM/Anti-Lamer Cryptor.2.sg +14 -0
  1551. die/db/db/COM/Anti-hack encryption system.2.sg +13 -0
  1552. die/db/db/COM/AutoCracker.1.sg +14 -0
  1553. die/db/db/COM/BAT2EXEC.2.sg +18 -0
  1554. die/db/db/COM/BIN-Lock.2.sg +14 -0
  1555. die/db/db/COM/BatLite.4.sg +13 -0
  1556. die/db/db/COM/Best Protection Kit-B.2.sg +16 -0
  1557. die/db/db/COM/Borland C++.4.sg +17 -0
  1558. die/db/db/COM/Budokan.1.sg +13 -0
  1559. die/db/db/COM/C-crypt.2.sg +14 -0
  1560. die/db/db/COM/CC#3.2.sg +13 -0
  1561. die/db/db/COM/CC.2.sg +22 -0
  1562. die/db/db/COM/CC286.2.sg +14 -0
  1563. die/db/db/COM/CCC.2.sg +16 -0
  1564. die/db/db/COM/CHECKPRG.2.sg +13 -0
  1565. die/db/db/COM/CNT.2.sg +13 -0
  1566. die/db/db/COM/COM Sccrambler.2.sg +14 -0
  1567. die/db/db/COM/COM-Protect.2.sg +16 -0
  1568. die/db/db/COM/COM-Protection.2.sg +13 -0
  1569. die/db/db/COM/COM2TXT.1.sg +13 -0
  1570. die/db/db/COM/COMCRYPT.2.sg +23 -0
  1571. die/db/db/COM/COMPACK.2.sg +32 -0
  1572. die/db/db/COM/COMPROTECT.2.sg +14 -0
  1573. die/db/db/COM/COP.2.sg +14 -0
  1574. die/db/db/COM/CPAV.1.sg +13 -0
  1575. die/db/db/COM/CRX2COM.1.sg +12 -0
  1576. die/db/db/COM/Character Intro Engine.1.sg +16 -0
  1577. die/db/db/COM/Cheat packer.2.sg +13 -0
  1578. die/db/db/COM/CodeLock.2.sg +14 -0
  1579. die/db/db/COM/ComProt.2.sg +13 -0
  1580. die/db/db/COM/ComProtector.2.sg +18 -0
  1581. die/db/db/COM/Comlock.2.sg +17 -0
  1582. die/db/db/COM/CrAcKeR.2.sg +14 -0
  1583. die/db/db/COM/Crack2EXE.1.sg +14 -0
  1584. die/db/db/COM/Crypt (Dismember).2.sg +16 -0
  1585. die/db/db/COM/CryptCom.2.sg +18 -0
  1586. die/db/db/COM/CryptGeneric.2.sg +12 -0
  1587. die/db/db/COM/CyberWare Packer.2.sg +13 -0
  1588. die/db/db/COM/DCFR.2.sg +13 -0
  1589. die/db/db/COM/DIGPAK.1.sg +16 -0
  1590. die/db/db/COM/DOC2COM.1.sg +13 -0
  1591. die/db/db/COM/DOC2PAGE.1.sg +13 -0
  1592. die/db/db/COM/DS-CRP.2.sg +16 -0
  1593. die/db/db/COM/Datalight C.4.sg +17 -0
  1594. die/db/db/COM/Deep Crypter.2.sg +14 -0
  1595. die/db/db/COM/Deeper.2.sg +17 -0
  1596. die/db/db/COM/Diet.2.sg +26 -0
  1597. die/db/db/COM/Dn.COM Cruncher.2.sg +13 -0
  1598. die/db/db/COM/E2C-Scrambler.2.sg +13 -0
  1599. die/db/db/COM/E2C.1.sg +16 -0
  1600. die/db/db/COM/E2C1.2.sg +13 -0
  1601. die/db/db/COM/EPW.2.sg +14 -0
  1602. die/db/db/COM/EXE2COM.1.sg +72 -0
  1603. die/db/db/COM/EXETools EXE2COM.1.sg +16 -0
  1604. die/db/db/COM/EXETools.2.sg +22 -0
  1605. die/db/db/COM/Easy!-C.4.sg +13 -0
  1606. die/db/db/COM/Entropy Coder.2.sg +13 -0
  1607. die/db/db/COM/ExOM.2.sg +14 -0
  1608. die/db/db/COM/FCRYPT.2.sg +14 -0
  1609. die/db/db/COM/FIXCRK.1.sg +13 -0
  1610. die/db/db/COM/Fig-FORTH.4.sg +13 -0
  1611. die/db/db/COM/ForthCMP.2.sg +23 -0
  1612. die/db/db/COM/ForthCMP.4.sg +18 -0
  1613. die/db/db/COM/FromBAT.1.sg +18 -0
  1614. die/db/db/COM/GOAT.2.sg +19 -0
  1615. die/db/db/COM/GP-FORTH.4.sg +14 -0
  1616. die/db/db/COM/Guardian Angel.2.sg +28 -0
  1617. die/db/db/COM/HDKPROTC.2.sg +13 -0
  1618. die/db/db/COM/HYPDOC.1.sg +13 -0
  1619. die/db/db/COM/HackStop.2.sg +19 -0
  1620. die/db/db/COM/ICE.1.sg +13 -0
  1621. die/db/db/COM/IMMUN.1.sg +14 -0
  1622. die/db/db/COM/Inbuild Encryption.2.sg +14 -0
  1623. die/db/db/COM/IntroC0der.1.sg +13 -0
  1624. die/db/db/COM/J0B cryptor.2.sg +13 -0
  1625. die/db/db/COM/Keygen crypt.2.sg +14 -0
  1626. die/db/db/COM/Khrome Crypt.2.sg +14 -0
  1627. die/db/db/COM/LAME GG.2.sg +12 -0
  1628. die/db/db/COM/LAMPROT.2.sg +13 -0
  1629. die/db/db/COM/LGLZ.2.sg +14 -0
  1630. die/db/db/COM/LHA.1.sg +16 -0
  1631. die/db/db/COM/LHarc SFX.1.sg +16 -0
  1632. die/db/db/COM/Lattice C.4.sg +32 -0
  1633. die/db/db/COM/List.1.sg +21 -0
  1634. die/db/db/COM/Lock-Master.2.sg +14 -0
  1635. die/db/db/COM/MASK.2.sg +26 -0
  1636. die/db/db/COM/MCLock.2.sg +13 -0
  1637. die/db/db/COM/MESS.2.sg +13 -0
  1638. die/db/db/COM/MICRO-C.4.sg +16 -0
  1639. die/db/db/COM/MIDPAK.1.sg +13 -0
  1640. die/db/db/COM/MINIFORTH.4.sg +14 -0
  1641. die/db/db/COM/MSCC.2.sg +14 -0
  1642. die/db/db/COM/MakeRead.1.sg +14 -0
  1643. die/db/db/COM/Maveriks C0der.2.sg +16 -0
  1644. die/db/db/COM/MegaShield.2.sg +14 -0
  1645. die/db/db/COM/Microsoft C.4.sg +13 -0
  1646. die/db/db/COM/Microsoft RTL.3.sg +16 -0
  1647. die/db/db/COM/Microxor.2.sg +13 -0
  1648. die/db/db/COM/MoonRock.2.sg +14 -0
  1649. die/db/db/COM/NH.2.sg +13 -0
  1650. die/db/db/COM/NetCode.1.sg +18 -0
  1651. die/db/db/COM/NetRun.1.sg +13 -0
  1652. die/db/db/COM/NoAV.2.sg +13 -0
  1653. die/db/db/COM/Nodebug.2.sg +14 -0
  1654. die/db/db/COM/ONLINE-HELP.1.sg +13 -0
  1655. die/db/db/COM/OUTFORTH.4.sg +13 -0
  1656. die/db/db/COM/PBFC.2.sg +14 -0
  1657. die/db/db/COM/PC FORTH.4.sg +13 -0
  1658. die/db/db/COM/PCOM.2.sg +14 -0
  1659. die/db/db/COM/PCRYPT.2.sg +14 -0
  1660. die/db/db/COM/PCVault-Protect.2.sg +13 -0
  1661. die/db/db/COM/PKLITE.2.sg +29 -0
  1662. die/db/db/COM/PKZip.1.sg +18 -0
  1663. die/db/db/COM/PRO-PACK.2.sg +21 -0
  1664. die/db/db/COM/PROTECT.2.sg +67 -0
  1665. die/db/db/COM/PTP.2.sg +16 -0
  1666. die/db/db/COM/PU-Cryptor.2.sg +25 -0
  1667. die/db/db/COM/PassCOM.2.sg +13 -0
  1668. die/db/db/COM/Phrozen Crew cryptor.2.sg +13 -0
  1669. die/db/db/COM/ProtEXE.2.sg +14 -0
  1670. die/db/db/COM/R-Crypt.2.sg +19 -0
  1671. die/db/db/COM/RCC.2.sg +25 -0
  1672. die/db/db/COM/RDT_Compressor2.2.sg +13 -0
  1673. die/db/db/COM/RDT_ENC 3.2.sg +13 -0
  1674. die/db/db/COM/RELETTER.1.sg +14 -0
  1675. die/db/db/COM/RMCOBOL.4.sg +16 -0
  1676. die/db/db/COM/RSCC.2.sg +65 -0
  1677. die/db/db/COM/SCC.2.sg +13 -0
  1678. die/db/db/COM/SCRAM.2.sg +14 -0
  1679. die/db/db/COM/SCRE2B.2.sg +14 -0
  1680. die/db/db/COM/SCRNCH.2.sg +22 -0
  1681. die/db/db/COM/SDW.2.sg +34 -0
  1682. die/db/db/COM/SHOW IT.1.sg +13 -0
  1683. die/db/db/COM/SHOWV20.1.sg +18 -0
  1684. die/db/db/COM/SHRINK.2.sg +14 -0
  1685. die/db/db/COM/SP-FORTH.4.sg +18 -0
  1686. die/db/db/COM/SPHINX C--.4.sg +24 -0
  1687. die/db/db/COM/Scramb.2.sg +18 -0
  1688. die/db/db/COM/Scrypt!.2.sg +18 -0
  1689. die/db/db/COM/Scrypt.2.sg +14 -0
  1690. die/db/db/COM/SelfCrypt.2.sg +13 -0
  1691. die/db/db/COM/SelfProtect386.2.sg +12 -0
  1692. die/db/db/COM/Shadow COM encryptor.2.sg +14 -0
  1693. die/db/db/COM/Shadow.2.sg +14 -0
  1694. die/db/db/COM/Six-2-Four.2.sg +18 -0
  1695. die/db/db/COM/SnoopStop.2.sg +14 -0
  1696. die/db/db/COM/SoftGuard.1.sg +13 -0
  1697. die/db/db/COM/Steplock.2.sg +14 -0
  1698. die/db/db/COM/Surpas-86.4.sg +14 -0
  1699. die/db/db/COM/Sydex.2.sg +13 -0
  1700. die/db/db/COM/TCEC.2.sg +14 -0
  1701. die/db/db/COM/TCOM.4.sg +16 -0
  1702. die/db/db/COM/TPACK.2.sg +18 -0
  1703. die/db/db/COM/TPC Scramble.2.sg +12 -0
  1704. die/db/db/COM/TXT2COM.1.sg +22 -0
  1705. die/db/db/COM/TXTmaker.1.sg +14 -0
  1706. die/db/db/COM/Text Header.1.sg +14 -0
  1707. die/db/db/COM/The DRAW.1.sg +15 -0
  1708. die/db/db/COM/Tiny Xor.2.sg +14 -0
  1709. die/db/db/COM/Turbo C++.4.sg +13 -0
  1710. die/db/db/COM/Turbo C.4.sg +27 -0
  1711. die/db/db/COM/Turbo Pascal.4.sg +30 -0
  1712. die/db/db/COM/TurboBAT.1.sg +21 -0
  1713. die/db/db/COM/Txt2Exe.1.sg +14 -0
  1714. die/db/db/COM/UNIFORTH.4.sg +13 -0
  1715. die/db/db/COM/UPX.2.sg +22 -0
  1716. die/db/db/COM/USCC.2.sg +14 -0
  1717. die/db/db/COM/UnPackStop.2.sg +17 -0
  1718. die/db/db/COM/UniCrypt.1.sg +14 -0
  1719. die/db/db/COM/Unknown cryptors.2.sg +62 -0
  1720. die/db/db/COM/VGA font loader.1.sg +13 -0
  1721. die/db/db/COM/VSF&K protection.2.sg +13 -0
  1722. die/db/db/COM/VSS.1.sg +13 -0
  1723. die/db/db/COM/Vacsina.4.sg +12 -0
  1724. die/db/db/COM/Venus.2.sg +12 -0
  1725. die/db/db/COM/Vienna-C.4.sg +12 -0
  1726. die/db/db/COM/Watcom C.4.sg +37 -0
  1727. die/db/db/COM/WiZ Cryptor.2.sg +14 -0
  1728. die/db/db/COM/XCK2COM.1.sg +12 -0
  1729. die/db/db/COM/XE.2.sg +13 -0
  1730. die/db/db/COM/XORCOPY.2.sg +14 -0
  1731. die/db/db/COM/XPACK.2.sg +22 -0
  1732. die/db/db/COM/XcomOR.2.sg +24 -0
  1733. die/db/db/COM/XoReR.2.sg +26 -0
  1734. die/db/db/COM/XorCom.2.sg +14 -0
  1735. die/db/db/COM/Zbikowski C.4.sg +13 -0
  1736. die/db/db/COM/Zortech C.4.sg +26 -0
  1737. die/db/db/COM/_init +4 -0
  1738. die/db/db/COM/aPACK.2.sg +22 -0
  1739. die/db/db/COM/aPatch.2.sg +13 -0
  1740. die/db/db/COM/acBBS protection.2.sg +13 -0
  1741. die/db/db/COM/com RLE packer.2.sg +15 -0
  1742. die/db/db/COM/com-crypt.2.sg +16 -0
  1743. die/db/db/COM/cryptors.2.sg +214 -0
  1744. die/db/db/COM/envelope.2.sg +13 -0
  1745. die/db/db/COM/fds-cp.2.sg +13 -0
  1746. die/db/db/COM/integrity checker.1.sg +13 -0
  1747. die/db/db/COM/mCrypt.2.sg +14 -0
  1748. die/db/db/COM/muSIMP-83.4.sg +14 -0
  1749. die/db/db/COM/packers.2.sg +26 -0
  1750. die/db/db/COM/patchers.1.sg +100 -0
  1751. die/db/db/COM/protection.2.sg +13 -0
  1752. die/db/db/COM/readme.com.1.sg +12 -0
  1753. die/db/db/COM/simple ansi viewer.1.sg +12 -0
  1754. die/db/db/COM/simple self-displayer.1.sg +12 -0
  1755. die/db/db/COM/spirit.2.sg +22 -0
  1756. die/db/db/COM/x3.2.sg +18 -0
  1757. die/db/db/CurIcoBPP +14 -0
  1758. die/db/db/DEX/_DEX.0.sg +15 -0
  1759. die/db/db/DEX/_init +4 -0
  1760. die/db/db/ELF/Borland Kylix.4.sg +18 -0
  1761. die/db/db/ELF/Burneye.2.sg +12 -0
  1762. die/db/db/ELF/DMD.4.sg +28 -0
  1763. die/db/db/ELF/ELFCrypt.2.sg +12 -0
  1764. die/db/db/ELF/Ezuri.1.sg +29 -0
  1765. die/db/db/ELF/FASM.4.sg +22 -0
  1766. die/db/db/ELF/Flexlm.4.sg +15 -0
  1767. die/db/db/ELF/Free Pascal.4.sg +44 -0
  1768. die/db/db/ELF/GLIBC.3.sg +49 -0
  1769. die/db/db/ELF/Go.4.sg +125 -0
  1770. die/db/db/ELF/HASP.1.sg +28 -0
  1771. die/db/db/ELF/HP C++.4.sg +11 -0
  1772. die/db/db/ELF/IBM AIX kernel loader.sg +17 -0
  1773. die/db/db/ELF/Oracle Solaris Studio.4.sg +45 -0
  1774. die/db/db/ELF/PyInstaller.2.sg +24 -0
  1775. die/db/db/ELF/QT.3.sg +38 -0
  1776. die/db/db/ELF/Rust.4.sg +23 -0
  1777. die/db/db/ELF/SDL.3.sg +35 -0
  1778. die/db/db/ELF/UPX.2.sg +57 -0
  1779. die/db/db/ELF/VBCC.4.sg +19 -0
  1780. die/db/db/ELF/Virbox.2.sg +16 -0
  1781. die/db/db/ELF/Watcom.4.sg +14 -0
  1782. die/db/db/ELF/Zig.4.sg +21 -0
  1783. die/db/db/ELF/_ELF.0.sg +15 -0
  1784. die/db/db/ELF/_init +4 -0
  1785. die/db/db/ELF/gcc.4.sg +94 -0
  1786. die/db/db/ELF/gdc.4.sg +12 -0
  1787. die/db/db/ELF/ldc.4.sg +33 -0
  1788. die/db/db/ELF/movfuscator.4.sg +18 -0
  1789. die/db/db/FASM +9 -0
  1790. die/db/db/FPC +11 -0
  1791. die/db/db/IPA/_init +4 -0
  1792. die/db/db/JAR/SingleJar.3.sg +13 -0
  1793. die/db/db/JAR/_JAR.0.sg +15 -0
  1794. die/db/db/JAR/_init +4 -0
  1795. die/db/db/LE/UPX.1.sg +85 -0
  1796. die/db/db/LE/Watcom C.4.sg +23 -0
  1797. die/db/db/LE/_LE.0.sg +15 -0
  1798. die/db/db/LE/_init +4 -0
  1799. die/db/db/LX/_LX.0.sg +15 -0
  1800. die/db/db/LX/_init +4 -0
  1801. die/db/db/MACH/Carbon.3.sg +13 -0
  1802. die/db/db/MACH/Cocoa.3.sg +11 -0
  1803. die/db/db/MACH/Delphi.4.sg +20 -0
  1804. die/db/db/MACH/QT.3.sg +18 -0
  1805. die/db/db/MACH/UPX.2.sg +15 -0
  1806. die/db/db/MACH/Virbox.2.sg +13 -0
  1807. die/db/db/MACH/WebKit.3.sg +11 -0
  1808. die/db/db/MACH/Zig.4.sg +21 -0
  1809. die/db/db/MACH/_MACH.0.sg +15 -0
  1810. die/db/db/MACH/_init +4 -0
  1811. die/db/db/MACH/gcc.4.sg +34 -0
  1812. die/db/db/MACH/java.3.sg +14 -0
  1813. die/db/db/MFC +13 -0
  1814. die/db/db/MSDOS/$pirit.2.sg +47 -0
  1815. die/db/db/MSDOS/32stub.0a.sg +13 -0
  1816. die/db/db/MSDOS/ABKprot.2.sg +12 -0
  1817. die/db/db/MSDOS/ACE.6.sg +9 -0
  1818. die/db/db/MSDOS/AEP.2.sg +12 -0
  1819. die/db/db/MSDOS/AINEXE.2.sg +19 -0
  1820. die/db/db/MSDOS/ALEC.2.sg +14 -0
  1821. die/db/db/MSDOS/ANS2ALL.1.sg +14 -0
  1822. die/db/db/MSDOS/ARC.1.sg +23 -0
  1823. die/db/db/MSDOS/ARJ.1.sg +14 -0
  1824. die/db/db/MSDOS/ASIC-Basic.4.sg +18 -0
  1825. die/db/db/MSDOS/AVAST CRC-Check.2.sg +14 -0
  1826. die/db/db/MSDOS/AVPACK.2.sg +16 -0
  1827. die/db/db/MSDOS/Ada89.4.sg +13 -0
  1828. die/db/db/MSDOS/Adys COM2EXE.1.sg +11 -0
  1829. die/db/db/MSDOS/Adys Glue.2.sg +15 -0
  1830. die/db/db/MSDOS/Aluwain.2.sg +12 -0
  1831. die/db/db/MSDOS/Amisetup.1.sg +13 -0
  1832. die/db/db/MSDOS/Anti-LAME.2.sg +13 -0
  1833. die/db/db/MSDOS/Anti-hack encryption system.2.sg +13 -0
  1834. die/db/db/MSDOS/Antilame.2.sg +14 -0
  1835. die/db/db/MSDOS/ApBasic.4.sg +17 -0
  1836. die/db/db/MSDOS/AutoHack.1.sg +12 -0
  1837. die/db/db/MSDOS/Aztec C-86.4.sg +40 -0
  1838. die/db/db/MSDOS/BAT2EXEC.4.sg +16 -0
  1839. die/db/db/MSDOS/BSTAR_FORTH.4.sg +13 -0
  1840. die/db/db/MSDOS/BatLite.4.sg +13 -0
  1841. die/db/db/MSDOS/BetterBASIC.4.sg +13 -0
  1842. die/db/db/MSDOS/Bitlok.2.sg +14 -0
  1843. die/db/db/MSDOS/Black fist.2.sg +13 -0
  1844. die/db/db/MSDOS/Blinker.0a.sg +25 -0
  1845. die/db/db/MSDOS/Borland C.4.sg +88 -0
  1846. die/db/db/MSDOS/Borland Pascal.4.sg +88 -0
  1847. die/db/db/MSDOS/Borland RTM.0a.sg +33 -0
  1848. die/db/db/MSDOS/Borland TDS.sg +14 -0
  1849. die/db/db/MSDOS/Borland TLINK.5.sg +13 -0
  1850. die/db/db/MSDOS/Bunny.2.sg +14 -0
  1851. die/db/db/MSDOS/CC.2.sg +18 -0
  1852. die/db/db/MSDOS/CEPexe.2.sg +12 -0
  1853. die/db/db/MSDOS/CERBERUS.2.sg +12 -0
  1854. die/db/db/MSDOS/CII-C.4.sg +17 -0
  1855. die/db/db/MSDOS/COMCRYPT.2.sg +15 -0
  1856. die/db/db/MSDOS/COMPACK.2.sg +15 -0
  1857. die/db/db/MSDOS/COMPROTECT.2.sg +14 -0
  1858. die/db/db/MSDOS/CONVOY.2.sg +17 -0
  1859. die/db/db/MSDOS/CPAV.1.sg +13 -0
  1860. die/db/db/MSDOS/CRYPACK.2.sg +12 -0
  1861. die/db/db/MSDOS/CRYPTEXE.2.sg +19 -0
  1862. die/db/db/MSDOS/CSCRYPT Pro.2.sg +14 -0
  1863. die/db/db/MSDOS/CWSDPMI.0a.sg +22 -0
  1864. die/db/db/MSDOS/CauseWay DOS Extender.0a.sg +16 -0
  1865. die/db/db/MSDOS/ChSFX.1.sg +27 -0
  1866. die/db/db/MSDOS/Ciphator.2.sg +12 -0
  1867. die/db/db/MSDOS/Coderunner.1.sg +22 -0
  1868. die/db/db/MSDOS/Codesafe.2.sg +13 -0
  1869. die/db/db/MSDOS/ComProtector.2.sg +15 -0
  1870. die/db/db/MSDOS/ComprEXE.2.sg +14 -0
  1871. die/db/db/MSDOS/Compress-EXE.2.sg +14 -0
  1872. die/db/db/MSDOS/Concurrent Small C.4.sg +15 -0
  1873. die/db/db/MSDOS/Copy Protector.2.sg +15 -0
  1874. die/db/db/MSDOS/CopyQM SFX.1.sg +16 -0
  1875. die/db/db/MSDOS/Copylock PC.1.sg +13 -0
  1876. die/db/db/MSDOS/CrAcKeR.2.sg +14 -0
  1877. die/db/db/MSDOS/CrackStop.2.sg +16 -0
  1878. die/db/db/MSDOS/Cruncher.2.sg +12 -0
  1879. die/db/db/MSDOS/CryExe.2.sg +12 -0
  1880. die/db/db/MSDOS/Crypt (Dismember).2.sg +25 -0
  1881. die/db/db/MSDOS/Crypt (LightShow).2.sg +25 -0
  1882. die/db/db/MSDOS/CryptCom.2.sg +14 -0
  1883. die/db/db/MSDOS/CrypteXeC.2.sg +15 -0
  1884. die/db/db/MSDOS/Cryptors.2.sg +59 -0
  1885. die/db/db/MSDOS/DAEMON Protect.2.sg +12 -0
  1886. die/db/db/MSDOS/DCREXE.2.sg +18 -0
  1887. die/db/db/MSDOS/DIET.2.sg +33 -0
  1888. die/db/db/MSDOS/DMC.2.sg +14 -0
  1889. die/db/db/MSDOS/DOS32 loader.0a.sg +14 -0
  1890. die/db/db/MSDOS/DOS32.0a.sg +22 -0
  1891. die/db/db/MSDOS/DOS4G.0a.sg +19 -0
  1892. die/db/db/MSDOS/DOSX16.0a.sg +27 -0
  1893. die/db/db/MSDOS/DOS_16M.0a.sg +28 -0
  1894. die/db/db/MSDOS/DOS_32A.0a.sg +22 -0
  1895. die/db/db/MSDOS/DSHIELD.2.sg +11 -0
  1896. die/db/db/MSDOS/Deeper.2.sg +17 -0
  1897. die/db/db/MSDOS/DemoMaker.2.sg +14 -0
  1898. die/db/db/MSDOS/DexEXE.2.sg +14 -0
  1899. die/db/db/MSDOS/Digital Research C.4.sg +15 -0
  1900. die/db/db/MSDOS/Disk eXPress.1.sg +14 -0
  1901. die/db/db/MSDOS/E-PROT.2.sg +14 -0
  1902. die/db/db/MSDOS/EEXE.2.sg +14 -0
  1903. die/db/db/MSDOS/EMMXXXX0 check.0a.sg +12 -0
  1904. die/db/db/MSDOS/EMX.0a.sg +16 -0
  1905. die/db/db/MSDOS/EPW.2.sg +18 -0
  1906. die/db/db/MSDOS/EXARJ.1.sg +13 -0
  1907. die/db/db/MSDOS/EXE Manager.2.sg +14 -0
  1908. die/db/db/MSDOS/EXE Packer.2.sg +15 -0
  1909. die/db/db/MSDOS/EXE encryption.2.sg +13 -0
  1910. die/db/db/MSDOS/EXE-Crypt.2.sg +13 -0
  1911. die/db/db/MSDOS/EXE-Cryptor.2.sg +19 -0
  1912. die/db/db/MSDOS/EXE-Protect.2.sg +13 -0
  1913. die/db/db/MSDOS/EXE2COM.1.sg +22 -0
  1914. die/db/db/MSDOS/EXECUTRIX.2.sg +13 -0
  1915. die/db/db/MSDOS/EXEGUARD.2.sg +12 -0
  1916. die/db/db/MSDOS/EXEHigh.2.sg +14 -0
  1917. die/db/db/MSDOS/EXEPACK.2.sg +57 -0
  1918. die/db/db/MSDOS/EXETools COM2EXE.1.sg +12 -0
  1919. die/db/db/MSDOS/EXETools.2.sg +16 -0
  1920. die/db/db/MSDOS/Easy!-C.4.sg +14 -0
  1921. die/db/db/MSDOS/Eliashim's CodeTrack.1.sg +12 -0
  1922. die/db/db/MSDOS/Encriptor.2.sg +12 -0
  1923. die/db/db/MSDOS/Enkryptonator.2.sg +12 -0
  1924. die/db/db/MSDOS/ExeCode.2.sg +18 -0
  1925. die/db/db/MSDOS/ExeLITE.2.sg +15 -0
  1926. die/db/db/MSDOS/ExeLock.2.sg +16 -0
  1927. die/db/db/MSDOS/F-XLOCK.1.sg +13 -0
  1928. die/db/db/MSDOS/FACRYPT.2.sg +12 -0
  1929. die/db/db/MSDOS/FCP IV.2.sg +13 -0
  1930. die/db/db/MSDOS/FSE.2.sg +61 -0
  1931. die/db/db/MSDOS/File Shield.1.sg +14 -0
  1932. die/db/db/MSDOS/Fitted Modula-2.4.sg +14 -0
  1933. die/db/db/MSDOS/ForthInfo.4.sg +18 -0
  1934. die/db/db/MSDOS/FromBAT.1.sg +13 -0
  1935. die/db/db/MSDOS/GFX to EXE.1.sg +14 -0
  1936. die/db/db/MSDOS/GOAT.1.sg +21 -0
  1937. die/db/db/MSDOS/GRABBER.1.sg +26 -0
  1938. die/db/db/MSDOS/GRASP.4.sg +20 -0
  1939. die/db/db/MSDOS/GameWizard DOS Extender.0a.sg +12 -0
  1940. die/db/db/MSDOS/Go32Stub.0a.sg +19 -0
  1941. die/db/db/MSDOS/Graphic WorkShop.1.sg +14 -0
  1942. die/db/db/MSDOS/Guardian Angel.2.sg +21 -0
  1943. die/db/db/MSDOS/H+BEDV SelfCheck.1.sg +18 -0
  1944. die/db/db/MSDOS/HACKSTOP.2.sg +77 -0
  1945. die/db/db/MSDOS/HASP.2.sg +14 -0
  1946. die/db/db/MSDOS/HEALTH.2.sg +12 -0
  1947. die/db/db/MSDOS/Header Changer.2.sg +13 -0
  1948. die/db/db/MSDOS/Hi-Tech C.4.sg +15 -0
  1949. die/db/db/MSDOS/HyperLOCK 386.2.sg +14 -0
  1950. die/db/db/MSDOS/IBM PC Pascal.4.sg +31 -0
  1951. die/db/db/MSDOS/ICE.1.sg +13 -0
  1952. die/db/db/MSDOS/IMMUN.1.sg +14 -0
  1953. die/db/db/MSDOS/Inertia.2.sg +14 -0
  1954. die/db/db/MSDOS/Ironthorn.2.sg +14 -0
  1955. die/db/db/MSDOS/JAM.2.sg +12 -0
  1956. die/db/db/MSDOS/JmCryptExe.2.sg +19 -0
  1957. die/db/db/MSDOS/John Socha Library.3.sg +13 -0
  1958. die/db/db/MSDOS/Joke.2.sg +13 -0
  1959. die/db/db/MSDOS/KeyMaker.2.sg +14 -0
  1960. die/db/db/MSDOS/Khrome Crypt.2.sg +12 -0
  1961. die/db/db/MSDOS/Kvetch.2.sg +14 -0
  1962. die/db/db/MSDOS/LE.0.sg +11 -0
  1963. die/db/db/MSDOS/LGLZ.2.sg +14 -0
  1964. die/db/db/MSDOS/LH.1.sg +11 -0
  1965. die/db/db/MSDOS/LHA.1.sg +20 -0
  1966. die/db/db/MSDOS/LHarc.1.sg +19 -0
  1967. die/db/db/MSDOS/LOCK.2.sg +14 -0
  1968. die/db/db/MSDOS/LSI_C.4.sg +14 -0
  1969. die/db/db/MSDOS/LX.0.sg +11 -0
  1970. die/db/db/MSDOS/LZEXE.2.sg +42 -0
  1971. die/db/db/MSDOS/L_O_V_E_ FORTH.4.sg +18 -0
  1972. die/db/db/MSDOS/Lahey Fortran.4.sg +14 -0
  1973. die/db/db/MSDOS/LamerStop.2.sg +12 -0
  1974. die/db/db/MSDOS/Lattice C.4.sg +87 -0
  1975. die/db/db/MSDOS/LockTite+.2.sg +12 -0
  1976. die/db/db/MSDOS/Logitech Modula-2.4.sg +14 -0
  1977. die/db/db/MSDOS/MEGALITE.2.sg +12 -0
  1978. die/db/db/MSDOS/MESS.2.sg +30 -0
  1979. die/db/db/MSDOS/MSLite.1.sg +14 -0
  1980. die/db/db/MSDOS/Maker.2.sg +14 -0
  1981. die/db/db/MSDOS/Mandrake.2.sg +13 -0
  1982. die/db/db/MSDOS/MegaBasic.4.sg +16 -0
  1983. die/db/db/MSDOS/MegaBasic1.4.sg +30 -0
  1984. die/db/db/MSDOS/Meridian Ada.4.sg +29 -0
  1985. die/db/db/MSDOS/Meridian Pascal.4.sg +21 -0
  1986. die/db/db/MSDOS/MetaWare High C.4.sg +30 -0
  1987. die/db/db/MSDOS/MetaWare Professional Pascal.4.sg +24 -0
  1988. die/db/db/MSDOS/Micro Focus Cobol.4.sg +19 -0
  1989. die/db/db/MSDOS/Micro Focus DOS extender.0a.sg +13 -0
  1990. die/db/db/MSDOS/Microsoft Basic.4.sg +23 -0
  1991. die/db/db/MSDOS/Microsoft C Library.3.sg +20 -0
  1992. die/db/db/MSDOS/Microsoft C.4.sg +57 -0
  1993. die/db/db/MSDOS/Microsoft Fortran.4.sg +15 -0
  1994. die/db/db/MSDOS/Microsoft Quick Basic.4.sg +35 -0
  1995. die/db/db/MSDOS/Microsoft Quick Pascal.4.sg +16 -0
  1996. die/db/db/MSDOS/Microsoft RTL (Clipper).3.sg +13 -0
  1997. die/db/db/MSDOS/Microsoft RTL.3.sg +48 -0
  1998. die/db/db/MSDOS/MultiLoop Protection.2.sg +13 -0
  1999. die/db/db/MSDOS/MutaWWP.2.sg +14 -0
  2000. die/db/db/MSDOS/Mutate.2.sg +21 -0
  2001. die/db/db/MSDOS/NE.0.sg +11 -0
  2002. die/db/db/MSDOS/NOCLIP.2.sg +14 -0
  2003. die/db/db/MSDOS/NOTA.2.sg +14 -0
  2004. die/db/db/MSDOS/NTShell.2.sg +14 -0
  2005. die/db/db/MSDOS/Netware loader.1.sg +12 -0
  2006. die/db/db/MSDOS/Nodebug.2.sg +14 -0
  2007. die/db/db/MSDOS/Novex.2.sg +12 -0
  2008. die/db/db/MSDOS/Oberon-M.4.sg +14 -0
  2009. die/db/db/MSDOS/Optlink.2.sg +31 -0
  2010. die/db/db/MSDOS/Overlay.2.sg +13 -0
  2011. die/db/db/MSDOS/Oyster.1.sg +13 -0
  2012. die/db/db/MSDOS/PACKWIN.2.sg +14 -0
  2013. die/db/db/MSDOS/PC-Guard.2.sg +30 -0
  2014. die/db/db/MSDOS/PCC.4.sg +28 -0
  2015. die/db/db/MSDOS/PCOM.2.sg +14 -0
  2016. die/db/db/MSDOS/PDC Prolog.4.sg +15 -0
  2017. die/db/db/MSDOS/PGMPAK.2.sg +17 -0
  2018. die/db/db/MSDOS/PGPROT.1.sg +12 -0
  2019. die/db/db/MSDOS/PK sig.1.sg +12 -0
  2020. die/db/db/MSDOS/PKEXE.2.sg +13 -0
  2021. die/db/db/MSDOS/PKLITE.2.sg +59 -0
  2022. die/db/db/MSDOS/PKSFX.1.sg +15 -0
  2023. die/db/db/MSDOS/PKTINY.2.sg +14 -0
  2024. die/db/db/MSDOS/PKZIP mini-sfx.1.sg +17 -0
  2025. die/db/db/MSDOS/PKZIP-SFX.1.sg +13 -0
  2026. die/db/db/MSDOS/PMODE.0a.sg +17 -0
  2027. die/db/db/MSDOS/PMWLite.2.sg +14 -0
  2028. die/db/db/MSDOS/PRO-PACK.2.sg +16 -0
  2029. die/db/db/MSDOS/PRO32.0a.sg +14 -0
  2030. die/db/db/MSDOS/PROPACK SFX.1.sg +13 -0
  2031. die/db/db/MSDOS/PROTECT.2.sg +101 -0
  2032. die/db/db/MSDOS/PVAC.2.sg +14 -0
  2033. die/db/db/MSDOS/Pacific C.4.sg +23 -0
  2034. die/db/db/MSDOS/Pack.2.sg +14 -0
  2035. die/db/db/MSDOS/Packers.2.sg +17 -0
  2036. die/db/db/MSDOS/Palladix.1.sg +12 -0
  2037. die/db/db/MSDOS/Panda immunizer.1.sg +14 -0
  2038. die/db/db/MSDOS/Pascal_MT+86.4.sg +20 -0
  2039. die/db/db/MSDOS/PassEXE.2.sg +12 -0
  2040. die/db/db/MSDOS/Patchers.1.sg +18 -0
  2041. die/db/db/MSDOS/Phar Lap.0a.sg +31 -0
  2042. die/db/db/MSDOS/Pksmart.2.sg +14 -0
  2043. die/db/db/MSDOS/Power C.4.sg +16 -0
  2044. die/db/db/MSDOS/ProtEXE.2.sg +58 -0
  2045. die/db/db/MSDOS/Protector.2.sg +13 -0
  2046. die/db/db/MSDOS/Quadru-Lock.2.sg +12 -0
  2047. die/db/db/MSDOS/R-Crypt.2.sg +13 -0
  2048. die/db/db/MSDOS/RAR.6.sg +9 -0
  2049. die/db/db/MSDOS/REC small AV.1.sg +18 -0
  2050. die/db/db/MSDOS/REC small.1.sg +26 -0
  2051. die/db/db/MSDOS/REC.2.sg +22 -0
  2052. die/db/db/MSDOS/RELETTER.1.sg +14 -0
  2053. die/db/db/MSDOS/RERP.2.sg +13 -0
  2054. die/db/db/MSDOS/RHC.2.sg +14 -0
  2055. die/db/db/MSDOS/RJcrush.2.sg +12 -0
  2056. die/db/db/MSDOS/RLE com-packer.2.sg +13 -0
  2057. die/db/db/MSDOS/RM_FORTRAN.4.sg +14 -0
  2058. die/db/db/MSDOS/ROSETINY.2.sg +15 -0
  2059. die/db/db/MSDOS/RSX.0a.sg +12 -0
  2060. die/db/db/MSDOS/RTLink VM Manager.0a.sg +12 -0
  2061. die/db/db/MSDOS/RTPatch SFX.1.sg +13 -0
  2062. die/db/db/MSDOS/Realia Cobol.4.sg +16 -0
  2063. die/db/db/MSDOS/Realia SPITBOL.4.sg +14 -0
  2064. die/db/db/MSDOS/Relpack.2.sg +14 -0
  2065. die/db/db/MSDOS/SCRNCH.2.sg +14 -0
  2066. die/db/db/MSDOS/SEA-AXE.2.sg +15 -0
  2067. die/db/db/MSDOS/SFX.1.sg +14 -0
  2068. die/db/db/MSDOS/SHOW IT.1.sg +14 -0
  2069. die/db/db/MSDOS/SP-FORTH.4.sg +18 -0
  2070. die/db/db/MSDOS/Scramb.2.sg +13 -0
  2071. die/db/db/MSDOS/Secure.2.sg +37 -0
  2072. die/db/db/MSDOS/Self UnStuffer.2.sg +16 -0
  2073. die/db/db/MSDOS/SelfChk.2.sg +14 -0
  2074. die/db/db/MSDOS/Shrink.2.sg +15 -0
  2075. die/db/db/MSDOS/Shrinker.2.sg +14 -0
  2076. die/db/db/MSDOS/SimplyWare.1.sg +22 -0
  2077. die/db/db/MSDOS/Small C.4.sg +20 -0
  2078. die/db/db/MSDOS/SnoopStop.2.sg +12 -0
  2079. die/db/db/MSDOS/StonyBrook Pascal.4.sg +26 -0
  2080. die/db/db/MSDOS/Stub-386.0a.sg +13 -0
  2081. die/db/db/MSDOS/SuckStop.2.sg +27 -0
  2082. die/db/db/MSDOS/Sydex SFX.1.sg +19 -0
  2083. die/db/db/MSDOS/Symantec BASIC.4.sg +16 -0
  2084. die/db/db/MSDOS/TCEC.2.sg +18 -0
  2085. die/db/db/MSDOS/TMTSTUB.0a.sg +14 -0
  2086. die/db/db/MSDOS/TSCRUNCH.2.sg +13 -0
  2087. die/db/db/MSDOS/TTW.1.sg +17 -0
  2088. die/db/db/MSDOS/TUCCRYP.2.sg +14 -0
  2089. die/db/db/MSDOS/TXT2COM.1.sg +18 -0
  2090. die/db/db/MSDOS/TXTmaker.1.sg +14 -0
  2091. die/db/db/MSDOS/Tenth Planet.2.sg +13 -0
  2092. die/db/db/MSDOS/TinyProg.2.sg +27 -0
  2093. die/db/db/MSDOS/Tinyprot.2.sg +16 -0
  2094. die/db/db/MSDOS/Topspeed C.4.sg +20 -0
  2095. die/db/db/MSDOS/Topspeed Modula.4.sg +42 -0
  2096. die/db/db/MSDOS/TraceLock.2.sg +13 -0
  2097. die/db/db/MSDOS/Trap.2.sg +50 -0
  2098. die/db/db/MSDOS/Turbo Basic.4.sg +18 -0
  2099. die/db/db/MSDOS/Turbo Prolog.4.sg +16 -0
  2100. die/db/db/MSDOS/TurboChainer.1.sg +13 -0
  2101. die/db/db/MSDOS/Txt2Exe.1.sg +14 -0
  2102. die/db/db/MSDOS/UCEXE.2.sg +22 -0
  2103. die/db/db/MSDOS/UPX.2.sg +46 -0
  2104. die/db/db/MSDOS/UR FORTH.4.sg +14 -0
  2105. die/db/db/MSDOS/Un2pack.2.sg +14 -0
  2106. die/db/db/MSDOS/UnPackStop.2.sg +33 -0
  2107. die/db/db/MSDOS/UniVac.1.sg +14 -0
  2108. die/db/db/MSDOS/Unknown cryptors.2.sg +54 -0
  2109. die/db/db/MSDOS/Upper Deck Forth.4.sg +14 -0
  2110. die/db/db/MSDOS/V-Load.1.sg +13 -0
  2111. die/db/db/MSDOS/Visual Cobol.4.sg +16 -0
  2112. die/db/db/MSDOS/WATCOM.4.sg +55 -0
  2113. die/db/db/MSDOS/WDOSX.0a.sg +14 -0
  2114. die/db/db/MSDOS/WDOSX32.0a.sg +12 -0
  2115. die/db/db/MSDOS/WPFORTH.4.sg +14 -0
  2116. die/db/db/MSDOS/WWPACK mutator.2.sg +53 -0
  2117. die/db/db/MSDOS/WWPACK.2.sg +89 -0
  2118. die/db/db/MSDOS/Whitesmiths C.4.sg +20 -0
  2119. die/db/db/MSDOS/Window book.1.sg +21 -0
  2120. die/db/db/MSDOS/Wizardy protection.1.sg +12 -0
  2121. die/db/db/MSDOS/WordPerfect EXEPack.2.sg +12 -0
  2122. die/db/db/MSDOS/XDOC.2.sg +13 -0
  2123. die/db/db/MSDOS/XMLOD.0a.sg +16 -0
  2124. die/db/db/MSDOS/XPACK.2.sg +37 -0
  2125. die/db/db/MSDOS/Xtender.0a.sg +14 -0
  2126. die/db/db/MSDOS/ZIPSCRUB.2.sg +14 -0
  2127. die/db/db/MSDOS/ZOO.1.sg +14 -0
  2128. die/db/db/MSDOS/Zbikowski C.4.sg +18 -0
  2129. die/db/db/MSDOS/Zip.6.sg +9 -0
  2130. die/db/db/MSDOS/Zortech(Symantec) C.4.sg +55 -0
  2131. die/db/db/MSDOS/Zurenava DOS Extender.0a.sg +13 -0
  2132. die/db/db/MSDOS/_MSDOS.0.sg +15 -0
  2133. die/db/db/MSDOS/_init +54 -0
  2134. die/db/db/MSDOS/aPACK.2.sg +60 -0
  2135. die/db/db/MSDOS/aPatch.2.sg +13 -0
  2136. die/db/db/MSDOS/anti-tracing add-on.1.sg +12 -0
  2137. die/db/db/MSDOS/com2exe.2.sg +21 -0
  2138. die/db/db/MSDOS/cramble.2.sg +12 -0
  2139. die/db/db/MSDOS/deep-CRyPTer.2.sg +12 -0
  2140. die/db/db/MSDOS/djgpp.4.sg +16 -0
  2141. die/db/db/MSDOS/dos extender.0a.sg +16 -0
  2142. die/db/db/MSDOS/dos extender1.0a.sg +13 -0
  2143. die/db/db/MSDOS/dos extender2.0a.sg +16 -0
  2144. die/db/db/MSDOS/iLUCRYPT.2.sg +18 -0
  2145. die/db/db/MSDOS/immunizer.1.sg +13 -0
  2146. die/db/db/MSDOS/mbp SHRINK.2.sg +13 -0
  2147. die/db/db/MSDOS/muLISP-87.4.sg +20 -0
  2148. die/db/db/MSDOS/nbuild.2.sg +12 -0
  2149. die/db/db/MSDOS/overlays.6.sg +70 -0
  2150. die/db/db/MSDOS/self-displayer.1.sg +13 -0
  2151. die/db/db/MSDOS/virus.1.sg +13 -0
  2152. die/db/db/NE/ARC SFX.1.sg +13 -0
  2153. die/db/db/NE/Borland C++.1.sg +25 -0
  2154. die/db/db/NE/Borland Pascal.1.sg +13 -0
  2155. die/db/db/NE/MS RTL.0.sg +28 -0
  2156. die/db/db/NE/PKZIP-SFX.1.sg +13 -0
  2157. die/db/db/NE/Setup-Specialist.1.sg +16 -0
  2158. die/db/db/NE/Sydex SFX.1.sg +13 -0
  2159. die/db/db/NE/Watcom C.1.sg +34 -0
  2160. die/db/db/NE/_NE.0.sg +15 -0
  2161. die/db/db/NE/_init +4 -0
  2162. die/db/db/NPM/JavaScript.5.sg +11 -0
  2163. die/db/db/NPM/PackageName.1.sg +15 -0
  2164. die/db/db/NPM/TypeScript.5.sg +11 -0
  2165. die/db/db/NPM/_NPM.0.sg +16 -0
  2166. die/db/db/NPM/_init +4 -0
  2167. die/db/db/PE/12Ghosts Zip2.1.sg +17 -0
  2168. die/db/db/PE/32Lite.2.sg +12 -0
  2169. die/db/db/PE/3dcrypter.2.sg +12 -0
  2170. die/db/db/PE/404crypter.1.sg +13 -0
  2171. die/db/db/PE/7z.1.sg +43 -0
  2172. die/db/db/PE/7z.4.sg +14 -0
  2173. die/db/db/PE/7z.6.sg +21 -0
  2174. die/db/db/PE/ABC Cryptor.2.sg +12 -0
  2175. die/db/db/PE/ACCAStore.1.sg +19 -0
  2176. die/db/db/PE/ACE.6.sg +9 -0
  2177. die/db/db/PE/ACProtect.2.sg +30 -0
  2178. die/db/db/PE/ADS Self Extractor.1.sg +18 -0
  2179. die/db/db/PE/AHTeam EP Protector.2.sg +71 -0
  2180. die/db/db/PE/AHpacker.2.sg +14 -0
  2181. die/db/db/PE/ANDpakk.2.sg +21 -0
  2182. die/db/db/PE/AOLSetup.1.sg +15 -0
  2183. die/db/db/PE/AR Crypt Private.2.sg +11 -0
  2184. die/db/db/PE/ARJSFX.1.sg +44 -0
  2185. die/db/db/PE/ARM Protector.2.sg +21 -0
  2186. die/db/db/PE/ARQ.1.sg +16 -0
  2187. die/db/db/PE/ASDPack.2.sg +12 -0
  2188. die/db/db/PE/ASM Guard.2.sg +27 -0
  2189. die/db/db/PE/ASPR Stripper.2.sg +12 -0
  2190. die/db/db/PE/ASPack.2.sg +95 -0
  2191. die/db/db/PE/ASProtect.2.sg +54 -0
  2192. die/db/db/PE/AT4RE Protector.2.sg +13 -0
  2193. die/db/db/PE/AZProtect.2.sg +12 -0
  2194. die/db/db/PE/Aase Crypter.2.sg +12 -0
  2195. die/db/db/PE/Abbyy Lingvo.1.sg +15 -0
  2196. die/db/db/PE/AcidCrypt.2.sg +13 -0
  2197. die/db/db/PE/Acronis installer.1.sg +30 -0
  2198. die/db/db/PE/Active Delivery.1.sg +16 -0
  2199. die/db/db/PE/ActiveMark.2.sg +14 -0
  2200. die/db/db/PE/Actual Installer.1.sg +18 -0
  2201. die/db/db/PE/Adept Protector.2.sg +19 -0
  2202. die/db/db/PE/Adobe Flash Player installer.1.sg +19 -0
  2203. die/db/db/PE/Adobe FlashPlayer downloader.1.sg +17 -0
  2204. die/db/db/PE/Adobe installers.1.sg +32 -0
  2205. die/db/db/PE/Advanced BAT to EXE converter.2.sg +13 -0
  2206. die/db/db/PE/Advanced installer.1.sg +30 -0
  2207. die/db/db/PE/Adveractive.1.sg +14 -0
  2208. die/db/db/PE/Aeco installer.1.sg +14 -0
  2209. die/db/db/PE/Agile .NET.2.sg +11 -0
  2210. die/db/db/PE/Alchemy Mindworks installer.1.sg +19 -0
  2211. die/db/db/PE/Alex Protector.2.sg +15 -0
  2212. die/db/db/PE/Alienyze.1.sg +14 -0
  2213. die/db/db/PE/Alloy.2.sg +12 -0
  2214. die/db/db/PE/AlmafuerteCrypter.1.sg +12 -0
  2215. die/db/db/PE/Amber.2.sg +16 -0
  2216. die/db/db/PE/Anskya Binder.2.sg +12 -0
  2217. die/db/db/PE/Anskya NTPacker Generator.2.sg +11 -0
  2218. die/db/db/PE/Anslym Crypter.2.sg +11 -0
  2219. die/db/db/PE/AntiDote.2.sg +34 -0
  2220. die/db/db/PE/Anticrack Software Protector.2.sg +15 -0
  2221. die/db/db/PE/Apex-c.2.sg +12 -0
  2222. die/db/db/PE/App Encryptor.2.sg +13 -0
  2223. die/db/db/PE/Armadillo.2.sg +48 -0
  2224. die/db/db/PE/AssemblyInvoke.2.sg +13 -0
  2225. die/db/db/PE/Astrum.1.sg +21 -0
  2226. die/db/db/PE/AtomPePacker.2.sg +15 -0
  2227. die/db/db/PE/AutoHotKey.3.sg +20 -0
  2228. die/db/db/PE/AutoIt.3.sg +20 -0
  2229. die/db/db/PE/AutoPlay Media Studio.1.sg +26 -0
  2230. die/db/db/PE/Autodesk Self-Extract.1.sg +14 -0
  2231. die/db/db/PE/AutorunProEnterprise.1.sg +16 -0
  2232. die/db/db/PE/AutorunProEnterpriseII.1.sg +19 -0
  2233. die/db/db/PE/AverCryptor.2.sg +20 -0
  2234. die/db/db/PE/Babel .NET.2.sg +17 -0
  2235. die/db/db/PE/BasicCrypt1.1.sg +12 -0
  2236. die/db/db/PE/Bat to exe.1.sg +19 -0
  2237. die/db/db/PE/BattleshipCrypter.2.sg +11 -0
  2238. die/db/db/PE/BeRo Tiny Pascal.4.sg +12 -0
  2239. die/db/db/PE/BeRo.2.sg +37 -0
  2240. die/db/db/PE/Berio.2.sg +15 -0
  2241. die/db/db/PE/BitRock Installer.1.sg +16 -0
  2242. die/db/db/PE/BitShape PE Crypt.2.sg +15 -0
  2243. die/db/db/PE/Blade Joiner.1.sg +12 -0
  2244. die/db/db/PE/BlindSpot.2.sg +12 -0
  2245. die/db/db/PE/Blizzard PrePatch.1.sg +14 -0
  2246. die/db/db/PE/BobPack.2.sg +12 -0
  2247. die/db/db/PE/BopCrypt.2.sg +12 -0
  2248. die/db/db/PE/Borland C++.4.sg +36 -0
  2249. die/db/db/PE/Box Stub.1.sg +14 -0
  2250. die/db/db/PE/Break Into Pattern.2.sg +12 -0
  2251. die/db/db/PE/BulletProofSoft installer.1.sg +13 -0
  2252. die/db/db/PE/ByfronTech.2.sg +67 -0
  2253. die/db/db/PE/Bytessence Install Maker.1.sg +19 -0
  2254. die/db/db/PE/CDS SS.2.sg +12 -0
  2255. die/db/db/PE/CExe.2.sg +12 -0
  2256. die/db/db/PE/CICompress.2.sg +12 -0
  2257. die/db/db/PE/CSDD's installer.1.sg +17 -0
  2258. die/db/db/PE/CUDA-Driver.4.sg +14 -0
  2259. die/db/db/PE/CZ installer.1.sg +18 -0
  2260. die/db/db/PE/Cab.1.sg +60 -0
  2261. die/db/db/PE/Cab.6.sg +33 -0
  2262. die/db/db/PE/Calibre_installer.1.sg +19 -0
  2263. die/db/db/PE/Cameyo.2.sg +16 -0
  2264. die/db/db/PE/Celesty File Binder.1.sg +18 -0
  2265. die/db/db/PE/ChainskiCrypter.1.sg +11 -0
  2266. die/db/db/PE/Chaos Software installer.1.sg +14 -0
  2267. die/db/db/PE/Chilkat ZIP Self-Extractor.1.sg +14 -0
  2268. die/db/db/PE/Chromium Embedded Framework.4.sg +14 -0
  2269. die/db/db/PE/Chromium WebView.4.sg +14 -0
  2270. die/db/db/PE/CipherWall.1.sg +20 -0
  2271. die/db/db/PE/CliSecure.2.sg +21 -0
  2272. die/db/db/PE/ClickTeam.1.sg +16 -0
  2273. die/db/db/PE/Code Virtualizer.2.sg +12 -0
  2274. die/db/db/PE/Code-Lock.2.sg +11 -0
  2275. die/db/db/PE/CodeCrypt.2.sg +21 -0
  2276. die/db/db/PE/CodeCrypter.2.sg +12 -0
  2277. die/db/db/PE/CodeFusion Wizard.1.sg +14 -0
  2278. die/db/db/PE/CodeSafe.2.sg +12 -0
  2279. die/db/db/PE/CodeVeil.2.sg +20 -0
  2280. die/db/db/PE/Codegear Installer.1.sg +14 -0
  2281. die/db/db/PE/Codewall.2.sg +18 -0
  2282. die/db/db/PE/CoffeeCup SFX.2.sg +14 -0
  2283. die/db/db/PE/Confuser.2.sg +41 -0
  2284. die/db/db/PE/CopyMinder.2.sg +11 -0
  2285. die/db/db/PE/Costura.Fody.4.sg +13 -0
  2286. die/db/db/PE/CreateInstall.1.sg +22 -0
  2287. die/db/db/PE/Crinkler.2.sg +15 -0
  2288. die/db/db/PE/Crunch.2.sg +25 -0
  2289. die/db/db/PE/CrypKey Installer.1.sg +14 -0
  2290. die/db/db/PE/CrypKey.2.sg +20 -0
  2291. die/db/db/PE/CrypToCrack Pe Protector.2.sg +15 -0
  2292. die/db/db/PE/Cryptect.1.sg +13 -0
  2293. die/db/db/PE/Crypter.2.sg +12 -0
  2294. die/db/db/PE/Cryptic.2.sg +12 -0
  2295. die/db/db/PE/CryptoObfuscator.2.sg +17 -0
  2296. die/db/db/PE/Cxfreeze.1.sg +25 -0
  2297. die/db/db/PE/Cygwin32.4.sg +11 -0
  2298. die/db/db/PE/DBPE.2.sg +25 -0
  2299. die/db/db/PE/DCrypt Private.2.sg +12 -0
  2300. die/db/db/PE/DECFortran.4.sg +22 -0
  2301. die/db/db/PE/DEF.2.sg +12 -0
  2302. die/db/db/PE/DJoin.1.sg +17 -0
  2303. die/db/db/PE/DMD.4.sg +43 -0
  2304. die/db/db/PE/DNGuard.2.sg +30 -0
  2305. die/db/db/PE/DS.EZ-Logic.sg +12 -0
  2306. die/db/db/PE/DS.Eutron SmartKey dongle.5.sg +25 -0
  2307. die/db/db/PE/DS.Flexlm.4.sg +19 -0
  2308. die/db/db/PE/DS.HASP dongle.5.sg +18 -0
  2309. die/db/db/PE/DS.Hardlock dongle.5.sg +20 -0
  2310. die/db/db/PE/DS.Key-Lok II dongle.5.sg +19 -0
  2311. die/db/db/PE/DS.MARX Crypto-Box dongle.5.sg +26 -0
  2312. die/db/db/PE/DS.Matrix Hardware Lock dongle.5.sg +16 -0
  2313. die/db/db/PE/DS.NetHASP dongle.5.sg +15 -0
  2314. die/db/db/PE/DS.Novex dongle.4.sg +14 -0
  2315. die/db/db/PE/DS.RLM.4.sg +21 -0
  2316. die/db/db/PE/DS.Rockey4 dongle.5.sg +20 -0
  2317. die/db/db/PE/DS.SenseLock dongle.5.sg +17 -0
  2318. die/db/db/PE/DS.Sentinel SuperPro dongle.5.sg +16 -0
  2319. die/db/db/PE/DS.Sentinel SuperPro.2.sg +21 -0
  2320. die/db/db/PE/DS.Sentinel dongle.5.sg +24 -0
  2321. die/db/db/PE/DS.SoftLok dongle.5.sg +15 -0
  2322. die/db/db/PE/DS.Unikey dongle.5.sg +26 -0
  2323. die/db/db/PE/DS.WIBU Key dongle.5.sg +16 -0
  2324. die/db/db/PE/DS.Wizzkey dongle.5.sg +14 -0
  2325. die/db/db/PE/DYAMAR.2.sg +12 -0
  2326. die/db/db/PE/DZA Patcher.2.sg +15 -0
  2327. die/db/db/PE/Daemon Protect.2.sg +13 -0
  2328. die/db/db/PE/DalKrypt.2.sg +12 -0
  2329. die/db/db/PE/DataAnubis.1.sg +13 -0
  2330. die/db/db/PE/DeepSea.2.sg +18 -0
  2331. die/db/db/PE/DelZip SFX.2.sg +14 -0
  2332. die/db/db/PE/Delphi.4.sg +270 -0
  2333. die/db/db/PE/Denuvo protector.2.sg +14 -0
  2334. die/db/db/PE/DeployMaster.1.sg +15 -0
  2335. die/db/db/PE/DesktopX Installer.1.sg +18 -0
  2336. die/db/db/PE/Dimd SFX.1.sg +15 -0
  2337. die/db/db/PE/Ding Boys PE-lock Phantasm.2.sg +18 -0
  2338. die/db/db/PE/DirTy CrYpt0r.2.sg +12 -0
  2339. die/db/db/PE/Direct2D.4.sg +14 -0
  2340. die/db/db/PE/Direct3D.4.sg +38 -0
  2341. die/db/db/PE/DirectX.4.sg +14 -0
  2342. die/db/db/PE/DockerDesktopInstaller.1.sg +20 -0
  2343. die/db/db/PE/Dolphin VM.1.sg +18 -0
  2344. die/db/db/PE/DotFix Nice Protect.2.sg +23 -0
  2345. die/db/db/PE/Dotfuscator.2.sg +11 -0
  2346. die/db/db/PE/DragonArmor.2.sg +12 -0
  2347. die/db/db/PE/Duals eXe Encryptor.2.sg +19 -0
  2348. die/db/db/PE/DxPack.2.sg +22 -0
  2349. die/db/db/PE/ENIGMA.2.sg +111 -0
  2350. die/db/db/PE/EP.2.sg +15 -0
  2351. die/db/db/PE/EP.MPRESS.2.sg +37 -0
  2352. die/db/db/PE/EP.MSC.4.sg +21 -0
  2353. die/db/db/PE/EXE Password Protector.2.sg +12 -0
  2354. die/db/db/PE/EXE32Pack.2.sg +12 -0
  2355. die/db/db/PE/EXECrypt.2.sg +12 -0
  2356. die/db/db/PE/EXECryptor.2.sg +99 -0
  2357. die/db/db/PE/EXEFog.2.sg +22 -0
  2358. die/db/db/PE/EXERefactor.2.sg +12 -0
  2359. die/db/db/PE/Eazfuscator.2.sg +17 -0
  2360. die/db/db/PE/ElecKey.2.sg +34 -0
  2361. die/db/db/PE/ElectronApp.3.sg +22 -0
  2362. die/db/db/PE/Embed PE.2.sg +22 -0
  2363. die/db/db/PE/EncryptPE.2.sg +31 -0
  2364. die/db/db/PE/Enigma Installer.1.sg +22 -0
  2365. die/db/db/PE/Enigma Virtual Box.2.sg +17 -0
  2366. die/db/db/PE/Envoy Packager.1.sg +15 -0
  2367. die/db/db/PE/Escargot.2.sg +15 -0
  2368. die/db/db/PE/Eschalon installer.1.sg +15 -0
  2369. die/db/db/PE/ExE Pack.2.sg +23 -0
  2370. die/db/db/PE/Excelsior Installer.1.sg +14 -0
  2371. die/db/db/PE/Excelsior JET.4.sg +35 -0
  2372. die/db/db/PE/Exe Guarder.2.sg +12 -0
  2373. die/db/db/PE/Exe Locker.2.sg +12 -0
  2374. die/db/db/PE/Exe Shield.2.sg +28 -0
  2375. die/db/db/PE/ExeJoiner.1.sg +12 -0
  2376. die/db/db/PE/ExeSafeguard.2.sg +12 -0
  2377. die/db/db/PE/ExeSmasher.2.sg +11 -0
  2378. die/db/db/PE/ExeSplitter.1.sg +24 -0
  2379. die/db/db/PE/ExeStealth.2.sg +40 -0
  2380. die/db/db/PE/FASM.4.sg +21 -0
  2381. die/db/db/PE/FDM Installer.1.sg +18 -0
  2382. die/db/db/PE/FISH .NET.2.sg +17 -0
  2383. die/db/db/PE/FSG.2.sg +175 -0
  2384. die/db/db/PE/FakeNinja.2.sg +16 -0
  2385. die/db/db/PE/FileSplit Self-Merger.2.sg +13 -0
  2386. die/db/db/PE/Fish PE.2.sg +22 -0
  2387. die/db/db/PE/FishPE Shield.2.sg +21 -0
  2388. die/db/db/PE/FixupPak.2.sg +12 -0
  2389. die/db/db/PE/FlashBack Protector.2.sg +13 -0
  2390. die/db/db/PE/FlashPlayer.1.sg +21 -0
  2391. die/db/db/PE/Fly-Crypter.2.sg +15 -0
  2392. die/db/db/PE/Fox Pro.3.sg +25 -0
  2393. die/db/db/PE/Free Basic.4.sg +24 -0
  2394. die/db/db/PE/Free Pascal.4.sg +53 -0
  2395. die/db/db/PE/FreeCryptor.2.sg +22 -0
  2396. die/db/db/PE/FreeJoiner.1.sg +45 -0
  2397. die/db/db/PE/Fuck n Joy.2.sg +12 -0
  2398. die/db/db/PE/Fusion.2.sg +12 -0
  2399. die/db/db/PE/G!X Protector.2.sg +12 -0
  2400. die/db/db/PE/GPInstall.1.sg +19 -0
  2401. die/db/db/PE/GSplit.1.sg +20 -0
  2402. die/db/db/PE/GZip.1.sg +20 -0
  2403. die/db/db/PE/GameGuard.2.sg +12 -0
  2404. die/db/db/PE/Gentee Installer.1.sg +34 -0
  2405. die/db/db/PE/Ghost Installer.1.sg +16 -0
  2406. die/db/db/PE/GkSetup.1.sg +18 -0
  2407. die/db/db/PE/Go.4.sg +65 -0
  2408. die/db/db/PE/Goats PE Mutilator.2.sg +12 -0
  2409. die/db/db/PE/GoldSrc.3.sg +19 -0
  2410. die/db/db/PE/Goliath.2.sg +15 -0
  2411. die/db/db/PE/Gremlin patcher.1.sg +21 -0
  2412. die/db/db/PE/GuardantStealth.2.sg +11 -0
  2413. die/db/db/PE/HASP HL Protection.2.sg +34 -0
  2414. die/db/db/PE/HASP.2.sg +22 -0
  2415. die/db/db/PE/HTML executable.1.sg +18 -0
  2416. die/db/db/PE/HackShield.2.sg +17 -0
  2417. die/db/db/PE/Hamrick_Software_installer.1.sg +16 -0
  2418. die/db/db/PE/Hide&Protect.2.sg +12 -0
  2419. die/db/db/PE/HidePE.2.sg +255 -0
  2420. die/db/db/PE/HyperTech Crackproof.2.sg +13 -0
  2421. die/db/db/PE/I-D Media installer.1.sg +14 -0
  2422. die/db/db/PE/ICrypt.2.sg +12 -0
  2423. die/db/db/PE/ID Application Protector(NoNamePacker).2.sg +12 -0
  2424. die/db/db/PE/IDM Installer.1.sg +15 -0
  2425. die/db/db/PE/ILProtector.2.sg +19 -0
  2426. die/db/db/PE/ILUCRYPT.2.sg +15 -0
  2427. die/db/db/PE/IMPostor Pack.2.sg +12 -0
  2428. die/db/db/PE/INCrypter.2.sg +12 -0
  2429. die/db/db/PE/INFTool.1.sg +15 -0
  2430. die/db/db/PE/INTENIUM.1.sg +13 -0
  2431. die/db/db/PE/IProtect.2.sg +17 -0
  2432. die/db/db/PE/Inno Setup Module.1.sg +97 -0
  2433. die/db/db/PE/Inquartos Obfuscator.2.sg +12 -0
  2434. die/db/db/PE/Instalit.1.sg +25 -0
  2435. die/db/db/PE/Install Factory.1.sg +14 -0
  2436. die/db/db/PE/Install4j installer.1.sg +16 -0
  2437. die/db/db/PE/InstallAnywhere.1.sg +36 -0
  2438. die/db/db/PE/InstallShield.1.sg +91 -0
  2439. die/db/db/PE/InstallUs.1.sg +16 -0
  2440. die/db/db/PE/Intel C.4.sg +13 -0
  2441. die/db/db/PE/Intel IPP.sg +15 -0
  2442. die/db/db/PE/IntelliProtector.2.sg +17 -0
  2443. die/db/db/PE/InxObfuscator.2.sg +14 -0
  2444. die/db/db/PE/JDPack.2.sg +15 -0
  2445. die/db/db/PE/JScript.4.sg +14 -0
  2446. die/db/db/PE/Jar2exe.1.sg +26 -0
  2447. die/db/db/PE/KBys Packer.2.sg +21 -0
  2448. die/db/db/PE/KCryptor.2.sg +13 -0
  2449. die/db/db/PE/KGCrypt.2.sg +11 -0
  2450. die/db/db/PE/KRZIP SFX.2.sg +15 -0
  2451. die/db/db/PE/KoiVM.2.sg +22 -0
  2452. die/db/db/PE/Konekt Protector.2.sg +12 -0
  2453. die/db/db/PE/Krypton.2.sg +25 -0
  2454. die/db/db/PE/Kryptonit.2.sg +16 -0
  2455. die/db/db/PE/LARP.2.sg +13 -0
  2456. die/db/db/PE/LCC-Win32.4.sg +14 -0
  2457. die/db/db/PE/LCL.5.sg +17 -0
  2458. die/db/db/PE/LDK .NET.2.sg +13 -0
  2459. die/db/db/PE/LDK.2.sg +21 -0
  2460. die/db/db/PE/Lahey Fortran 90.4.sg +19 -0
  2461. die/db/db/PE/LameCrypt.2.sg +12 -0
  2462. die/db/db/PE/Laserlok.2.sg +12 -0
  2463. die/db/db/PE/LimeCrypter.2.sg +58 -0
  2464. die/db/db/PE/Lua Runtime.4.sg +16 -0
  2465. die/db/db/PE/LucasArts Update Installer.1.sg +14 -0
  2466. die/db/db/PE/Lyme SFX.1.sg +15 -0
  2467. die/db/db/PE/MEW.2.sg +23 -0
  2468. die/db/db/PE/MP-ZipTool.1.sg +14 -0
  2469. die/db/db/PE/MPQ.1.sg +15 -0
  2470. die/db/db/PE/MPRESS.2.sg +20 -0
  2471. die/db/db/PE/MSLRH.2.sg +117 -0
  2472. die/db/db/PE/MZ-Crypt.2.sg +12 -0
  2473. die/db/db/PE/MZ0oPE.2.sg +12 -0
  2474. die/db/db/PE/MaskPE.2.sg +15 -0
  2475. die/db/db/PE/Maxtocode.2.sg +21 -0
  2476. die/db/db/PE/Metrowerks CodeWarrior.2.sg +26 -0
  2477. die/db/db/PE/MicroJoiner.1.sg +21 -0
  2478. die/db/db/PE/Microsoft .NET Runtime.4.sg +15 -0
  2479. die/db/db/PE/Microsoft C Runtime.4.sg +16 -0
  2480. die/db/db/PE/Microsoft Class Installer.1.sg +22 -0
  2481. die/db/db/PE/Microsoft Compound-based installer.1.sg +14 -0
  2482. die/db/db/PE/Microsoft Edge WebView.4.sg +14 -0
  2483. die/db/db/PE/Microsoft Warbird.2.sg +15 -0
  2484. die/db/db/PE/Microsoft dotNet installer.1.sg +15 -0
  2485. die/db/db/PE/Microsoft.6.sg +1715 -0
  2486. die/db/db/PE/Miktex Installer.1.sg +15 -0
  2487. die/db/db/PE/MinGW.4.sg +65 -0
  2488. die/db/db/PE/Minke.2.sg +12 -0
  2489. die/db/db/PE/Mioplanet installer.1.sg +14 -0
  2490. die/db/db/PE/MoleBox.2.sg +41 -0
  2491. die/db/db/PE/Morphine.2.sg +12 -0
  2492. die/db/db/PE/Morphnah.2.sg +20 -0
  2493. die/db/db/PE/Morton installer.1.sg +21 -0
  2494. die/db/db/PE/Multimedia Fusion Installer.1.sg +14 -0
  2495. die/db/db/PE/Mystic Compressor.2.sg +15 -0
  2496. die/db/db/PE/N-Code.2.sg +13 -0
  2497. die/db/db/PE/N-Joiner.1.sg +12 -0
  2498. die/db/db/PE/N-Joy.2.sg +25 -0
  2499. die/db/db/PE/NOS Installer.1.sg +22 -0
  2500. die/db/db/PE/NOS Packer.2.sg +13 -0
  2501. die/db/db/PE/NTPacker.2.sg +12 -0
  2502. die/db/db/PE/NTShell.2.sg +13 -0
  2503. die/db/db/PE/NTkrnl Protector.2.sg +37 -0
  2504. die/db/db/PE/NakedPacker.2.sg +13 -0
  2505. die/db/db/PE/NanoZip.1.sg +16 -0
  2506. die/db/db/PE/Native UD Packer.2.sg +12 -0
  2507. die/db/db/PE/NativeCryptor by DosX.2.sg +13 -0
  2508. die/db/db/PE/NecroVM.Virt.2.sg +44 -0
  2509. die/db/db/PE/NeoLite.2.sg +38 -0
  2510. die/db/db/PE/NetCompilersLibraries.4.sg +37 -0
  2511. die/db/db/PE/NetReactor.2.sg +102 -0
  2512. die/db/db/PE/NetShieldProtector.2.sg +55 -0
  2513. die/db/db/PE/Newtonsoft.Json.4.sg +14 -0
  2514. die/db/db/PE/Nim.4.sg +17 -0
  2515. die/db/db/PE/Ningishzida.2.sg +12 -0
  2516. die/db/db/PE/NoobyProtect.2.sg +11 -0
  2517. die/db/db/PE/NoodleCrypt.2.sg +12 -0
  2518. die/db/db/PE/North Star PE Shrinker.2.sg +12 -0
  2519. die/db/db/PE/NsPacK.2.sg +40 -0
  2520. die/db/db/PE/Nuitka.1.sg +25 -0
  2521. die/db/db/PE/Nullsoft Scriptable Install System.1.sg +96 -0
  2522. die/db/db/PE/O'Setup95.1.sg +15 -0
  2523. die/db/db/PE/ORiEN.2.sg +19 -0
  2524. die/db/db/PE/Obfuscar.2.sg +14 -0
  2525. die/db/db/PE/Obfuscator .NET 2009.2.sg +16 -0
  2526. die/db/db/PE/Obsidium.2.sg +114 -0
  2527. die/db/db/PE/Open Source Code Crypter.2.sg +11 -0
  2528. die/db/db/PE/OpenAL.4.sg +14 -0
  2529. die/db/db/PE/OpenCL.4.sg +14 -0
  2530. die/db/db/PE/OpenGL.4.sg +14 -0
  2531. die/db/db/PE/OpenSSL.4.sg +14 -0
  2532. die/db/db/PE/Oreans CodeVirtualizer.2.sg +14 -0
  2533. die/db/db/PE/OxiJoiner.sg +16 -0
  2534. die/db/db/PE/PACE.2.sg +17 -0
  2535. die/db/db/PE/PACKWIN.2.sg +12 -0
  2536. die/db/db/PE/PC Guard.2.sg +20 -0
  2537. die/db/db/PE/PCInstall.1.sg +14 -0
  2538. die/db/db/PE/PCShrink.2.sg +15 -0
  2539. die/db/db/PE/PE Diminisher.2.sg +16 -0
  2540. die/db/db/PE/PE Encrypt.2.sg +12 -0
  2541. die/db/db/PE/PE Intro.2.sg +12 -0
  2542. die/db/db/PE/PE Lock NT.2.sg +21 -0
  2543. die/db/db/PE/PE Password.2.sg +12 -0
  2544. die/db/db/PE/PE Protect.2.sg +15 -0
  2545. die/db/db/PE/PE Quake.2.sg +13 -0
  2546. die/db/db/PE/PE-Admin.2.sg +12 -0
  2547. die/db/db/PE/PE-Armor.2.sg +21 -0
  2548. die/db/db/PE/PE-Shield.2.sg +16 -0
  2549. die/db/db/PE/PEBundle.2.sg +25 -0
  2550. die/db/db/PE/PECRYPT32.2.sg +22 -0
  2551. die/db/db/PE/PECompact.2.sg +167 -0
  2552. die/db/db/PE/PELock.2.sg +21 -0
  2553. die/db/db/PE/PENightMare.2.sg +15 -0
  2554. die/db/db/PE/PESpin.2.sg +56 -0
  2555. die/db/db/PE/PETetris.sg +11 -0
  2556. die/db/db/PE/PEUnion.2.sg +122 -0
  2557. die/db/db/PE/PEncrypt.2.sg +21 -0
  2558. die/db/db/PE/PEnguinCrypt.2.sg +12 -0
  2559. die/db/db/PE/PIMP.1.sg +14 -0
  2560. die/db/db/PE/PKLITE.2.sg +15 -0
  2561. die/db/db/PE/PKSFX.1.sg +14 -0
  2562. die/db/db/PE/PMaker.1.sg +13 -0
  2563. die/db/db/PE/PUNiSHER.2.sg +12 -0
  2564. die/db/db/PE/Pack Master.2.sg +12 -0
  2565. die/db/db/PE/PackageForTheWeb.1.sg +15 -0
  2566. die/db/db/PE/Packanoid.2.sg +12 -0
  2567. die/db/db/PE/Packman.2.sg +18 -0
  2568. die/db/db/PE/Pantaray QSetup.1.sg +29 -0
  2569. die/db/db/PE/Paquet Builder.1.sg +15 -0
  2570. die/db/db/PE/Paquet.1.sg +16 -0
  2571. die/db/db/PE/Patch.1.sg +20 -0
  2572. die/db/db/PE/Pe Ninja.2.sg +12 -0
  2573. die/db/db/PE/Pe123.2.sg +15 -0
  2574. die/db/db/PE/PePack.2.sg +16 -0
  2575. die/db/db/PE/PeX.2.sg +12 -0
  2576. die/db/db/PE/Pelles C.4.sg +13 -0
  2577. die/db/db/PE/Perl.3.sg +91 -0
  2578. die/db/db/PE/PerlApp.1.sg +21 -0
  2579. die/db/db/PE/Petite.2.sg +56 -0
  2580. die/db/db/PE/Phoenix.2.sg +19 -0
  2581. die/db/db/PE/Photo Compiler.2.sg +15 -0
  2582. die/db/db/PE/PolyCrypt PE.2.sg +13 -0
  2583. die/db/db/PE/PolyEnE.2.sg +12 -0
  2584. die/db/db/PE/Power Screen Recorder.1.sg +16 -0
  2585. die/db/db/PE/PowerBASIC.4.sg +13 -0
  2586. die/db/db/PE/Private EXE Protector.2.sg +61 -0
  2587. die/db/db/PE/Protection Plus.1.sg +13 -0
  2588. die/db/db/PE/PureBasic.4.sg +33 -0
  2589. die/db/db/PE/PwdProtect.2.sg +10 -0
  2590. die/db/db/PE/Py2exe.1.sg +16 -0
  2591. die/db/db/PE/PyInstaller.2.sg +71 -0
  2592. die/db/db/PE/PyInstallerHider.1.sg +26 -0
  2593. die/db/db/PE/Python.3.sg +21 -0
  2594. die/db/db/PE/QT installer.1.sg +11 -0
  2595. die/db/db/PE/QT.5.sg +35 -0
  2596. die/db/db/PE/QrYPt0r.2.sg +13 -0
  2597. die/db/db/PE/Quantum.1.sg +17 -0
  2598. die/db/db/PE/QuickPack NT.2.sg +13 -0
  2599. die/db/db/PE/RCryptor.2.sg +39 -0
  2600. die/db/db/PE/RDG Tejon Crypter.2.sg +10 -0
  2601. die/db/db/PE/REVProt.2.sg +13 -0
  2602. die/db/db/PE/RJoiner.1.sg +17 -0
  2603. die/db/db/PE/RLP.2.sg +12 -0
  2604. die/db/db/PE/RLPack.2.sg +47 -0
  2605. die/db/db/PE/RNsetup.1.sg +17 -0
  2606. die/db/db/PE/RPP.1.sg +14 -0
  2607. die/db/db/PE/RTPatch.1.sg +15 -0
  2608. die/db/db/PE/ReNET-pack.2.sg +13 -0
  2609. die/db/db/PE/ReactOS PE file.1.sg +15 -0
  2610. die/db/db/PE/RealBasic.4.sg +24 -0
  2611. die/db/db/PE/Resources.6.sg +19 -0
  2612. die/db/db/PE/RosASM.4.sg +19 -0
  2613. die/db/db/PE/Rust.4.sg +37 -0
  2614. die/db/db/PE/SC Obfuscator.2.sg +12 -0
  2615. die/db/db/PE/SCE installer.1.sg +18 -0
  2616. die/db/db/PE/SDProtector.2.sg +18 -0
  2617. die/db/db/PE/SFXRun.1.sg +14 -0
  2618. die/db/db/PE/SLVc0deProtector.2.sg +21 -0
  2619. die/db/db/PE/STATICSUP.1.sg +14 -0
  2620. die/db/db/PE/STUD.2.sg +12 -0
  2621. die/db/db/PE/SVK Protector.2.sg +22 -0
  2622. die/db/db/PE/SZDD.1.sg +40 -0
  2623. die/db/db/PE/Safedisc.2.sg +12 -0
  2624. die/db/db/PE/Safenet RMS.2.sg +12 -0
  2625. die/db/db/PE/Safengine Shielden.2.sg +36 -0
  2626. die/db/db/PE/ScriptHookV.4.sg +14 -0
  2627. die/db/db/PE/SecuPack.2.sg +13 -0
  2628. die/db/db/PE/SecuROM.2.sg +22 -0
  2629. die/db/db/PE/Secure Shade.2.sg +13 -0
  2630. die/db/db/PE/SerGreen Appacker.2.sg +16 -0
  2631. die/db/db/PE/Setup Factory.1.sg +43 -0
  2632. die/db/db/PE/Setup-Specialist.1.sg +15 -0
  2633. die/db/db/PE/SexCrypt.2.sg +12 -0
  2634. die/db/db/PE/Sexe Crypter.2.sg +12 -0
  2635. die/db/db/PE/SfxCA.1.sg +20 -0
  2636. die/db/db/PE/Shrink Wrap.2.sg +12 -0
  2637. die/db/db/PE/Shrinker.2.sg +27 -0
  2638. die/db/db/PE/SimbiOZ.2.sg +19 -0
  2639. die/db/db/PE/Simple Pack.2.sg +15 -0
  2640. die/db/db/PE/Simple UPX Cryptor.2.sg +17 -0
  2641. die/db/db/PE/SimplePackerByEronana.2.sg +14 -0
  2642. die/db/db/PE/Sixxpack.2.sg +20 -0
  2643. die/db/db/PE/Skater.2.sg +16 -0
  2644. die/db/db/PE/Smart Assembly.2.sg +36 -0
  2645. die/db/db/PE/Smart Install Maker.1.sg +17 -0
  2646. die/db/db/PE/SmokesCrypt.2.sg +12 -0
  2647. die/db/db/PE/Soft Defender.2.sg +20 -0
  2648. die/db/db/PE/SoftProtect.2.sg +13 -0
  2649. die/db/db/PE/SoftSentry.2.sg +16 -0
  2650. die/db/db/PE/Softlocx.1.sg +13 -0
  2651. die/db/db/PE/Software Compress.2.sg +15 -0
  2652. die/db/db/PE/Sony Windows Installer.1.sg +16 -0
  2653. die/db/db/PE/SpASM.4.sg +19 -0
  2654. die/db/db/PE/Special EXE Password Protector.2.sg +12 -0
  2655. die/db/db/PE/Spices .Net.2.sg +34 -0
  2656. die/db/db/PE/Spoon Installer.1.sg +23 -0
  2657. die/db/db/PE/Spoon Studio.2.sg +16 -0
  2658. die/db/db/PE/Squeez SFX.1.sg +15 -0
  2659. die/db/db/PE/Squirrel installer.1.sg +16 -0
  2660. die/db/db/PE/Squishy.2.sg +10 -0
  2661. die/db/db/PE/StarForce.2.sg +55 -0
  2662. die/db/db/PE/Ste@lth PE.2.sg +16 -0
  2663. die/db/db/PE/Steam.2.sg +16 -0
  2664. die/db/db/PE/Steam.4.sg +14 -0
  2665. die/db/db/PE/Stones PE Encryptor.2.sg +22 -0
  2666. die/db/db/PE/Store Installer.1.sg +13 -0
  2667. die/db/db/PE/SwiftView installer.1.sg +14 -0
  2668. die/db/db/PE/Synactis In-The-Box Installer.1.sg +21 -0
  2669. die/db/db/PE/TPP Pack.2.sg +12 -0
  2670. die/db/db/PE/Tages.2.sg +12 -0
  2671. die/db/db/PE/Tarma Installer.1.sg +29 -0
  2672. die/db/db/PE/The Best Cryptor.2.sg +12 -0
  2673. die/db/db/PE/TheArk.2.sg +10 -0
  2674. die/db/db/PE/TheHypers protector.2.sg +11 -0
  2675. die/db/db/PE/Themida.2.sg +86 -0
  2676. die/db/db/PE/Thinstall.2.sg +89 -0
  2677. die/db/db/PE/TrueCrypt-VeraCrypt installer.1.sg +14 -0
  2678. die/db/db/PE/UFI_installer.1.sg +14 -0
  2679. die/db/db/PE/UG2002 Cruncher.2.sg +12 -0
  2680. die/db/db/PE/UPX Inliner.2.sg +12 -0
  2681. die/db/db/PE/UPX Modifier.2.sg +12 -0
  2682. die/db/db/PE/UPX Mutanter.2.sg +21 -0
  2683. die/db/db/PE/UPX Protector.2.sg +12 -0
  2684. die/db/db/PE/UPX lock.2.sg +12 -0
  2685. die/db/db/PE/UPX scrambler.2.sg +20 -0
  2686. die/db/db/PE/UPX shit.2.sg +21 -0
  2687. die/db/db/PE/UPX-Patcher.6.sg +29 -0
  2688. die/db/db/PE/UPX.2.sg +171 -0
  2689. die/db/db/PE/UPXFreak.2.sg +12 -0
  2690. die/db/db/PE/UPXcrypter.2.sg +11 -0
  2691. die/db/db/PE/UPolyX.2.sg +30 -0
  2692. die/db/db/PE/UltraPro.2.sg +18 -0
  2693. die/db/db/PE/UnoPiX.2.sg +27 -0
  2694. die/db/db/PE/VBox.2.sg +15 -0
  2695. die/db/db/PE/VCasm-Protector.2.sg +21 -0
  2696. die/db/db/PE/VMProtect.2.sg +287 -0
  2697. die/db/db/PE/VMProtect_NET.2.sg +54 -0
  2698. die/db/db/PE/VMWare.1.sg +41 -0
  2699. die/db/db/PE/VPacker.2.sg +13 -0
  2700. die/db/db/PE/VaySoft_PDF2EXE.2.sg +16 -0
  2701. die/db/db/PE/VbsToExe.1.sg +29 -0
  2702. die/db/db/PE/Virbox.2.sg +13 -0
  2703. die/db/db/PE/Virtual Pascal.4.sg +14 -0
  2704. die/db/db/PE/Vise.1.sg +16 -0
  2705. die/db/db/PE/Visual Objects.4.sg +12 -0
  2706. die/db/db/PE/Visual Prolog.4.sg +14 -0
  2707. die/db/db/PE/VisualStudio_NET.6.sg +14 -0
  2708. die/db/db/PE/Vulkan.4.sg +14 -0
  2709. die/db/db/PE/WF.Guna.UI2.4.sg +15 -0
  2710. die/db/db/PE/WF.Krypton.4.sg +14 -0
  2711. die/db/db/PE/WF.MetroFramework.4.sg +14 -0
  2712. die/db/db/PE/WF_WPF.MaterialSkin.4.sg +14 -0
  2713. die/db/db/PE/WWPACK.2.sg +11 -0
  2714. die/db/db/PE/Watcom.4.sg +35 -0
  2715. die/db/db/PE/WiX Toolset installer.1.sg +20 -0
  2716. die/db/db/PE/Wibu Codemeter.1.sg +30 -0
  2717. die/db/db/PE/WinACE.1.sg +12 -0
  2718. die/db/db/PE/WinIMP.1.sg +15 -0
  2719. die/db/db/PE/WinImage.1.sg +15 -0
  2720. die/db/db/PE/WinKript.2.sg +12 -0
  2721. die/db/db/PE/WinPatch.1.sg +18 -0
  2722. die/db/db/PE/WinRAR Installer.1.sg +28 -0
  2723. die/db/db/PE/WinRAR.1.sg +18 -0
  2724. die/db/db/PE/WinUpack.2.sg +61 -0
  2725. die/db/db/PE/WinZip.1.sg +44 -0
  2726. die/db/db/PE/Winamp Installer.1.sg +14 -0
  2727. die/db/db/PE/Wind of Crypt.2.sg +12 -0
  2728. die/db/db/PE/Windows Authenticode.7.sg +13 -0
  2729. die/db/db/PE/Windows Installer.1.sg +22 -0
  2730. die/db/db/PE/Wine.3.sg +12 -0
  2731. die/db/db/PE/Wise Installer.1.sg +52 -0
  2732. die/db/db/PE/XCR.2.sg +13 -0
  2733. die/db/db/PE/XComp.2.sg +19 -0
  2734. die/db/db/PE/XPACK.2.sg +17 -0
  2735. die/db/db/PE/Xash.3.sg +18 -0
  2736. die/db/db/PE/Xbase.4.sg +29 -0
  2737. die/db/db/PE/Xenocode Postbuild.2.sg +12 -0
  2738. die/db/db/PE/Xojo.3.sg +29 -0
  2739. die/db/db/PE/Xoreax installer.1.sg +19 -0
  2740. die/db/db/PE/Xtreamlok.2.sg +22 -0
  2741. die/db/db/PE/Xtreme-Protector.2.sg +12 -0
  2742. die/db/db/PE/Yano.2.sg +12 -0
  2743. die/db/db/PE/Yodas Crypter.2.sg +35 -0
  2744. die/db/db/PE/Yodas Protector.2.sg +15 -0
  2745. die/db/db/PE/Yummy Game SoftwareShield.2.sg +17 -0
  2746. die/db/db/PE/Zig.4.sg +20 -0
  2747. die/db/db/PE/Zip SFX.2.sg +63 -0
  2748. die/db/db/PE/ZipCentral SFX.1.sg +16 -0
  2749. die/db/db/PE/Zprotect.2.sg +22 -0
  2750. die/db/db/PE/Zydis.4.sg +14 -0
  2751. die/db/db/PE/_BJFnt.2.sg +18 -0
  2752. die/db/db/PE/_FixDetects.9.sg +24 -0
  2753. die/db/db/PE/_NET Spider.2.sg +14 -0
  2754. die/db/db/PE/_NETZ.2.sg +13 -0
  2755. die/db/db/PE/_PE.0.sg +15 -0
  2756. die/db/db/PE/__GenericHeuristicAnalysis_By_DosX.7.sg +2582 -0
  2757. die/db/db/PE/_denuvoComplete.2.sg +98 -0
  2758. die/db/db/PE/_init +142 -0
  2759. die/db/db/PE/_netshrink.2.sg +25 -0
  2760. die/db/db/PE/aPack.2.sg +26 -0
  2761. die/db/db/PE/arj.6.sg +9 -0
  2762. die/db/db/PE/ass-crypter.2.sg +11 -0
  2763. die/db/db/PE/avast Antivirus installer.1.sg +14 -0
  2764. die/db/db/PE/bambam.2.sg +12 -0
  2765. die/db/db/PE/bbfb.2.sg +22 -0
  2766. die/db/db/PE/beria.2.sg +14 -0
  2767. die/db/db/PE/curl.4.sg +14 -0
  2768. die/db/db/PE/dUP.1.sg +19 -0
  2769. die/db/db/PE/darkeye.1.sg +13 -0
  2770. die/db/db/PE/de4dot.6.sg +20 -0
  2771. die/db/db/PE/dePACK.2.sg +13 -0
  2772. die/db/db/PE/distutils.1.sg +18 -0
  2773. die/db/db/PE/eXPressor.2.sg +47 -0
  2774. die/db/db/PE/ezip.2.sg +14 -0
  2775. die/db/db/PE/gcc.4.sg +14 -0
  2776. die/db/db/PE/hXOR packer.sg +12 -0
  2777. die/db/db/PE/hmimys PE-Pack.2.sg +23 -0
  2778. die/db/db/PE/hmimys Protect.2.sg +18 -0
  2779. die/db/db/PE/iPB Protect.2.sg +12 -0
  2780. die/db/db/PE/inPEct.1.sg +9 -0
  2781. die/db/db/PE/java.3.sg +20 -0
  2782. die/db/db/PE/keygens.1.sg +25 -0
  2783. die/db/db/PE/kkrunchy.2.sg +19 -0
  2784. die/db/db/PE/kkryptor.2.sg +13 -0
  2785. die/db/db/PE/ldc.4.sg +12 -0
  2786. die/db/db/PE/linker.6.sg +100 -0
  2787. die/db/db/PE/mPack.2.sg +15 -0
  2788. die/db/db/PE/mkfPack.2.sg +12 -0
  2789. die/db/db/PE/muckis protector.2.sg +14 -0
  2790. die/db/db/PE/nPack.2.sg +36 -0
  2791. die/db/db/PE/obfus_h.5.sg +15 -0
  2792. die/db/db/PE/obfusheader_h.5.sg +32 -0
  2793. die/db/db/PE/rar.1.sg +16 -0
  2794. die/db/db/PE/rar.6.sg +9 -0
  2795. die/db/db/PE/scr2exe.2.sg +19 -0
  2796. die/db/db/PE/simple_patch.1.sg +16 -0
  2797. die/db/db/PE/sql-server.sg +14 -0
  2798. die/db/db/PE/sqlite.4.sg +14 -0
  2799. die/db/db/PE/sqx.1.sg +19 -0
  2800. die/db/db/PE/tElock.2.sg +81 -0
  2801. die/db/db/PE/tcc.4.sg +42 -0
  2802. die/db/db/PE/virus-njrat-0.7d.7.sg +136 -0
  2803. die/db/db/PE/wxWidgets.5.sg +27 -0
  2804. die/db/db/PE/yzPack.2.sg +26 -0
  2805. die/db/db/PE/zip.6.sg +9 -0
  2806. die/db/db/PE/zlib.4.sg +14 -0
  2807. die/db/db/QtFramework +16 -0
  2808. die/db/db/RosASM +13 -0
  2809. die/db/db/SpASM +8 -0
  2810. die/db/db/ZIP/_init +4 -0
  2811. die/db/db/_init +128 -0
  2812. die/db/db/archive-file +36 -0
  2813. die/db/db/arj +80 -0
  2814. die/db/db/cab +46 -0
  2815. die/db/db/duration +14 -0
  2816. die/db/db/language +33 -0
  2817. die/db/db/python +30 -0
  2818. die/db/db/rar +62 -0
  2819. die/db/db/read +423 -0
  2820. die/db/db/result +27 -0
  2821. die/db/db/result-general +32 -0
  2822. die/db/db/result-minimal +27 -0
  2823. die/db/db/shell-script +24 -0
  2824. die/db/db/wxWidgets +12 -0
  2825. die/db/db/zip-file +92 -0
  2826. die/db/db/zlib +23 -0
  2827. die/db/db_custom/PE/EP.MSVC.4.sg +148 -0
  2828. die/db/db_custom/PE/example.sg +18 -0
  2829. die/db/db_custom/where-is-structure-example.txt +1 -0
  2830. die/die.lib +0 -0
  2831. die.lib +0 -0
  2832. die_python-0.1.0.dist-info/METADATA +327 -0
  2833. die_python-0.1.0.dist-info/RECORD +2836 -0
  2834. die_python-0.1.0.dist-info/WHEEL +5 -0
  2835. die_python-0.1.0.dist-info/licenses/LICENSE +201 -0
  2836. include/die.h +44 -0
@@ -0,0 +1,2582 @@
1
+ /*
2
+ ██████╗ ███████╗███╗ ██╗███████╗██████╗ ██╗ ██████╗
3
+ ██╔════╝ ██╔════╝████╗ ██║██╔════╝██╔══██╗██║██╔════╝
4
+ ██║ ███╗█████╗ ██╔██╗ ██║█████╗ ██████╔╝██║██║
5
+ ██║ ██║██╔══╝ ██║╚██╗██║██╔══╝ ██╔══██╗██║██║
6
+ ╚██████╔╝███████╗██║ ╚████║███████╗██║ ██║██║╚██████╗
7
+ ╚═════╝ ╚══════╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝
8
+ ██╗ ██╗ ██╗███████╗██╗ ██╗██████╗ ██╗███████╗████████╗██╗ ██████╗ ██╗
9
+ ██╔╝ ██║ ██║██╔════╝██║ ██║██╔══██╗██║██╔════╝╚══██╔══╝██║██╔════╝ ╚██╗
10
+ ██╔╝ ███████║█████╗ ██║ ██║██████╔╝██║███████╗ ██║ ██║██║ ╚██╗
11
+ ╚██╗ ██╔══██║██╔══╝ ██║ ██║██╔══██╗██║╚════██║ ██║ ██║██║ ██╔╝
12
+ ╚██╗ ██║ ██║███████╗╚██████╔╝██║ ██║██║███████║ ██║ ██║╚██████╗ ██╔╝
13
+ ╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝
14
+ █████╗ ███╗ ██╗ █████╗ ██╗ ██╗ ██╗███████╗██╗███████╗
15
+ ██╔══██╗████╗ ██║██╔══██╗██║ ╚██╗ ██╔╝██╔════╝██║██╔════╝
16
+ ███████║██╔██╗ ██║███████║██║ ╚████╔╝ ███████╗██║███████╗
17
+ ██╔══██║██║╚██╗██║██╔══██║██║ ╚██╔╝ ╚════██║██║╚════██║
18
+ ██║ ██║██║ ╚████║██║ ██║███████╗██║ ███████║██║███████║
19
+ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝╚═╝ ╚══════╝╚═╝╚══════╝
20
+ */
21
+
22
+ // DIE's signature file
23
+
24
+ // =================== [ ABOUT ] ===================
25
+ // This heuristic analysis will help identify
26
+ // presence of obfuscation the or wrapper
27
+ // tricks through advanced complex checks.
28
+ // Static emulation, signature analysis,
29
+ // smart checks and much more!
30
+ // ================================================
31
+
32
+ // ================== [ DONATE ] ==================
33
+ // Did you like my work? :D Thank you! But what
34
+ // about donation? I'll be very grateful <3
35
+ //
36
+ // * Bitcoin: 1DosXdevPgbaRKJkAJpvf2Jmjip8zC57he
37
+ // * Litecoin: LUCKY777ju5Ea2VmenRuvk75kRUzTfwrHw
38
+ // ================================================
39
+
40
+ // ================= [ CONTACTS ] =================
41
+ // Author: DosX
42
+ // E-Mail: collab@kay-software.ru
43
+ // GitHub: https://github.com/DosX-dev
44
+ // Telegram: @DosX_dev
45
+ // ================================================
46
+ // If I don't respond to email, message to Telegram
47
+ // ================================================
48
+
49
+ // For the script to work correctly, the following
50
+ // official Detect It Easy components are required:
51
+ // "FASM", "RosASM", "SpASM", "FPC", "PE\linker.6.sg",
52
+ // "Microsoft.6.sg", "language"
53
+
54
+ // Please do not read the code out loud unless you have exorcism skills
55
+
56
+ const logType = {
57
+ warning: -2,
58
+ about: -1,
59
+ nothing: 0,
60
+ any: 1,
61
+ net: 2
62
+ },
63
+ heurLabel = "HEUR";
64
+
65
+ var lastOffsetDetected = "0x00";
66
+
67
+ const detect = main;
68
+
69
+ function main() {
70
+
71
+ if (stubForWrongEnvironment()) return null; // 'PE' is undefined
72
+ if (stubForLegacyEngines()) return null; // old DIE version
73
+
74
+ if (PE.isHeuristicScan()) {
75
+ if (!PE.isVerbose()) {
76
+ log(logType.warning, "To get the full heuristic scan result use '--verbose'");
77
+ }
78
+
79
+ log(logType.about, "Generic Heuristic Analysis by DosX (@DosX_dev)");
80
+
81
+ log(logType.nothing, "Scanning has begun!");
82
+
83
+ if (PE.isNET()) {
84
+ scanForObfuscations_NET();
85
+ scanForAntiAnalysis_NET();
86
+ } else {
87
+ scanForObfuscations_Native();
88
+ }
89
+
90
+ scanForPackersAndCryptors_NET_and_Native();
91
+
92
+ if (PE.isVerbose()) {
93
+ scanForLanguages_NET_and_Native();
94
+ }
95
+
96
+ // >> Happy end <<
97
+ log(logType.nothing, "Scan completed.");
98
+
99
+
100
+ // scanForMaciliousCode_NET_and_Native();
101
+ } else {
102
+ log(logType.warning, "Heuristic scan is disabled. Use '--heuristicscan' to enable");
103
+ }
104
+ }
105
+
106
+ function stubForLegacyEngines() {
107
+ if (typeof PE.isNetObjectPresent === 'undefined') {
108
+ _setResult("DIE-Message", ">>> Update DIE Engine to 3.10 and higher for using Heuristic-analyser by DosX <<<", String(), String());
109
+ return true;
110
+ }
111
+
112
+ return false;
113
+ }
114
+
115
+
116
+ function stubForWrongEnvironment() {
117
+ if (typeof PE === 'undefined') {
118
+ _setResult("DIE-Message", ">>> Wrong environment! 'PE' is undefined. Check DIE-engine for correct installation <<<");
119
+ }
120
+ return false;
121
+ }
122
+
123
+
124
+
125
+ function scanForObfuscations_NET() {
126
+ var options = String();
127
+
128
+ var isDetected = Boolean();
129
+
130
+
131
+
132
+
133
+ const isVbNet = isVbNetStandartLibraryPresent();
134
+
135
+
136
+ var isEntryPointModified = false;
137
+
138
+ const vbNetEntries = [
139
+ "Main",
140
+ "main",
141
+ "MAIN",
142
+ "MyApplication"
143
+ ],
144
+ defaultEntries = [ // like MSIL, C#, C++ NET etc
145
+ "Main",
146
+ "<Main>$", // For programs with top-level operators (C#)
147
+ "mainCRTStartup" // C++ .NET
148
+ ]
149
+
150
+ if (!PE.isDll()) {
151
+ if (isVbNet) {
152
+ if (isAllNetReferencesMissing(vbNetEntries)) {
153
+ isEntryPointModified = true;
154
+ }
155
+ } else if (isAllNetReferencesMissing(defaultEntries)) {
156
+ isEntryPointModified = true;
157
+ }
158
+
159
+ if (isEntryPointModified) {
160
+ log(logType.net, "No 'Main' method found")
161
+ }
162
+ }
163
+
164
+ if (isEntryPointModified) options += "Modified EP";
165
+
166
+
167
+
168
+
169
+ var isStrangeEpPosition = false;
170
+
171
+ const netMetaHeaders = [
172
+ "~",
173
+ "Strings",
174
+ "US",
175
+ "GUID",
176
+ "Blob"
177
+ ];
178
+
179
+ // Specify the default .NET section index
180
+ const defaultNetSection = 0;
181
+
182
+ // Check conditions for a strange entry point position (not for CLR apps)
183
+ if (!PE.isDll() && PE.getNumberOfSections() > 1 && !isClrNET()) {
184
+ // Iterate through .NET metadata headers
185
+ for (var s = 0; s < netMetaHeaders.length; s++) {
186
+ const headerName = netMetaHeaders[s];
187
+
188
+ // Check if the signature is not present in the default .NET section
189
+ if (!PE.isSignatureInSectionPresent(defaultNetSection, "00'#" + headerName + "'00")) {
190
+ isStrangeEpPosition = true;
191
+ break;
192
+ }
193
+ }
194
+ }
195
+
196
+ if (isStrangeEpPosition) options += (options.length != 0 ? " + " : String()) + "Strange EP position";
197
+
198
+
199
+
200
+
201
+ var isNativeEntryPointModified = false;
202
+
203
+ if (!PE.isDll() && !isClrNET()) { // not for CLR apps
204
+ if (!PE.is64()) {
205
+ // FF2500????00: jmp dword ptr [ ... ]
206
+ const firstOpCode = getFirstEpAsmOpCode();
207
+
208
+ if (firstOpCode !== "JMP") {
209
+ if (PE.VAToOffset(PE.getAddressOfEntryPoint()) != -1) {
210
+ log(logType.net, "Very strange EP pattern: " + getEpAsmPattern(onlyOpCodes = true, numberOf = 4).split("|").join(" .. "));
211
+ } else {
212
+ log(logType.net, "No native entry point")
213
+ }
214
+
215
+ isNativeEntryPointModified = true;
216
+ }
217
+ } else { // AMD64
218
+ if (PE.VAToOffset(PE.getAddressOfEntryPoint()) != 0x00) {
219
+ isNativeEntryPointModified = true;
220
+ }
221
+ }
222
+ }
223
+
224
+ if (isNativeEntryPointModified) options += (options.length != 0 ? " + " : String()) + "Modified native EP";
225
+
226
+
227
+
228
+
229
+ var isDosMessageModified = false;
230
+
231
+ // Check if the specified DOS message is not found in the DOS stub
232
+ if (PE.findSignature(PE.getDosStubOffset(), PE.getDosStubSize(), "'This program cannot be run in DOS mode.'") === -1) {
233
+ log(logType.net, "DOS-stub modified!");
234
+ isDosMessageModified = true;
235
+ }
236
+
237
+ if (isDosMessageModified) options += (options.length != 0 ? " + " : String()) + "Modified DOS";
238
+
239
+
240
+
241
+
242
+ var strangeSections = false;
243
+
244
+ const badChars = '_-=+~!@#$%^&*()"№;%:?*():;,/\\|\'`<>.0123456789'; // Very very bad!
245
+
246
+ // Check conditions for strange sections
247
+ if (PE.getNumberOfSections() > (!isClrNET() ? 6 : 10) || !PE.isSectionNamePresent(".text")) { strangeSections = true; } else {
248
+ // Iterate through each section
249
+ for (var i = 0; i < PE.getNumberOfSections() && !strangeSections; i++) {
250
+ const sectionName = PE.getSectionName(i);
251
+
252
+ // Check if the first character is not "." and the length of name is less than 3
253
+ if (sectionName[0] !== "." && sectionName.length < 3) {
254
+ strangeSections = true;
255
+ break;
256
+ }
257
+
258
+ // Iterate through characters after "."
259
+ // Check if the character is in the badChars list
260
+ for (var d = 0; d < badChars.length && !strangeSections; d++) {
261
+ if (sectionName.substr(1, sectionName.length).indexOf(badChars[d]) !== -1) {
262
+ strangeSections = true;
263
+ }
264
+ }
265
+ }
266
+ }
267
+
268
+ if (strangeSections) options += (options.length != 0 ? " + " : String()) + "Strange sections";
269
+
270
+
271
+
272
+
273
+ const opCodes = new NetOpCodes();
274
+
275
+
276
+
277
+
278
+ // A popular way to obfuscate numbers/booleans
279
+ var isIntConfusionPresent = false;
280
+
281
+ const intConfusionXorPattern = opCodes.ldc_i4 + opCodes.ldc_i4 + opCodes.xor + opCodes.ldc_i4;
282
+
283
+ if (validateNetByteCode(intConfusionXorPattern)) {
284
+ if (validateNetByteCode( // samples by: Inx Obfuscator
285
+ intConfusionXorPattern +
286
+ (opCodes.bne_un_s + opCodes.ldc_i4_2 + opCodes.stloc_0 + opCodes.sizeof + opCodes.add)
287
+ ) ||
288
+ validateNetByteCode( // samples by: MindLated, NetShield
289
+ intConfusionXorPattern +
290
+ (opCodes.bne_un + opCodes.ldc_i4 + opCodes.stloc + opCodes.sizeof + opCodes.add)
291
+ ) ||
292
+ validateNetByteCode( // samples by: VavilonProtect
293
+ intConfusionXorPattern +
294
+ (opCodes.bne_un + opCodes.ldc_i4_2 + opCodes.stloc_s + opCodes.sizeof + opCodes.add)
295
+ )
296
+ ) {
297
+ log(logType.net, "Int confusion detected! Offset: " + lastOffsetDetected);
298
+ isIntConfusionPresent = true;
299
+ }
300
+ }
301
+
302
+ if (isIntConfusionPresent) options += (options.length != 0 ? " + " : String()) + "Int confusion";
303
+
304
+
305
+
306
+
307
+ // Virtualization is a method of protection in which some code segments are rewritten into instructions inherent in the built-in virtual machine and executed by it
308
+ var isVirtualizationPresent = false;
309
+
310
+ if (
311
+ isAllNetReferencesPresent(
312
+ references = [
313
+ "System.Reflection", // System.Reflection.dll
314
+ "GetILGenerator", // MSIL: 'System.Reflection.Emit.DynamicMethod::GetILGenerator()'
315
+ "BeginInvoke",
316
+ "EndInvoke",
317
+ "OpCode" // MSIL: 'System.Reflection.Emit.OpCode'
318
+ ]
319
+ ) &&
320
+ (
321
+ PE.isNetObjectPresent("Ldarg_0") || // MSIL: 'System.Reflection.Emit.OpCodes.Ldarg_0'
322
+ PE.isNetObjectPresent("CreateDelegate") // MSIL: 'System.Delegate.CreateDelegate'
323
+ ) && !isFrameworkComponent()
324
+ ) {
325
+ isVirtualizationPresent = true;
326
+ }
327
+
328
+ if (isVirtualizationPresent) options += (options.length != 0 ? " + " : String()) + "Virtualization";
329
+
330
+
331
+
332
+
333
+ // Hiding calls using delegate tricks
334
+ var callsEncrypt = false;
335
+
336
+ if (
337
+ isAllNetReferencesPresent(
338
+ references = [
339
+ "GetTypeFromHandle", // MSIL: 'System.Type::GetTypeFromHandle( ... )'
340
+ "BinaryReader", // MSIL: 'System.IO.BinaryReader'
341
+ "CreateDelegate", // MSIL: '[Delegate].CreateDelegate'
342
+ "MakeByRefType", // MSIL: 'System.Type::MakeByRefType()'
343
+ "DynamicMethod" // MSIL: 'System.Reflection.Emit.DynamicMethod'
344
+ ]
345
+ ) && !isFrameworkComponent()
346
+ ) {
347
+ callsEncrypt = true;
348
+ }
349
+
350
+ if (callsEncrypt) options += (options.length != 0 ? " + " : String()) + "Calls encrypt";
351
+
352
+
353
+
354
+
355
+ // https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.suppressildasmattribute
356
+ var isAntiIldasmPresent = false;
357
+
358
+ if (validateNetObject("SuppressIldasmAttribute")) {
359
+ isAntiIldasmPresent = true;
360
+ }
361
+
362
+ if (isAntiIldasmPresent) options += (options.length != 0 ? " + " : String()) + "Anti-ILDASM";
363
+
364
+
365
+
366
+
367
+ // Anti de4dot via inheritance
368
+ var isAntiDe4dotPresent = false;
369
+
370
+ if (
371
+ validateSignature("'Form'******00'Form'******00'Form'******00") || // samples by: NetShield
372
+ validateNetObject("Form0") // samples by: MindLated
373
+ ) {
374
+ isAntiDe4dotPresent = true;
375
+ }
376
+
377
+ if (isAntiDe4dotPresent) options += (options.length != 0 ? " + " : String()) + "Anti-de4dot";
378
+
379
+
380
+
381
+
382
+ // An obfuscation method in which calli is used instead of regular calls
383
+ var isCalliInvokesPresent = false;
384
+
385
+ if (validateNetByteCode( // samples by: MindLated
386
+ opCodes.setStrict(opCodes.ldftn, "** ?? 00 0A") +
387
+ opCodes.setStrict(opCodes.calli, "** 00 00 11")
388
+ ) ||
389
+ validateNetByteCode( // samples by: ArmDot, DarksProtector
390
+ opCodes.idelem_i +
391
+ opCodes.setStrict(opCodes.calli, "** 00 00 11")
392
+ )) {
393
+ log(logType.net, "Calli invokes detected! Offset: " + lastOffsetDetected);
394
+ isCalliInvokesPresent = true;
395
+ }
396
+
397
+ if (isCalliInvokesPresent) options += (options.length != 0 ? " + " : String()) + "Calli invokes";
398
+
399
+
400
+
401
+
402
+ var isLdftnPointersPresent = false;
403
+
404
+ if (validateNetByteCode(
405
+ opCodes.nop + opCodes.setStrict(opCodes.ldftn, "** 00 00 06") + opCodes.stelem_i
406
+ ) ||
407
+ validateNetByteCode(
408
+ opCodes.nop + opCodes.setStrict(opCodes.ldftn, "** 00 00 0A") + opCodes.stelem_i
409
+ ) ||
410
+ validateNetByteCode( // samples by: Quantum (private)
411
+ opCodes.setStrict(opCodes.ldftn, "** 00 00 0A") +
412
+ opCodes.setStrict(opCodes.calli, "** 00 00 11")
413
+ )) {
414
+ log(logType.net, "Ldftn pointers method-obfuscation detected! Offset: " + lastOffsetDetected);
415
+ isLdftnPointersPresent = true;
416
+ }
417
+
418
+ if (isLdftnPointersPresent) options += (options.length != 0 ? " + " : String()) + "Ldftn pointers";
419
+
420
+
421
+
422
+
423
+ // Turns the code into spaghetti by splitting it into blocks that it executes depending on the situation
424
+ var isCtrlFlowPresent = false;
425
+
426
+ if (validateNetByteCode( // samples by: ConfuserEx
427
+ opCodes.nop + opCodes.ldloc_0 + opCodes.ldc_i4 + opCodes.mul + opCodes.ldc_i4 + opCodes.xor + opCodes.br_s +
428
+ opCodes.nop + opCodes.ldloc_0 + opCodes.ldc_i4 + opCodes.mul + opCodes.ldc_i4 + opCodes.xor + opCodes.br_s
429
+ ) ||
430
+ validateNetByteCode( // samples by: ConfuserEx (neo mod)
431
+ opCodes.ldc_i4 + opCodes.ldc_i4 + opCodes.xor + opCodes.dup + opCodes.stloc_0 + opCodes.ldc_i4_3 + opCodes.rem_un + opCodes.switch__nobody
432
+ ) ||
433
+ validateNetByteCode( // samples by: .NET Reactor (v6.9.8)
434
+ opCodes.setStrict(opCodes.ldc_i4, "00 00 00 00") + opCodes.br + opCodes.br + opCodes.ldloc
435
+ ) ||
436
+ validateNetByteCode( // samples by: .NET Reactor
437
+ opCodes.ldsfld + opCodes.brfalse + opCodes.pop +
438
+ opCodes.setStrict(opCodes.ldc_i4, "01 00 00 00") + // MSIL: 'ldc.4 1'
439
+ opCodes.br + opCodes.nop
440
+ ) ||
441
+ validateNetByteCode( // samples by: .NET Reactor
442
+ opCodes.setNullValue(opCodes.ldc_i4) +
443
+ opCodes.ldsfld + opCodes.brtrue + opCodes.pop + opCodes.ldc_i4 +
444
+ opCodes.br
445
+ ) ||
446
+ validateNetByteCode( // samples by: .NET Reactor (legacy~~)
447
+ opCodes.stloc + opCodes.ldloc +
448
+ opCodes.setStrict(opCodes.switch__nobody, "** ** ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 00 00") +
449
+ opCodes.ldc_i4 + opCodes.br
450
+ ) ||
451
+ validateNetByteCode( // samples by: MindLated, NetShield
452
+ opCodes.setNullValue(opCodes.ldc_i4) + // MSIL: 'ldc.i4 0'
453
+ opCodes.stloc + opCodes.br + opCodes.nop + opCodes.ldloc +
454
+ opCodes.setStrict(opCodes.ldc_i4, "01 00 00 00") + // MSIL: 'ldc.i4 1'
455
+ opCodes.ceq + opCodes.brfalse
456
+ ) ||
457
+ validateNetByteCode( // samples by: Rose Obfuscator
458
+ opCodes.setNullValue(opCodes.ldc_i4) + // MSIL: 'ldc.i4'
459
+ opCodes.stloc + opCodes.br + opCodes.nop + opCodes.ldloc + opCodes.ldc_i4 + opCodes.ceq + opCodes.brfalse
460
+ ) ||
461
+ validateNetByteCode( // samples by: Smart Assembly
462
+ opCodes.ldc_i4 + opCodes.br + opCodes.ldloc_s + opCodes.ldc_i4_s + opCodes.ldc_i4_0 + opCodes.stelem_i1 +
463
+ opCodes.ldc_i4 + opCodes.br
464
+ ) ||
465
+ validateNetByteCode( // samples by: ConfuserEx (Beds mod)
466
+ opCodes.ldc_i4 + opCodes.ldc_i4 + opCodes._unknown + opCodes.ldc_i4 + opCodes._unknown + opCodes.stloc_0 + opCodes.nop + opCodes.ldloc_0 +
467
+ opCodes.ldc_i4 + opCodes.ldc_i4 + opCodes._unknown + opCodes.ldc_i4 + opCodes._unknown + opCodes.ceq + opCodes.brfalse_s
468
+ ) ||
469
+ validateNetByteCode( // samples by: DotNetPatcher
470
+ opCodes.setStrict(opCodes.stloc_s, "05") + opCodes.nop + opCodes.ldloc_s + opCodes._unknown + opCodes.ceq + opCodes.brfalse_s + opCodes._unknown +
471
+ opCodes.setStrict(opCodes.stloc_s, "05") + opCodes.nop + opCodes.ldloc_s + opCodes._unknown + opCodes.ceq + opCodes.brfalse_s
472
+ ) ||
473
+ validateNetByteCode( // samples by: VMProtect
474
+ opCodes.ldloc_0 + opCodes.setStrict(opCodes.ldc_i4, "?? ** ** **") + opCodes._unknown + opCodes.stloc_0 +
475
+ opCodes.ldloc_0 + opCodes.setStrict(opCodes.ldc_i4, "?? ** ** **") + opCodes.xor + opCodes.stloc_0
476
+ ) ||
477
+ validateNetByteCode( // samples by: VMProtect
478
+ opCodes.setStrict(opCodes.ldc_i4, "?? ** ** **") + opCodes._unknown + opCodes.stloc_0 + opCodes.setStrict(opCodes.ldftn, "** ?? ?? ??")
479
+ )
480
+ ) {
481
+ log(logType.net, "Control flow obfuscation detected! Offset: " + lastOffsetDetected);
482
+ isCtrlFlowPresent = true;
483
+ }
484
+
485
+ if (isCtrlFlowPresent) options += (options.length != 0 ? " + " : String()) + "Ctrl flow";
486
+
487
+
488
+ const afterCtorOffset = PE.findSignature(PE.getDosStubOffset() + PE.getDosStubSize(), PE.getSize() - PE.getOverlaySize(), "'<Module>'00**") + 8;
489
+
490
+
491
+ // Indicates that the file uses short object names. Typically this indicates the presence of an obfuscation
492
+ // There are two ways to detect short names - find one-letter objects or just use signature mask at Ctor offset :D
493
+
494
+ var isShortNamesPresent = false;
495
+
496
+
497
+ if (PE.compare("00**00**00", afterCtorOffset) ||
498
+ PE.compare("00****00****00****00", afterCtorOffset) ||
499
+ PE.compare("00******00******00******00", afterCtorOffset) ||
500
+ PE.compare("00********00********00********00", afterCtorOffset) ||
501
+ PE.compare("00****00****00", afterCtorOffset) ||
502
+ PE.compare("00****00**00", afterCtorOffset) ||
503
+ PE.compare("00**00****00", afterCtorOffset)) {
504
+ log(logType.net, "Short names detected! (mask)");
505
+ isShortNamesPresent = true;
506
+ }
507
+
508
+ if (!isShortNamesPresent && PE.compare("00**00", afterCtorOffset)) { // second way :D
509
+ var shortNamesFound = 0;
510
+
511
+ const chars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
512
+ for (var i = 1; i < chars.length && !isShortNamesPresent; i++) {
513
+ if (PE.isNetObjectPresent(chars[i])) {
514
+ shortNamesFound++;
515
+ log(logType.net, "Short name found: '" + chars[i] + "' (" + shortNamesFound + "/20)");
516
+ }
517
+
518
+ if (shortNamesFound === 20) {
519
+ isShortNamesPresent = true;
520
+ }
521
+ }
522
+ }
523
+
524
+ if (isShortNamesPresent) options += (options.length != 0 ? " + " : String()) + "Short names";
525
+
526
+
527
+
528
+
529
+ var badNamings = false;
530
+
531
+ var buffer = "";
532
+
533
+ // get next 0x12c bytes after <Module> .ctor
534
+ for (var i = 0; i < 0x12c; i++) {
535
+ var currentByte = PE.readByte(afterCtorOffset + i).toString(16);
536
+
537
+ if (currentByte === '0') currentByte += '0';
538
+
539
+ buffer += currentByte;
540
+ buffer += ' ';
541
+ }
542
+
543
+ var bufferString = String();
544
+
545
+ // 0x00 to [0x20, 0x20, 0x20]
546
+ const bufferArray = replaceAllInString(buffer, '00 ', '20 20 20 ').split(' ');
547
+
548
+ // buffer to a string
549
+ for (var i = 0; i < bufferArray.length; i++)
550
+ bufferString += String.fromCharCode(parseInt(bufferArray[i], 16));
551
+
552
+
553
+ const patternsToExplore = bufferString.split(" ");
554
+
555
+ var strangePatternsCounter = 0;
556
+
557
+ for (var i = 0; i < patternsToExplore.length && !badNamings; i++) {
558
+
559
+ const currentStringPattern = patternsToExplore[i];
560
+
561
+ if (currentStringPattern.indexOf("<") === -1 && currentStringPattern.match(/^(?=\d|[a-z])(?=.*[a-z]\d[a-z])(?=(?:.*\d){4,})/i))
562
+ strangePatternsCounter++;
563
+
564
+ if (strangePatternsCounter > 4)
565
+ badNamings = true;
566
+
567
+ }
568
+
569
+ if (badNamings) options += (options.length != 0 ? " + " : String()) + "Bad namings";
570
+
571
+
572
+
573
+
574
+ // AntiTamper protects the file from modification
575
+ var isAntiTamperPresent = false;
576
+
577
+ if (
578
+ validateNetUnicodeString(" is tampered.") || // samples by: .NET Reactor
579
+ validateNetUnicodeString("ping 127.0.0.1 > nul") || // samples by: ConfuserEx (Trinity, SkiDzEx like)
580
+ validateNetUnicodeString("/C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del \"") || // samples by: MindLated
581
+ validateNetUnicodeString( // samples by: ConfuserEx
582
+ opCodes.ldloc_s + opCodes.ldc_i4_0 + opCodes.ldloc_s + opCodes.ldc_i4_0 + opCodes.ldelem_u4 + opCodes.ldloc_s + opCodes.ldc_i4_0 + opCodes.ldelem_u4 + opCodes._unknown + opCodes.stelem_i4 +
583
+ opCodes.ldloc_s + opCodes.ldc_i4_1 + opCodes.ldloc_s + opCodes.ldc_i4_1 + opCodes.ldelem_u4 + opCodes.ldloc_s + opCodes.ldc_i4_1 + opCodes.ldelem_u4 + opCodes._unknown + opCodes.stelem_i4 +
584
+ opCodes.ldloc_s + opCodes.ldc_i4_2 + opCodes.ldloc_s + opCodes.ldc_i4_2 + opCodes.ldelem_u4 + opCodes.ldloc_s + opCodes.ldc_i4_2 + opCodes.ldelem_u4 + opCodes._unknown + opCodes.stelem_i4 +
585
+ opCodes.ldloc_s + opCodes.ldc_i4_3 + opCodes.ldloc_s + opCodes.ldc_i4_3 + opCodes.ldelem_u4 + opCodes.ldloc_s + opCodes.ldc_i4_3 + opCodes.ldelem_u4 + opCodes._unknown + opCodes.stelem_i4 +
586
+ opCodes.ldloc_s + opCodes.ldc_i4_4 + opCodes.ldloc_s + opCodes.ldc_i4_4 + opCodes.ldelem_u4 + opCodes.ldloc_s + opCodes.ldc_i4_4 + opCodes.ldelem_u4 + opCodes._unknown + opCodes.stelem_i4
587
+ ) ||
588
+ validateNetByteCode( // samples: ConfuserEx (Beds mod, private)
589
+ opCodes.ldloc_s + opCodes._unknown + opCodes.shr_un + opCodes.ldloc_s + opCodes.ldc_i4_s + opCodes.shl + opCodes.or + opCodes.stloc_s +
590
+ opCodes.ldloc_s + opCodes._unknown + opCodes.shr_un + opCodes.ldloc_s + opCodes.ldc_i4_s + opCodes.shl + opCodes.or + opCodes.stloc_s +
591
+ opCodes.ldloc_s + opCodes._unknown + opCodes.shr_un + opCodes.ldloc_s + opCodes.ldc_i4_s + opCodes.shl + opCodes.or + opCodes.stloc_s
592
+ )
593
+ ) {
594
+ log(logType.net, "Anti-tamper detected!");
595
+ isAntiTamperPresent = true;
596
+ }
597
+
598
+ if (isAntiTamperPresent) options += (options.length != 0 ? " + " : String()) + "Anti-tamper";
599
+
600
+
601
+
602
+
603
+ // If in the assembly you can find a second object starting with “<Module>”, then this is a fakeee!
604
+ var isModuleCtorMultiple = false;
605
+
606
+ var currentCtorOffset = PE.findSignature(PE.getDosStubOffset() + PE.getDosStubSize(), PE.getSize() - PE.getOverlaySize(), "00'<Module>'00");
607
+
608
+ if (currentCtorOffset != -1) {
609
+ var secondCtorNameOffset = PE.findSignature(currentCtorOffset + 10, PE.getSize() - PE.getOverlaySize(), "'<Module>'");
610
+
611
+ if (secondCtorNameOffset != -1 && PE.readByte(secondCtorNameOffset + 8) != 0x00) {
612
+ log(logType.net, "Fake <Module> detected! Offset: 0x" + Number(secondCtorNameOffset).toString(16));
613
+ isModuleCtorMultiple = true;
614
+ }
615
+ }
616
+
617
+ if (isModuleCtorMultiple) options += (options.length != 0 ? " + " : String()) + "Fake .cctor name";
618
+
619
+
620
+
621
+
622
+ // Detects the use of unusual mathematical expressions that would be simplified by the compiler. For example, an expression like "912874 + 39188124^834"
623
+ var isMutationsPresent = false;
624
+
625
+ const mathOpCodes = [
626
+ opCodes.add, opCodes.sub,
627
+ opCodes.mul, opCodes.div,
628
+ opCodes.xor, opCodes.shr,
629
+ opCodes.shl, opCodes.or,
630
+ opCodes.not, opCodes.and
631
+ ];
632
+
633
+ const mathTemplates = [ // %s = math opcode
634
+ opCodes.ldc_i4 + opCodes.ldc_i4 + "%s" + opCodes.stloc, // samples by: .NET Reactor
635
+ opCodes.ldc_i4 + opCodes.ldc_i4 + "%s" + opCodes.ldc_i4 + opCodes.add, // samples by: ConfuserEx (Beds mod)
636
+ opCodes.ldloc_1 + opCodes.ldc_i4 + opCodes.ldc_i4 + "%s" + opCodes.ldc_i4 + opCodes.ldc_i4, // samples by: SkiDzEX
637
+ opCodes.ldloc + opCodes.ldc_i4 + opCodes.ldc_i4 + opCodes.ldc_i4 + "%s" + opCodes.stelem_i1, // samples by: .NET Reactor
638
+ opCodes.ldc_i4 + opCodes.ldc_i4 + "%s" + opCodes.br_s // samples by: [Unknown protector, only samples]
639
+ ];
640
+
641
+ for (var y = 0; y < mathTemplates.length && !isMutationsPresent; y++) {
642
+ const template = mathTemplates[y];
643
+
644
+ for (var e = 0; e < mathOpCodes.length && !isMutationsPresent; e++) {
645
+
646
+ if (e == 0 && !validateNetByteCode(template.replace("%s", opCodes._unknown))) break; // No math mutations
647
+
648
+ const pattern = template.replace("%s", mathOpCodes[e]);
649
+
650
+ if (validateNetByteCode(pattern)) {
651
+ log(logType.net, "Math mutations detected! Offset: " + lastOffsetDetected);
652
+ isMutationsPresent = true;
653
+ }
654
+ }
655
+ }
656
+
657
+ if (isMutationsPresent) options += (options.length != 0 ? " + " : String()) + "Math mutations";
658
+
659
+
660
+
661
+
662
+ // VB NET apps with resources only
663
+
664
+ var isStringsEncryptionPresent = false;
665
+
666
+ if (isVbNet) {
667
+ if (PE.isNetObjectPresent("Resources") && !validateGlobalUnicodeString(".Resources")) {
668
+ isStringsEncryptionPresent = true;
669
+ }
670
+ }
671
+
672
+ if (isStringsEncryptionPresent) options += (options.length != 0 ? " + " : String()) + "Strings encryption";
673
+
674
+
675
+
676
+
677
+ // A type of obfuscation of numbers in which they are inverted several times from positive to negative and vice versa...
678
+ var isMathInversionsPresent = false;
679
+
680
+ if (validateNetByteCode(opCodes.ldc_i4 + opCodes.not) && (
681
+ validateNetByteCode( // ~(-(~(-(~(-(~(-( num ))))))))
682
+ opCodes.ldc_i4 +
683
+ opCodes.not + opCodes.neg + opCodes.not + opCodes.neg +
684
+ opCodes.not + opCodes.neg + opCodes.not + opCodes.neg
685
+ ) ||
686
+ validateNetByteCode( // ~(~(-(-(~(~( num ))))))
687
+ opCodes.ldc_i4 +
688
+ opCodes.not + opCodes.not + opCodes.neg + opCodes.neg +
689
+ opCodes.not + opCodes.not
690
+ ) ||
691
+ validateNetByteCode( // ~(-(~(~(-(-( num ))))))
692
+ opCodes.ldc_i4 +
693
+ opCodes.not + opCodes.neg + opCodes.not + opCodes.not +
694
+ opCodes.neg + opCodes.neg
695
+ ) ||
696
+ validateNetByteCode( // ~(-(~(-(~(~( num ))))))
697
+ opCodes.ldc_i4 +
698
+ opCodes.not + opCodes.neg + opCodes.not + opCodes.neg +
699
+ opCodes.not + opCodes.not
700
+ ) ||
701
+ validateNetByteCode( // ~(-(~(-(~(-( num ))))))
702
+ opCodes.ldc_i4 +
703
+ opCodes.not + opCodes.neg + opCodes.not + opCodes.neg +
704
+ opCodes.not + opCodes.neg
705
+ )
706
+ )) {
707
+ log(logType.net, "Math inversions detected, offset " + lastOffsetDetected);
708
+ isMathInversionsPresent = true;
709
+ }
710
+
711
+ if (isMathInversionsPresent) options += (options.length != 0 ? " + " : String()) + "Math inversions";
712
+
713
+
714
+
715
+
716
+ // A technique that allows you to avoid code decompilation. dnSpy gives a parsing error when trying to open such a file
717
+ var invalidOpCodes = false;
718
+
719
+ if (
720
+ /* validateNetByteCode( // samples by: SugarGuard
721
+ opCodes.setStrict(opCodes.box, "?? 00 00 01") + opCodes.ret
722
+ ) || */
723
+ validateNetByteCode( // samples by: ConfuserEx (Beds mod)
724
+ opCodes.setStrict(opCodes.calli, "FF FF FF FF") + opCodes.setStrict(opCodes.sizeof, "FF FF FF FF")
725
+ )
726
+ ) {
727
+ log(logType, "Invalid OpCodes detected, offset " + lastOffsetDetected);
728
+ invalidOpCodes = true;
729
+ }
730
+
731
+ if (invalidOpCodes) options += (options.length != 0 ? " + " : String()) + "Invalid OpCodes";
732
+
733
+
734
+
735
+
736
+ const obfuscatorsAttributes = [
737
+ "Xenocode.Client.Attributes.AssemblyAttributes.ProcessedByXenocode",
738
+ "CryptoObfuscator.ProtectedWithCryptoObfuscatorAttribute",
739
+ "SecureTeam.Attributes.ObfuscatedByAgileDotNetAttribute",
740
+ "Xenocode.Client.Attributes.AssemblyAttributes",
741
+ "SmartAssembly.Attributes.PoweredByAttribute",
742
+ "ObfuscatedByAgileDotNetAttribute",
743
+ "NineRays.Obfuscator.Evaluation",
744
+ "ObfuscatedByCliSecureAttribute",
745
+ "BabelObfuscatorAttribute",
746
+ "AsStrongAsFuckAttribute",
747
+ "ProtectedByDotnetsafer",
748
+ "Macrobject.Obfuscator",
749
+ "DotfuscatorAttribute",
750
+ "CodeWallTrialVersion",
751
+ "ConfusedByAttribute",
752
+ "ObfuscatedByGoliath",
753
+ "NETSpider.Attribute",
754
+ "NineRays.Obfuscator",
755
+ "PoweredByAttribute", // Smart Assembly
756
+ "RustemSoft.Skater",
757
+ "BabelAttribute",
758
+ "MRuntime3.dll", // Maxtocode
759
+ "YanoAttribute",
760
+ "EMyPID_8234_",
761
+ "ZYXDNGuarder",
762
+ "SkiDzEX", // ConfuserEx based
763
+ "Sixxpack",
764
+ "____KILL", // CodeVeil
765
+ "Reactor", // Fake .NET Reactor
766
+ ];
767
+
768
+ var isFakeSignaturesPresent = false;
769
+
770
+ var isWatermarkPresent = false;
771
+
772
+ var signaturesCounter = 0;
773
+
774
+ var obfuscatorAttributeFound = String();
775
+
776
+ // Iterate through obfuscators attributes
777
+ for (var t = 0; t < obfuscatorsAttributes.length && !isFakeSignaturesPresent; t++) {
778
+
779
+ if (validateNetObject(obfuscatorsAttributes[t])) {
780
+ obfuscatorAttributeFound = obfuscatorsAttributes[t];
781
+ signaturesCounter++;
782
+ }
783
+
784
+ // Check if the number of detected signatures exceeds 1
785
+ if (signaturesCounter > 1) {
786
+
787
+ // Set flag indicating the presence of fake signatures
788
+ isFakeSignaturesPresent = true;
789
+ }
790
+ }
791
+
792
+ if (isFakeSignaturesPresent) {
793
+ options += (options.length != 0 ? " + " : String()) + "Fake signatures";
794
+ } else {
795
+ // "Watermark" is only possible in the absence of fake signatures
796
+
797
+ if (signaturesCounter === 1) {
798
+ log(logType.nothing, "Watermark (Attribute) found: '" + obfuscatorAttributeFound + "'");
799
+ isWatermarkPresent = true;
800
+ }
801
+
802
+ if ((!isWatermarkPresent && (
803
+ validateSignature("'Obfuscated'") ||
804
+ validateSignature("'obfuscated'") ||
805
+ validateSignature("'ByAttribute'") ||
806
+ validateSignature("'ObfuscatorAttribute'") ||
807
+ validateNetObject("ObfuscationAttribute")
808
+ )) && !isFrameworkComponent()) // System.Reflection.ObfuscationAttribute
809
+ {
810
+ isWatermarkPresent = true;
811
+ }
812
+ }
813
+
814
+ if (isWatermarkPresent) options += (options.length != 0 ? " + " : String()) + "Watermark";
815
+
816
+
817
+
818
+
819
+ const protectorsLabelsToRemove = [ // Protectors with these names will be removed from results
820
+ "Xenocode Postbuild",
821
+ "Smart Assembly",
822
+ "Dotfuscator",
823
+ "Babel .NET",
824
+ "Agile .NET",
825
+ "Spices.Net",
826
+ "Maxtocode",
827
+ "FISH .NET",
828
+ "CliSecure",
829
+ "CodeWall",
830
+ "CodeVeil",
831
+ "Sixxpack",
832
+ "DNGuard",
833
+ "Goliath",
834
+ "Yano"
835
+ ],
836
+ packersLabelsToRemove = [
837
+ "NsPack",
838
+ "ASPack"
839
+ ],
840
+ protectionsLabelsToRemove = [
841
+ "Sentinel SuperPro dongle reference",
842
+ "Unikey/Activator dongle reference",
843
+ "Eutron SmartKey dongle reference",
844
+ "SenseLock dongle reference",
845
+ "Hardlock dongle reference",
846
+ "WIBU Key dongle reference",
847
+ "Wizzkey dongle reference",
848
+ "SoftLok dongle reference",
849
+ "NetHASP dongle reference"
850
+ ];
851
+
852
+ // Волки делают АУФ 🐺☝️
853
+
854
+ if (isFakeSignaturesPresent) {
855
+ for (var d = 0; d < protectorsLabelsToRemove.length; d++) {
856
+ _removeResult("protector", protectorsLabelsToRemove[d]);
857
+ }
858
+
859
+ for (var d = 0; d < packersLabelsToRemove.length; d++) {
860
+ _removeResult("packer", packersLabelsToRemove[d]);
861
+ }
862
+
863
+ for (var d = 0; d < protectionsLabelsToRemove.length; d++) {
864
+ _removeResult("protection", protectionsLabelsToRemove[d]);
865
+ }
866
+ }
867
+
868
+
869
+ if (options.length != 0) isDetected = true;
870
+
871
+
872
+
873
+
874
+ if (isDetected) {
875
+ _setResult("~protection", "Obfuscation", String(), PE.isVerbose() ? options : String());
876
+ }
877
+ }
878
+
879
+
880
+
881
+ function scanForAntiAnalysis_NET() {
882
+ var options = String();
883
+
884
+
885
+ // Assumes the file can detect debugging protection
886
+ var isAntiDebugPresent = false;
887
+
888
+ const debuggerObject = "Debugger", // MSIL: 'System.Diagnostics.Debugger' from System.Diagnostics.dll
889
+ isAttached = "get_IsAttached", // MSIL: '*.Debugger::get_IsAttached()'
890
+ isLogging = "IsLogging" // MSIL: '*.Debugger::IsLogging()'
891
+
892
+ if (
893
+ (( // .NET Functions
894
+ validateNetObject(debuggerObject) || validateNetUnicodeString(debuggerObject) // Check for 'Debugger'
895
+ ) && (
896
+ (validateNetObject(isAttached) || validateNetUnicodeString(isAttached)) || // Check for 'get_IsAttached' property
897
+ (validateNetObject(isLogging) || validateNetUnicodeString(isLogging)) // Check for 'IsLogging' function
898
+ ) ||
899
+ ( // Native (WinAPI) functions
900
+ validateNetObject("CheckRemoteDebuggerPresent") || validateNetObject("IsDebuggerPresent")
901
+ )) && !isFrameworkComponent()
902
+ ) {
903
+ isAntiDebugPresent = true;
904
+ }
905
+
906
+ if (isAntiDebugPresent) options += (options.length != 0 ? " + " : String()) + "Anti-debug";
907
+
908
+
909
+
910
+
911
+ // A type of protection in which, after launching an application, it erases the headers and/or PE signature behind itself
912
+ var isAntiDumpPresent = false;
913
+
914
+ if (
915
+ validateNetObject("VirtualProtect") && ( // from 'kernel32.dll', WinAPI
916
+ // Need to check
917
+ isAllNetReferencesPresent( // samples by: ConfuserEx, SkiDzEX
918
+ references = [
919
+ "System.Runtime.InteropServices", // System.Runtime.InteropServices.dll
920
+ "Marshal", // MSIL: '*.Marshal::GetHINSTANCE( ... )'
921
+ "GetHINSTANCE", // MSIL: '*.Marshal::GetHINSTANCE( ... )'
922
+ "IntPtr", // MSIL: 'System.IntPtr'
923
+ "op_Explicit" // MSIL: 'System.IntPtr::op_Explicit'
924
+ ]
925
+ ) ||
926
+ isAllNetReferencesPresent( // samples by: Inx Obfuscator
927
+ references = [
928
+ "System.Diagnostics", // System.Diagnostics
929
+ "memcpy", // from 'msvcrt.dll', WinAPI
930
+ "IntPtr", // MSIL: 'System.IntPtr'
931
+ "get_MainModule", // MSIL: '*.Process::get_MainModule()'
932
+ "get_BaseAddress" // MSIL: '*.ProcessModule::get_BaseAddress()'
933
+ ]
934
+ ) ||
935
+ isAllNetReferencesPresent( // samples by: MindLated
936
+ references = [
937
+ "System.Runtime.InteropServices", // System.Runtime.InteropServices.dll
938
+ "Marshal", // MSIL: '*.Marshal::GetHINSTANCE( ... )'
939
+ "GetHINSTANCE", // MSIL: '*.Marshal::GetHINSTANCE( ... )'
940
+ "IntPtr", // MSIL: 'System.IntPtr'
941
+ "CopyBlock",
942
+ "InitBlock"
943
+ ]
944
+ )
945
+ )
946
+ ) {
947
+ isAntiDumpPresent = true;
948
+ }
949
+
950
+ if (isAntiDumpPresent) options += (options.length != 0 ? " + " : String()) + "Anti-dump";
951
+
952
+
953
+
954
+
955
+ const antiDnSpyTriggers = [
956
+ "dnspy",
957
+ "dnSpy",
958
+ "DNSPY"
959
+ ];
960
+
961
+ var isAntiDnSpyPresent = false;
962
+
963
+ // Iterate through anti-DnSpy triggers
964
+ for (var l = 0; l < antiDnSpyTriggers.length && !isAntiDnSpyPresent; l++) {
965
+ const dnSpyName = antiDnSpyTriggers[l];
966
+
967
+ // Check if the signature for anti-DnSpy trigger is valid using Unicode signature mask or the original signature
968
+ if (
969
+ validateGlobalUnicodeString(dnSpyName) ||
970
+ validateSignature("'" + dnSpyName + "'")
971
+ ) {
972
+ // Set flag indicating the presence of anti-DnSpy behavior
973
+ isAntiDnSpyPresent = true;
974
+ }
975
+ }
976
+
977
+ if (isAntiDnSpyPresent) options += (options.length != 0 ? " + " : String()) + "Anti-dnSpy";
978
+
979
+
980
+
981
+
982
+ const antiIlSpyTriggers = [
983
+ "ilspy",
984
+ "ilSpy",
985
+ "ILSpy",
986
+ "ILSPY"
987
+ ];
988
+
989
+ var isAntiIlSpyPresent = false;
990
+
991
+ for (var l = 0; l < antiIlSpyTriggers.length && !isAntiIlSpyPresent; l++) {
992
+ const ilSpyName = antiIlSpyTriggers[l];
993
+
994
+ if (
995
+ validateGlobalUnicodeString(ilSpyName) ||
996
+ validateSignature("'" + ilSpyName + "'")
997
+ ) {
998
+ isAntiIlSpyPresent = true;
999
+ }
1000
+ }
1001
+
1002
+ if (isAntiIlSpyPresent) options += (options.length != 0 ? " + " : String()) + "Anti-ILSpy";
1003
+
1004
+
1005
+
1006
+
1007
+ const sbieVariants = [
1008
+ "sbiedll.",
1009
+ "SbieDll.",
1010
+ "SBIEDLL."
1011
+ ];
1012
+
1013
+ var isAntiSbiePresent = false;
1014
+
1015
+ // Check if the signature for 'GetModuleHandle' is present
1016
+ if (validateSignature("'GetModuleHandle'")) { // from 'kernel32.dll') {
1017
+ // Iterate through Sandboxie variants
1018
+ for (var l = 0; l < sbieVariants.length && !isAntiSbiePresent; l++) {
1019
+ const sbieLib = sbieVariants[l];
1020
+
1021
+ // Check if the signature for Sandboxie variant is valid using Unicode signature mask or the original signature
1022
+ if (
1023
+ validateGlobalUnicodeString(sbieLib) ||
1024
+ validateSignature("'" + sbieLib + "'")
1025
+ ) {
1026
+ // Set flag indicating the presence of anti-Sandboxie behavior
1027
+ isAntiSbiePresent = true;
1028
+ }
1029
+ }
1030
+ }
1031
+
1032
+ if (isAntiSbiePresent) options += (options.length != 0 ? " + " : String()) + "Anti-SandBoxie";
1033
+
1034
+
1035
+
1036
+
1037
+ var isAntiVmPresent = false;
1038
+
1039
+ if (validateNetUnicodeString("vmware") || validateNetUnicodeString("VirtualBox")) {
1040
+ isAntiVmPresent = true;
1041
+ }
1042
+
1043
+ if (isAntiVmPresent) options += (options.length != 0 ? " + " : String()) + "Anti-VM";
1044
+
1045
+
1046
+
1047
+
1048
+ if (options.length != 0) {
1049
+ _setResult("~protection", "Anti analysis", String(), PE.isVerbose() ? options : String());
1050
+ }
1051
+ }
1052
+
1053
+
1054
+
1055
+ // Determines whether the application is a C++ CLR
1056
+
1057
+ function isClrNET() {
1058
+ return PE.isNET() && PE.isLibraryPresent("KERNEL32.DLL");
1059
+ }
1060
+
1061
+
1062
+
1063
+ // .NET OpCodes for static emulations
1064
+ function NetOpCodes() {
1065
+ this.add = "58"; // MSIL: 'add'
1066
+ this.sub = "59"; // MSIL: 'sub'
1067
+ this.mul = "5A"; // MSIL: 'mul'
1068
+ this.and = "5F"; // MSIL: 'and'
1069
+ this.bne_un = "40????????"; // MSIL: 'bne.un'
1070
+ this.bne_un_s = "3309"; // MSIL: 'bne.un.s'
1071
+ this.br = "38????????"; // MSIL: 'br'
1072
+ this.br_s = "2B??"; // MSIL: 'br.s'
1073
+ this.brfalse = "39????????"; // MSIL: 'brfalse'
1074
+ this.brfalse_s = "2C??"; // MSIL: 'brfalse.s'
1075
+ this.brtrue = "3A????????"
1076
+ this.call = "28????????"; // MSIL: 'call'
1077
+ this.calli = "29????????"; // MSIL: 'calli'
1078
+ this.ceq = "FE01"; // MSIL: 'ceq'
1079
+ this.div = "5B"; // MSIL: 'div'
1080
+ this.dup = "25"; // MSIL: 'dup'
1081
+ this.idelem_i = "97"; // MSIL: 'idelem.i'
1082
+ this.ldc_i4 = "20????????"; // MSIL: 'ldc.i4'
1083
+ this.ldc_i4_0 = "16"; // MSIL: 'ldc.i4.0'
1084
+ this.ldc_i4_1 = "17"; // MSIL: 'ldc.i4.1'
1085
+ this.ldc_i4_2 = "18"; // MSIL: 'ldc.i4.2'
1086
+ this.ldc_i4_3 = "19"; // MSIL: 'ldc.i4.2'
1087
+ this.ldc_i4_4 = "1A"; // MSIL: 'ldc.i4.4'
1088
+ this.ldc_i4_s = "1F??"; // MSIL: 'ldc.i4.s'
1089
+ this.ldftn = "FE06????????"; // MSIL: 'ldftn'
1090
+ this.ldloc = "FE??????"; // MSIL: 'ldloc'
1091
+ this.ldloc_0 = "06"; // MSIL: 'ldloc.0'
1092
+ this.ldloc_1 = "07"; // MSIL: 'ldloc.1'
1093
+ this.ldloc_2 = "08"; // MSIL: 'ldloc.2'
1094
+ this.ldloc_3 = "09"; // MSIL: 'ldloc.3'
1095
+ this.ldloc_s = "11??"; // MSIL: 'ldloc.s'
1096
+ this.ldsfld = "7E????????"; // MSIL: 'ldsfld'
1097
+ this.ldstr = "72????????"; // MSIL: 'ldstr'
1098
+ this.ldelem_u4 = "95"; // MSIL: 'ldelem.u4'
1099
+ this.nop = "00"; // MSIL: 'nop'
1100
+ this.not = "66"; // MSIL: 'not'
1101
+ this.neg = "65"; // MSIL: 'neg'
1102
+ this.or = "60"; // MSIL: 'or'
1103
+ this.pop = "26"; // MSIL: 'pop'
1104
+ this.ret = "2A"; // MSIL: 'ret'
1105
+ this.rem_un = "5E"; // MSIL: 'rem.un'
1106
+ this.shl = "62"; // MSIL: 'shl'
1107
+ this.shr = "63"; // MSIL: 'shr'
1108
+ this.sizeof = "FE1C????????"; // MSIL: 'sizeof'
1109
+ this.stloc = "FE0E????"; // MSIL: 'stloc'
1110
+ this.stloc_0 = "0A"; // MSIL: 'stloc.0'
1111
+ this.stloc_1 = "0B"; // MSIL: 'stloc.1'
1112
+ this.stloc_2 = "0C"; // MSIL: 'stloc.2'
1113
+ this.stloc_3 = "0D"; // MSIL: 'stloc.3'
1114
+ this.stloc_s = "13??"; // MSIL: 'stloc.s'
1115
+ this.shr_un = "64"; // MSIL: 'shr.un'
1116
+ this.xor = "61"; // MSIL: 'xor'
1117
+ this.stelem_i = "9B"; // MSIL: 'stelem.i'
1118
+ this.stelem_i1 = "9C"; // MSIL: 'stelem.i1'
1119
+ this.stelem_i4 = "9E"; // MSIL: 'stelem.i4'
1120
+ this.box = "8C????????"; // MSIL: 'box'
1121
+
1122
+ this.switch__nobody = "45"; // MSIL: 'switch'
1123
+ this._unknown = "**"; // Unknown opcode
1124
+ this._any = "??"; // Any opcode
1125
+
1126
+
1127
+
1128
+ // setStrict sets the strict value of the opcode for substitution
1129
+ // btw I like what I do
1130
+ this.setStrict = function(opCodeMask, value) {
1131
+ // Remove spaces from opcode mask and value
1132
+ opCodeMask = removeSpaces(opCodeMask);
1133
+ value = removeSpaces(value);
1134
+
1135
+ // Find the index of the special pattern "??" in the opcode mask
1136
+ var indexOfSpecialPattern = opCodeMask.indexOf("??");
1137
+
1138
+ // Check if the opcode mask has a body (contains the special pattern "??")
1139
+ var isOpCodeMaskHasBody = indexOfSpecialPattern !== -1; // -1 if not found
1140
+
1141
+ // Extract the opcode in hexadecimal
1142
+ var opCodeInHex = isOpCodeMaskHasBody ? opCodeMask.substr(0x00, indexOfSpecialPattern) : opCodeMask;
1143
+
1144
+ // Check if the opcode mask has a body and the length of the body matches the length of the value
1145
+ if (isOpCodeMaskHasBody && opCodeMask.substr(opCodeInHex.length).length != value.length) {
1146
+ throw "The size of the input values does not match.";
1147
+ }
1148
+
1149
+ // Combine the opcode in hexadecimal with the value
1150
+ return opCodeInHex + value;
1151
+ }
1152
+
1153
+ // Sets the mask value to zero for the specified opcode
1154
+ this.setNullValue = function(opCodeMask) {
1155
+
1156
+ if (opCodeMask.indexOf("??") === -1) {
1157
+ throw "Instruction does not have a body to overwrite the value.";
1158
+ }
1159
+
1160
+ return replaceAllInString(opCodeMask, "??", "00");
1161
+ }
1162
+
1163
+ }
1164
+
1165
+
1166
+ function removeSpaces(inputString) {
1167
+ return inputString.split(" ").join("");
1168
+ }
1169
+
1170
+
1171
+ function replaceAllInString(inputString, search, replacement) {
1172
+ while (inputString.indexOf(search) !== -1) {
1173
+ inputString = inputString.replace(search, replacement)
1174
+ }
1175
+
1176
+ return inputString;
1177
+ }
1178
+
1179
+
1180
+
1181
+ // This feature was originally intended only for .NET, but
1182
+ // now partially works with Native files.
1183
+
1184
+ function scanForPackersAndCryptors_NET_and_Native() { // For .NET and Native apps
1185
+ var options = String();
1186
+
1187
+ var isDetected = Boolean(),
1188
+ isCryptor = Boolean();
1189
+
1190
+
1191
+
1192
+
1193
+ if (PE.isNET()) {
1194
+
1195
+ var isAssemblyInvokeFound = false;
1196
+
1197
+ if (isAllNetReferencesPresent( // TODO: update [!!!]
1198
+ references = [
1199
+ "System.Reflection", // System.Reflection.dll
1200
+ "get_EntryPoint", // MSIL: '*.Assembly::get_EntryPoint()'
1201
+ "Assembly", // MSIL: 'System.Reflection.Assembly' from System.Reflection.dll
1202
+ "Invoke", // MSIL: '*.MethodBase::Invoke(object, object[])'
1203
+ "Load" // MSIL: '*.Assembly::Load(uint8[])'
1204
+ ]
1205
+ )) {
1206
+ isAssemblyInvokeFound = true;
1207
+
1208
+ options = "Assembly invoke";
1209
+ }
1210
+
1211
+
1212
+
1213
+
1214
+ // Check if any class from System.Security.Cryptography namespace is used (non-full name) - for cryptors
1215
+ if (findAndMark("System.Security.Cryptography", isFullName = false) != String()) {
1216
+
1217
+ // Specify cryptography classes to look for
1218
+ const cryptoClasses = [
1219
+ "TripleDESCryptoServiceProvider",
1220
+ "RSACryptoServiceProvider",
1221
+ "DSACryptoServiceProvider",
1222
+ "DESCryptoServiceProvider",
1223
+ "AesCryptoServiceProvider",
1224
+ "Rfc2898DeriveBytes",
1225
+ "SHA256Managed",
1226
+ "TripleDES",
1227
+ "Rijndael",
1228
+ "ECDsaCng",
1229
+ "AesAEAD",
1230
+ "Aes192Cbc",
1231
+ "Aes256Cbc",
1232
+ "Aes128Cbc",
1233
+ "AesManaged",
1234
+ "AesCng",
1235
+ "SHA256",
1236
+ "SHA512",
1237
+ "SHA1CryptoServiceProvider",
1238
+ "SHA512CryptoServiceProvider",
1239
+ "RC2CryptoServiceProvider",
1240
+ "SHA384CryptoServiceProvider",
1241
+ // "MD5CryptoServiceProvider",
1242
+ "SHA256CryptoServiceProvider",
1243
+ "RNGCryptoServiceProvider"
1244
+ ];
1245
+
1246
+ // Iterate through cryptography classes
1247
+ for (var i = 0; i < cryptoClasses.length && !isCryptor; i++) {
1248
+ var cryptoClassSign = cryptoClasses[i],
1249
+ result = findAndMark(
1250
+ sign = cryptoClassSign,
1251
+ isFullName = true
1252
+ );
1253
+
1254
+ // Check if assembly invoke is found and the cryptography class is present
1255
+ if (isAssemblyInvokeFound && result.length != 0) {
1256
+ log(logType.net, "Crypto class present: " + cryptoClassSign);
1257
+
1258
+ isCryptor = true;
1259
+
1260
+ // Add the cryptography class to options
1261
+ options += (options.length != 0 ? " + " : String()) + cryptoClassSign;
1262
+ }
1263
+ }
1264
+ }
1265
+
1266
+
1267
+
1268
+
1269
+ // Check if any class from System.IO.Compression namespace is used (non-full name)
1270
+ if ((findAndMark("System.IO.Compression", isFullName = false).length != 0)) {
1271
+
1272
+ // Specify compression classes to look for
1273
+ const compressionClasses = [
1274
+ "DeflateStream",
1275
+ "GZipStream"
1276
+ ];
1277
+
1278
+ // Iterate through compression classes
1279
+ for (var i = 0; i < compressionClasses.length; i++) {
1280
+ var compressionClassSign = compressionClasses[i],
1281
+ result = findAndMark(compressionClassSign, isFullName = true);
1282
+
1283
+ // Check if assembly invoke is found and the compression class is present
1284
+ if (isAssemblyInvokeFound && result.length != 0) {
1285
+ log(logType.net, "Compression class present: " + compressionClassSign);
1286
+
1287
+ // If it's a cryptor, add the compression class to options
1288
+ if (isCryptor) options += (options.length != 0 ? " + " : String()) + compressionClassSign;
1289
+
1290
+ // Break the loop if a match is found
1291
+ break;
1292
+ }
1293
+ }
1294
+ }
1295
+ }
1296
+
1297
+
1298
+ // Self-Extracting archives
1299
+ // TODO: Upgrade
1300
+ var isSfx = false;
1301
+
1302
+ if (!PE.isDll() && PE.isOverlayPresent()) {
1303
+ const overlayPatterns = [
1304
+ "'Rar!'", // samples by: WinRAR
1305
+ "'PK'03", // samples by: Zip SFX (by Intel)
1306
+ "';!@Install@!UTF-8!'", "'7z'BCAF271C", "efbbbf';!@Install@!UTF-8!'" // samples by: 7z
1307
+ ]
1308
+
1309
+ for (var l = 0; l < overlayPatterns.length; l++) {
1310
+ if (PE.compareOverlay(overlayPatterns[l])) {
1311
+ log(logType.nothing, "SFX overlay pattern: " + overlayPatterns[l]);
1312
+ isSfx = true;
1313
+ }
1314
+ }
1315
+
1316
+
1317
+ if (!isSfx && !PE.isNET()) {
1318
+ const sfxEntries = [
1319
+ // "e8$$$$$$$$558bec83ec..a1........8365....8365....5357bf........3bc7bb........74..85c374..f7d0", // samples by: WinZip
1320
+ // "558bec6a..68........68........64a1........50648925........83....5356578965..ff15", // samples by: Zip SFX
1321
+ // "e8$$$$$$$$558bec83ec..8365....8365....a1........5657bf........be........3bc7", // samples by: WinRAR Installer
1322
+ // "e8$$$$$$$$8bff558bec83ec..a1........8365....8365....5357bf........bb", // samples by: Zip SFX
1323
+ // "558bec83c4..b8........e8........33c05568........64ff30648920e8", // samples by: Zip SFX
1324
+ "4883ec..e8$$$$$$$$48895c24..55488bec4883ec..488365....48bb................488b05........483bc375", // samples by: WinRAR Installer
1325
+ "83ec..5657ff15........8bf08d4424..50c74424..........ff15........8a068b3d........3c..75..56ffd7", // samples by: Zip SFX
1326
+ "e9$$$$$$$$558bec81ec........830d..........5356576a..33dbbf........68........895d..881d", // samples by: Microsoft Cabinet
1327
+ "558bec83ec..56ff15........8bf08a003c..75..84c074..803e..74..46803e..75..803e..75..46eb", // samples by: Zip SFX
1328
+ "6a..33c0505050ff15........50e8$$$$$$$$55b8........8bece8........53b9........5657be", // samples by: Zip SFX
1329
+ "6a..68........e8........66813d............75..a1........81b8................75..", // samples by: Microsoft Cabinet
1330
+ "558bec83ec..565733ffff15........8bf0897d..8d45..50ff15........8a063c..75..56ff15", // samples by: Zip SFX
1331
+ "51526a..2eff15........506a..6a..2eff15........50e8........502eff15........5a59c3", // samples by: WinIMP
1332
+ "558bec81ec........535657ff15........a3........ff15........a1........6625....3d", // samples by: Microsoft Cabinet
1333
+ "558becb8........e8........5356be........578d45..5633db5053ff15........85c00f84", // samples by: Zip SFX
1334
+ "a1........c1e0..a3........575133c0bf........b9........3bcf76..2bcffcf3aa595f", // samples by: WinRAR Installer
1335
+ "558bec83c4..5356e8$$$$$$$$e8........6a..e8........8905........e8........8905", // samples by: Zip SFX
1336
+ "ff15........b1..380874..b1..4080....74..380874..4080....75..80....74..4033", // samples by: WinZip
1337
+ "53ff15........b3..38..74..80c3..4033d28a083aca74..3acb74..408a083aca75", // samples by: WinZip
1338
+ "558bec83c4..535657e8........e8........33c05568........64ff30648920e8", // samples by: WinRAR
1339
+ "53ff15........b3..38..74..80c3..8a48..4033d23aca74..3acb74..8a48..40", // samples by: WinZip
1340
+ "e8$$$$$$$$53bb........e8........85c074..33d28a1083fa..75..40eb", // samples by: WinRAR
1341
+ "fffe2a002a002a006d0065007300730061006700650073002a002a002a00", // samples by: WinRAR Installer
1342
+ "e8$$$$$$$$558bec83c4..b8........53", // samples by: WinRAR Installer
1343
+ "8A48014033D23ACA740A3ACB74068A4801" // samples by: WinZip
1344
+ ]
1345
+
1346
+ if (PE.isSectionNamePresent("_winzip_")) {
1347
+ isSfx = true;
1348
+ }
1349
+
1350
+ for (var k = 0; k < sfxEntries.length; k++) {
1351
+ if (PE.compareEP(sfxEntries[k])) {
1352
+ log(logType.nothing, "SFX entry pattern: " + sfxEntries[k]);
1353
+
1354
+ isSfx = true;
1355
+ }
1356
+ }
1357
+ }
1358
+ }
1359
+
1360
+ if (isSfx) options += (options.length != 0 ? " + " : String()) + "SFX";
1361
+
1362
+
1363
+
1364
+
1365
+ var entryLikePacker = false;
1366
+
1367
+ if (!PE.isDll()) {
1368
+ const entries = [
1369
+ "53565755488D35........488DBE", // samples by: UPX (x64)
1370
+ "B8........68........64", // samples by: Petite (x32)
1371
+ "60..................E8", // samples by: Anticrack Software (x32)
1372
+ "33C08BC068........68", // samples by: ExE Pack (x32)
1373
+ "74..E9........60E8", // samples by: PE-PACK
1374
+ "EB0668........C39C", // samples by: PECompact (x32)
1375
+ "93071F05....8ED0BC", // samples by: aPack (x32)
1376
+ "60BE........8DBE", // samples by: UPX (x32)
1377
+ "B8........6A..68", // samples by: Petite (x32)
1378
+ "BE........AD8BF8", // samples by: WinUPack (x32)
1379
+ "68........9C60E8", // samples by: XComp, XPACK (x32)
1380
+ "53558BE833DBEB60", // samples by: WWPack (x32)
1381
+ "BD........C745", // samples by: kkrunchy (x32)
1382
+ "57565351524150", // samples by: mpress (x64)
1383
+ "B8........5064", // samples by: PECompact (x32)
1384
+ "8CCBBA....03DA", // // samples by: aPack (x32)
1385
+ "B8........669C", // samples by: Petite, Themida (x32)
1386
+ "8CC0FA8ED0BC", // samples by: PACKWIN (x32)
1387
+ "B8........60", // samples by: Petite, Themida (x32)
1388
+ "8B44240456", // samples by: ASDPack (x32)
1389
+ "1E068CC88E", // samples by: aPack (x32)
1390
+ "1E068CCBBA", // samples by: aPack (x32)
1391
+ "EB..9C60E8", // samples by: PECompact (x32)
1392
+ "9C60E8CA", // samples by: Petite (x??)
1393
+ "60FCBED4", // samples by: ANDPakk (x32)
1394
+ "60EB..5D", // samples by: ASPack (x32)
1395
+ "60EB..E8", // samples by: G!X Protector
1396
+ "64FF35", // samples by: Petite (x32)
1397
+ "6033C0", // samples by: yzPack (x32)
1398
+ "669C60", // samples by: Petite (x??)
1399
+ "EB..60", // samples by: kkryptor, dePACK (x32)
1400
+ "60E8", // samples by: mpress, Packman, Pack Master, Yodas Crypter, DxPack, ASPack, MSLRH, tElock (x32)
1401
+ "6068" // samples by: BeRo, ExE Pack, AHPacker (x32)
1402
+ ];
1403
+
1404
+ // Iterate through the entries to check against the entry point
1405
+ for (var e = 0; e < entries.length && !entryLikePacker; e++) {
1406
+ const entryToCheck = entries[e];
1407
+
1408
+ // If the entry point matches the current entry, set the flag to true and break the loop
1409
+ if (PE.compareEP(entryToCheck)) {
1410
+ log(logType.nothing, "EP like a packer: '" + entryToCheck + "'");
1411
+
1412
+ entryLikePacker = true;
1413
+ }
1414
+ }
1415
+ }
1416
+
1417
+ if (entryLikePacker) options += (options.length != 0 ? " + " : String()) + "EntryPoint";
1418
+
1419
+
1420
+
1421
+
1422
+ // Check if the entry point is in the last section
1423
+ var isLastSectionEP = false;
1424
+
1425
+ if (!PE.isDll()) {
1426
+ if (PE.getNumberOfSections() > 1) {
1427
+ // Get addresses of the last section and entry point
1428
+
1429
+ var lastSectionAddress = -1,
1430
+ entryPointAddress = -1;
1431
+
1432
+
1433
+ // Get last section with non -1 address
1434
+ for (var i = 1; lastSectionAddress == -1; i++) {
1435
+ lastSectionAddress = PE.OffsetToVA(PE.getSectionFileOffset(PE.getNumberOfSections() - i));
1436
+ }
1437
+ entryPointAddress = PE.getAddressOfEntryPoint();
1438
+
1439
+
1440
+ // Check if the entry point is greater than or equal to the last section address
1441
+ if (entryPointAddress >= lastSectionAddress) {
1442
+ isLastSectionEP = true;
1443
+ log(logType.nothing, "EP address (" + entryPointAddress + ") more than last section address (" + lastSectionAddress + ")");
1444
+ }
1445
+ }
1446
+ }
1447
+
1448
+ if (isLastSectionEP) options = "Last section EP";
1449
+
1450
+
1451
+
1452
+
1453
+ // Check for strange calls if entry point is in the last section
1454
+ var isStrangeCalls = false;
1455
+
1456
+ if (!PE.isDll()) {
1457
+ if (isLastSectionEP && getAsmOpCode(getAsmInstructionByIndex(1)) === "CALL") {
1458
+ log(logType.nothing, "Strange call to address: " + getAsmInstructionByIndex(1).split(" ")[1]);
1459
+ isStrangeCalls = true;
1460
+ }
1461
+ }
1462
+
1463
+ if (isStrangeCalls) options += (options.length != 0 ? " + " : String()) + "Strange call";
1464
+
1465
+
1466
+
1467
+
1468
+ var isImportsLikePacker = false;
1469
+
1470
+ // ["Name", "Version", ImportLibraryIndex, Hash]
1471
+ // If {ImportLibraryIndex} is -1, it means the hash has no index
1472
+
1473
+ var dbCollectionOfHashesDictionary = [
1474
+ // packers
1475
+ ["UPX", "0.59-0.93", 0, 0xd4fdcab1],
1476
+ ["UPX", "0.94-1.93", 0, 0x1d51299a],
1477
+ ["UPX", "1.94-2.03", 0, 0xb3318086],
1478
+ ["UPX", "1.94-2.03", 0, 0x3778aab9],
1479
+ ["UPX", "2.90-3.XX", 0, 0xf375ee03],
1480
+ ["UPX", "2.90-3.XX", 0, 0xf737d853],
1481
+ ["UPX", "3.91+", 0, 0xf737d853],
1482
+ ["UPX", "3.91+", -1, 0x82a048fc],
1483
+ ["UPX", "3.91+", -1, 0x554a1748],
1484
+ ["NSPACK", null, 0, 0xf375ee03],
1485
+ ["ASPack", "1.XX-2.XX", 0, 0x1272f45b],
1486
+ ["MKFPACK", null, 0, 0x42b3e7f9],
1487
+ ["MPRESS", null, 0, 0x174efb84],
1488
+ ["PACKMAN", "0.0.0.1", 0, 0x174efb84],
1489
+ ["PACKMAN", "1.0", 0, 0x69076a83],
1490
+ ["PECompact", "0.90-0.91", -1, 0xbea416d1],
1491
+ ["PECompact", "0.92-0.94", -1, 0x93312c2e],
1492
+ ["PECompact", "0.97-0.971b", -1, 0xe6aa8495],
1493
+ ["PECompact", "0.975-1.10b3", -1, 0x29188619],
1494
+ ["PECompact", "1.10b7-1.34", -1, 0xe4c11305],
1495
+ ["PECompact", "1.30-1.40", 0, 0x9b3305ed],
1496
+ ["PECompact", "1.40-1.84", 0, 0xcc5b2a3c],
1497
+ ["PECompact", "2.40-3.XX", 0, 0x2652ce4f],
1498
+ ["PECompact", "2.40-3.XX", -1, 0xdb8fbb75],
1499
+ ["EXE32PACK", "1.3X-1.4X", 0, 0x174efb84],
1500
+ ["tElock", "1.0", -1, 0x051946f7],
1501
+ ["JDPACK", "2.00", 0, 0xc002db0e],
1502
+ ["CRINKLER", null, 0, 0x0b0e1fbf],
1503
+ ["WinUpack", null, -1, 0x29188619],
1504
+ ["YodasCrypter", "1.X", -1, 0x1303a51b],
1505
+ ["XComp", "0.97-0.98", -1, 0xea1e66e4],
1506
+ ["XPack", "0.97-0.98", -1, 0x2ac44dd2],
1507
+ ["kkrunchy", null, -1, 0x29188619],
1508
+ ["ANDPakk2", "0.18", -1, 0x29188619],
1509
+ // protectors
1510
+ ["ASProtect", "1.XX-2.XX", 0, 0x1272f45b],
1511
+ ["SHRINKER", "3.2", 0, 0xb2a64858],
1512
+ ["SHRINKER", "3.2", 0, 0x158af2d0],
1513
+ ["SHRINKER", "3.2", 0, 0x49e8aa1f],
1514
+ ["SHRINKER", "3.5", 0, 0xe9ea0851],
1515
+ ["SHRINKER", "3.5", 0, 0x3344b95d],
1516
+ ["SHRINKER", "3.5", 0, 0x586088f3],
1517
+ ["Enigma", "1.00-3.60", 0, 0xc002db0e],
1518
+ ["Enigma", "2.XX", 0, 0xdd92de10],
1519
+ ["Enigma", "3.70+", 0, 0xd04c7a50],
1520
+ ["PCGUARD", "5.04-5.05", 0, 0x5a169c7a],
1521
+ ["PCGUARD", "5.04-5.05", 0, 0x0b0b2965],
1522
+ ["eXPressor", "1.2", -1, 0x66b35c6e],
1523
+ ["eXPressor", "1.2", -1, 0x32f4466c],
1524
+ ["eXPressor", "1.3", -1, 0x921d0280],
1525
+ ["eXPressor", "1.3", -1, 0xf51eba68],
1526
+ ["eXPressor", "1.3", -1, 0xbc84ce09],
1527
+ ["eXPressor", "1.4.5.X", 0, 0x427816ab],
1528
+ ["eXPressor", "1.4.5.X", -1, 0x3c705cae],
1529
+ ["eXPressor", "1.4.5.X", -1, 0x4d02e093],
1530
+ ["eXPressor", "1.4.5.X", -1, 0x958a9ea2], // VB6
1531
+ ["eXPressor", "1.5.0.X", -1, 0x7ababb5a],
1532
+ ["eXPressor", "1.5.0.X", -1, 0x95ca15e4],
1533
+ ["eXPressor", "1.5.0.X", -1, 0xbd41da20],
1534
+ ["eXPressor", "1.6", -1, 0xca58fa0c],
1535
+ ["eXPressor", "1.6.1", -1, 0x48ffd359],
1536
+ ["VMProtect", "1.70", -1, 0x1ff3103f],
1537
+ // ["VMProtect", "1.70", -1, 0x0c16df2d],
1538
+ ["VMProtect", "2.0.3-2.13", -1, 0x9d12b153],
1539
+ ["VMProtect", "3.0.0", -1, 0x1e5500c1],
1540
+ ["VMProtect", "3.0.9", -1, 0xc5fb6a4b],
1541
+ ["VMProtect", "3.2.0-3.5.0", -1, 0x5caa99c7],
1542
+ ["YodasProtector", "1.0b", -1, 0x1303a51b],
1543
+ ["ASM Guard", "2.XX+", -1, 0xf1e0d63b],
1544
+ ["Themida", "2.XX-3.XX", 0, 0x3ffccc8a],
1545
+ ["Amber", null, -1, 0x97c72051],
1546
+ [".NET Reactor", null, 0, 0x96be8e26],
1547
+ [".NET Reactor", null, 1, 0xb4cda32f]
1548
+ ];
1549
+
1550
+ const importValidatingResult = validateImportHashes(dbCollectionOfHashesDictionary);
1551
+
1552
+ var versionByImportsDetected;
1553
+
1554
+ if (importValidatingResult != null) {
1555
+ versionByImportsDetected = importValidatingResult[1];
1556
+
1557
+ log(logType.nothing, "Imports hash like " + importValidatingResult[0] + (versionByImportsDetected ? " (version " + versionByImportsDetected + ")" : String()) + " (" + importValidatingResult[3] + ")")
1558
+ isImportsLikePacker = true;
1559
+ }
1560
+
1561
+ // Clean up: release the dictionary
1562
+ dbCollectionOfHashesDictionary = undefined;
1563
+
1564
+ if (isImportsLikePacker) options += (options.length != 0 ? " + " : String()) + "Imports like " + importValidatingResult[0] + (versionByImportsDetected ? " (v" + importValidatingResult[1] + ")" : String());
1565
+
1566
+
1567
+
1568
+
1569
+ var isSectionNameLikePacker = false;
1570
+
1571
+ var dbCollectionOfSectionNamesDictionary = [
1572
+ ["UPX", null, "UPX0"],
1573
+ ["UPX", null, "UPX1"],
1574
+ ["UPX", null, "UPX2"],
1575
+ ["UPX", null, "UPX3"],
1576
+ ["VMProtect", null, ".vmp"],
1577
+ ["VMProtect", null, ".vmp0"],
1578
+ ["VMProtect", null, ".vmp1"],
1579
+ ["VMProtect", null, ".vmp2"],
1580
+ ["VMProtect", null, ".vmp3"],
1581
+ ["ASPack", "1.08-2.XX", ".adata"],
1582
+ ["ASPack", "2.XX", ".aspack"],
1583
+ ["Petite", null, ".petite"],
1584
+ ["Petite", null, "petite"],
1585
+ ["Enigma", null, ".enigma1"],
1586
+ ["Enigma", null, ".enigma2"],
1587
+ [".NET Reactor", "2.XX", ".reacto"],
1588
+ ["Themida", "3.X", ".imports"],
1589
+ ["Themida", "3.X", ".themida"],
1590
+ ["Themida", "3.X", ".winlice"],
1591
+ ["Themida", "3.X", ".loadcon"],
1592
+ ["ASM Guard", "2.XX", "ASMGUARD"],
1593
+ ["ASM Guard", "2.XX", ".asmg"],
1594
+ ["tElock", null, "UPX!"], // ???
1595
+ ["YodasProtector", "1.0b", ".yP"],
1596
+ ["YodasCrypter", "1.X", "yC"],
1597
+ ["MPRESS", null, ".MPRESS1"],
1598
+ ["MPRESS", null, ".MPRESS2"],
1599
+ ["DxPack", "1.0", "coderpub"],
1600
+ ["SafeNet", null, ".AKS1"],
1601
+ ["SafeNet", null, ".AKS2"],
1602
+ ["SafeNet", null, ".AKS3"],
1603
+ ["Alienyze", null, ".alien"],
1604
+ ["PECompact", null, "pec"],
1605
+ ["PECompact", null, "pec1"],
1606
+ ["RLP", null, ".rlp"],
1607
+ [".NET Reactor", null, ".reacto"],
1608
+ ["StarForce", "4.X-5.X", ".ps4"],
1609
+ ["StarForce", "3.X", ".sforce3"],
1610
+ ["Safengine Shielden", null, ".sedat"],
1611
+ ["VirtualizeProtect", null, "VProtect"],
1612
+ ["Krypton", null, "YADO"],
1613
+ ["NsPack", null, "nsp0"],
1614
+ ["NsPack", null, "nsp1"],
1615
+ ["nPack", null, ".nPack"],
1616
+ ["JDPack", null, ".jdpack"],
1617
+ ["SC Pack", null, ".scpack"],
1618
+ ["Simple Pack", null, ".spack"],
1619
+ ["Eronana", null, ".packer"],
1620
+ ["PE-SHiELD", null, "PESHiELD"],
1621
+ ["SVK Protector", null, "SVKP"],
1622
+ ["obfus.h", null, ".obfh"],
1623
+ ["Warbird", null, "?g_Encry"],
1624
+ ["ACProtect", null, ".perplex"],
1625
+ ["Software Compress", null, "SoftComp"],
1626
+ ["RLPack", null, ".RLPack"],
1627
+ ["CodeVirtualizer", null, ".vlizer"],
1628
+ ["DYAMAR", "1.3.5", ".dyamarC"],
1629
+ ["hmimys", "1.3", "hmimys"],
1630
+ ["Morphnah", "1.0.X", ".nah"]
1631
+ ];
1632
+
1633
+ const sectionNamesValidatingResult = validateSectionNames(dbCollectionOfSectionNamesDictionary);
1634
+
1635
+ var versionBySectionDetected;
1636
+
1637
+ if (sectionNamesValidatingResult != null) {
1638
+ versionBySectionDetected = sectionNamesValidatingResult[1];
1639
+
1640
+ log(logType.nothing, "Sections like " + sectionNamesValidatingResult[0] + (versionBySectionDetected ? " (v" + versionBySectionDetected + ")" : String()));
1641
+ isSectionNameLikePacker = true;
1642
+ }
1643
+
1644
+ // Clean up: release the dictionary
1645
+ dbCollectionOfSectionNamesDictionary = undefined;
1646
+
1647
+ if (isSectionNameLikePacker) options += (options.length != 0 ? " + " : String()) + "Sections like " + sectionNamesValidatingResult[0] + (versionBySectionDetected ? " (v" + sectionNamesValidatingResult[1] + ")" : String());
1648
+
1649
+
1650
+
1651
+
1652
+ // Check if there is a collision in sections
1653
+ var isCollisionInSectionsPresent = false;
1654
+
1655
+ // Get section name collision between "0" and "1"
1656
+ const sectionNameCollision = PE.getSectionNameCollision("0", "1");
1657
+
1658
+ // Check if there is a collision
1659
+ if (sectionNameCollision.length != 0) {
1660
+ log(logType.nothing, "Section names collision: '" + sectionNameCollision + "'");
1661
+ isCollisionInSectionsPresent = true;
1662
+ }
1663
+
1664
+ if (isCollisionInSectionsPresent) options += (options.length != 0 ? " + " : String()) + "Sections collision (\"" + sectionNameCollision + "\")";
1665
+
1666
+
1667
+
1668
+
1669
+ // Check if there are repeating section names
1670
+ var isSectionNamesRepeatingPresent = false;
1671
+
1672
+ // Dictionary to track encountered section names
1673
+ var sectionNamesDictionary = {};
1674
+
1675
+ // Iterate through sections to check for collisions
1676
+ for (var i = 0; i < PE.getNumberOfSections() && !isSectionNamesRepeatingPresent; i++) {
1677
+ const sectionName = PE.getSectionName(i);
1678
+
1679
+ // If section name is already encountered, set collision flag and break
1680
+ if (sectionNamesDictionary[sectionName]) {
1681
+ log(logType.nothing, "Section names repeating: '" + sectionName + "'");
1682
+ isSectionNamesRepeatingPresent = true;
1683
+ } else {
1684
+ sectionNamesDictionary[sectionName] = true;
1685
+ }
1686
+ }
1687
+
1688
+ // Clean up: release the dictionary
1689
+ sectionNamesDictionary = undefined;
1690
+
1691
+ if (isSectionNamesRepeatingPresent) options += (options.length != 0 ? " + " : String()) + "Section names repeating";
1692
+
1693
+
1694
+
1695
+
1696
+ // Check if the first instruction at entry point starts with a stack operation
1697
+ var isStartsWithStackOperation = false;
1698
+
1699
+ // Get the opcode of the first instruction at entry point
1700
+ const firstEpAsmOpCode = getFirstEpAsmOpCode();
1701
+
1702
+ // Switch statement to check for specific stack operation opcodes
1703
+ switch (firstEpAsmOpCode) {
1704
+ case "PUSHAL":
1705
+ case "PUSHA":
1706
+ case "PUSHF":
1707
+ case "POPA":
1708
+ log(logType.nothing, "'" + firstEpAsmOpCode + "' at EP");
1709
+ isStartsWithStackOperation = true;
1710
+ }
1711
+
1712
+ if (isStartsWithStackOperation) options += (options.length != 0 ? " + " : String()) + "\"" + firstEpAsmOpCode.toLowerCase() + "\" at EP";
1713
+
1714
+
1715
+
1716
+
1717
+ // Many not-so-smart virus writers use base64 to pack
1718
+ // or hide malicious code, but do not realize that this
1719
+ // is very easily detected by heuristic analysis.
1720
+
1721
+ const signaturesVariants = [
1722
+ "TVoAAAAAA", // MZ ~[00 00 00 00 00]
1723
+ "TVqQAA", // MZ ~[90 00 03]
1724
+ "TVpQAA", // MZ ~[50 00 02]
1725
+ "TVp4AA" // MZ ~[78 00 01]
1726
+ ];
1727
+
1728
+ var isEncodedPeDetected = false;
1729
+
1730
+ // Iterate through signature variants
1731
+ for (var s = 0; s < signaturesVariants.length && !isEncodedPeDetected; s++) {
1732
+ const trigger = signaturesVariants[s];
1733
+
1734
+ // Check if the signature is valid using Unicode signature mask or the original signature
1735
+ if (
1736
+ validateGlobalUnicodeString(trigger) || validateSignature("'" + trigger + "'")
1737
+ ) {
1738
+ log(logType.nothing, "Encoded PE detected! (with Base64)");
1739
+ isCryptor = true;
1740
+ isEncodedPeDetected = true;
1741
+ }
1742
+ }
1743
+
1744
+ if (isEncodedPeDetected) options += (options.length != 0 ? " + " : String()) + "Base64 payload";
1745
+
1746
+
1747
+
1748
+
1749
+ var isMzSignatureDetected = false;
1750
+
1751
+ if (PE.isOverlayPresent() &&
1752
+ PE.getOverlaySize() >= 100 &&
1753
+ PE.compareOverlay("'MZ'")) {
1754
+ log(logType.any, "PE signature at overlay");
1755
+ isMzSignatureDetected = true;
1756
+ }
1757
+
1758
+ if (isMzSignatureDetected) options += (options.length != 0 ? " + " : String()) + "PE in overlay";
1759
+
1760
+
1761
+
1762
+
1763
+ // Check for a strange overlay in the PE file
1764
+ var hasStrangeOverlay = false;
1765
+
1766
+ // Conditions to check for a strange overlay
1767
+ if (!isMzSignatureDetected && !isSfx && !PE.isSigned() && PE.isOverlayPresent()) {
1768
+ var overlayEntropy = PE.calculateEntropy(PE.getOverlayOffset(), PE.getOverlaySize());
1769
+ if (
1770
+ PE.getOverlaySize() > 150 && overlayEntropy > 7 ||
1771
+ PE.getOverlaySize() > (PE.getSize() - PE.getOverlaySize())
1772
+ ) {
1773
+ log(logType.any, "Overlay size: " + PE.getOverlaySize() + " bytes; Entropy: " + overlayEntropy);
1774
+ hasStrangeOverlay = true;
1775
+ }
1776
+ }
1777
+
1778
+ if (hasStrangeOverlay) options += (options.length != 0 ? " + " : String()) + "Strange overlay";
1779
+
1780
+
1781
+
1782
+
1783
+ // Flag to indicate high entropy
1784
+ var isHighEntropy = false;
1785
+
1786
+ // Checks for high entropy (ignore overlay)
1787
+ if (!(PE.isDll() && (PE.isSectionNamePresent(".rdata") || PE.isSectionNamePresent(".rsrc"))) && // .dll with resources
1788
+ PE.calculateEntropy(0x00, PE.getSize() - PE.getOverlaySize()) > 7.3) {
1789
+ isHighEntropy = true;
1790
+ }
1791
+
1792
+ if (isHighEntropy) options += (options.length != 0 ? " + " : String()) + "High entropy";
1793
+
1794
+
1795
+
1796
+
1797
+ var isCompressedSectionPresent = false;
1798
+
1799
+ var sectionNumber = 0;
1800
+
1801
+ for (var t = 0; t < PE.getNumberOfSections() && !isCompressedSectionPresent; t++) {
1802
+ sectionNumber = t;
1803
+ if (PE.calculateEntropy(PE.getSectionFileOffset(sectionNumber), PE.getSectionFileSize(sectionNumber)) > 7.4) {
1804
+ isCompressedSectionPresent = true;
1805
+ }
1806
+ }
1807
+
1808
+ if (isCompressedSectionPresent) options += (options.length != 0 ? " + " : String()) + "Section " + sectionNumber + " (\"" + PE.getSectionName(sectionNumber) + "\") compressed";
1809
+
1810
+
1811
+
1812
+
1813
+ if (options.length != 0) isDetected = true;
1814
+
1815
+
1816
+ if (isDetected) {
1817
+ var detectedType = isCryptor ? "cryptor" : "packer";
1818
+
1819
+ _setResult("~" + detectedType, (isCryptor ? "Cryptor" : "Packer") + " detected", String(), PE.isVerbose() ? options : String());
1820
+ }
1821
+ }
1822
+
1823
+
1824
+
1825
+
1826
+ function isVbNetStandartLibraryPresent() {
1827
+ return PE.isNetObjectPresent("Microsoft.VisualBasic");
1828
+ }
1829
+
1830
+
1831
+ // Check if the file is a .NET Framework component
1832
+ function isFrameworkComponent() {
1833
+ return PE.isNET() && PE.isDll() && PE.isSigned() && PE.findSignature(PE.getOverlayOffset(), 300, "'Microsoft Corporation'") != -1;
1834
+ }
1835
+
1836
+ // Validate the presence of a signature in the file
1837
+ function validateSignature(pattern) {
1838
+ const offsetFound = PE.findSignature(PE.getDosStubOffset() + PE.getDosStubSize(), PE.getSize() - PE.getOverlaySize(), pattern),
1839
+ resultBool = offsetFound != -1;
1840
+ if (resultBool) {
1841
+ lastOffsetDetected = "0x" + Number(offsetFound).toString(16);
1842
+ log(logType.any, "Pattern found: " + pattern);
1843
+ }
1844
+ return resultBool;
1845
+ }
1846
+
1847
+
1848
+ function validateNetByteCode(byteCode) {
1849
+ for (var s = 0; s < PE.getNumberOfSections(); s++) {
1850
+ const sectionOffset = PE.getSectionFileOffset(s),
1851
+ sectionSize = PE.getSectionFileSize(s);
1852
+ var offsetFound = PE.findSignature(sectionOffset, sectionOffset + sectionSize, byteCode);
1853
+ if (offsetFound != -1) {
1854
+ lastOffsetDetected = "0x" + Number(offsetFound).toString(16);
1855
+ log(logType.net, "ByteCode detected: " + byteCode);
1856
+ return true;
1857
+ }
1858
+ }
1859
+ return false;
1860
+ }
1861
+
1862
+
1863
+ function validateNetObject(object) {
1864
+ const result = PE.isNetObjectPresent(object);
1865
+ if (result) log(logType.net, "Object present: " + object);
1866
+ return result;
1867
+ }
1868
+
1869
+
1870
+ function validateNetUnicodeString(ustring) {
1871
+ const result = PE.isNetUStringPresent(ustring);
1872
+ if (result) log(logType.net, "String present: \"" + ustring + "\"");
1873
+ return result;
1874
+ }
1875
+
1876
+
1877
+ function validateGlobalUnicodeString(ustring) {
1878
+ const result = PE.findSignature(PE.getDosStubOffset() + PE.getDosStubSize(), PE.getSize() - PE.getOverlaySize(), generateUnicodeSignatureMask(ustring)) != -1;
1879
+ if (result) log(logType.nothing, "Unicode string found: \"" + ustring + "\"");
1880
+ return result;
1881
+ }
1882
+
1883
+
1884
+ // Function to generate Unicode signature mask from an input string
1885
+ // "test" -> "'t'00'e'00's'00't'"
1886
+
1887
+ function generateUnicodeSignatureMask(inputString) {
1888
+ var output = String();
1889
+
1890
+ // Iterate through each character in the input string
1891
+ for (var c = 0; c < inputString.length; c++) {
1892
+ // Append the Unicode representation of the character to the output
1893
+ output += (c != 0 ? "00" : String()) + "'" + inputString[c] + "'";
1894
+ }
1895
+
1896
+ // Return the generated Unicode signature mask
1897
+ return output;
1898
+ }
1899
+
1900
+
1901
+ // Function to check if all specified .NET references are missing
1902
+
1903
+ function isAllNetReferencesMissing(references) {
1904
+ // Iterate through the array of .NET references
1905
+ for (var i = 0; i < references.length; i++) {
1906
+ // Get the current reference
1907
+ const ref = references[i];
1908
+
1909
+ // If the .NET object corresponding to the reference is present, return false
1910
+ if (PE.isNetObjectPresent(ref)) {
1911
+ return false;
1912
+ }
1913
+ }
1914
+
1915
+ // If all .NET references are missing, return true
1916
+ return true;
1917
+ }
1918
+
1919
+
1920
+ // Function to check if all specified .NET references are present
1921
+
1922
+ function isAllNetReferencesPresent(references) {
1923
+ // Iterate through the array of .NET references
1924
+ for (var i = 0; i < references.length; i++) {
1925
+ // Get the current reference
1926
+ const ref = references[i];
1927
+
1928
+ // If the .NET object corresponding to the reference is not present, return false
1929
+ if (!PE.isNetObjectPresent(ref)) {
1930
+ return false;
1931
+ }
1932
+ }
1933
+
1934
+ // If all .NET references are present, return true
1935
+ return true;
1936
+ }
1937
+
1938
+
1939
+ // "isFullName = true" = 00'sign'00
1940
+ // "isFullName = false" = 00'sign'
1941
+
1942
+ function findAndMark(sign, isFullName) {
1943
+ if (PE.isSignatureInSectionPresent(0,
1944
+ ("00'" + sign + "'") + // 00'string
1945
+ (isFullName ? "00" : String()))) { // ... '00
1946
+ return sign;
1947
+ }
1948
+ return String();
1949
+ }
1950
+
1951
+
1952
+
1953
+ function scanForObfuscations_Native() {
1954
+ var options = String();
1955
+
1956
+ var isDetected = Boolean();
1957
+
1958
+
1959
+
1960
+
1961
+ // Check for section names containing forbidden characters
1962
+ var strangeSections = false;
1963
+
1964
+ // Define forbidden characters
1965
+ const badSectionChars = '-=+~!@#$%^&*()"№;%:?*():;,/\\|\'`<> ';
1966
+
1967
+ // Iterate through sections and characters to check for forbidden characters
1968
+ for (var i = 0; i < PE.getNumberOfSections() && !strangeSections; i++) {
1969
+ var sectionName = PE.getSectionName(i);
1970
+
1971
+ if (sectionName.length === 0 || sectionName[0] === " ") {
1972
+ strangeSections = true;
1973
+ }
1974
+
1975
+
1976
+ var isIdioticMinGwSectionsPresent = false;
1977
+
1978
+ if (_isResultPresent("linker", "GNU linker ld (GNU Binutils)")) {
1979
+ if (PE.isSectionNamePresent(".build-id")) {
1980
+ isIdioticMinGwSectionsPresent = true;
1981
+ } else {
1982
+ for (var d = 1; d < 10 && !isIdioticMinGwSectionsPresent; d++) { // sections like "/5", "/2" etc
1983
+ if (sectionName.indexOf("/" + d) != -1) {
1984
+ isIdioticMinGwSectionsPresent = true;
1985
+ }
1986
+ }
1987
+ }
1988
+ }
1989
+
1990
+ if (isIdioticMinGwSectionsPresent) {
1991
+ strangeSections = false;
1992
+ break;
1993
+ }
1994
+
1995
+
1996
+ for (var d = 0; d < badSectionChars.length && !strangeSections; d++) {
1997
+ // If forbidden character is found, set flag and break
1998
+ if (sectionName.indexOf(badSectionChars[d]) !== -1) {
1999
+ strangeSections = true;
2000
+ }
2001
+ }
2002
+
2003
+
2004
+ }
2005
+
2006
+ if (strangeSections) options += (options.length != 0 ? " + " : String()) + "Strange sections";
2007
+
2008
+
2009
+
2010
+
2011
+ // Check for DOS header in the PE file
2012
+ var isDosMissing = false,
2013
+ isCustomDosPresent = false;
2014
+
2015
+ // If DOS stub size is 0, set flag for missing DOS
2016
+ if (PE.getDosStubSize() === 0) {
2017
+ isDosMissing = true;
2018
+ } else {
2019
+ // Define messages to check for custom DOS
2020
+ const messages = [
2021
+ "This program cannot be run in DOS mode.",
2022
+ "This program must be run under Win32",
2023
+ "This program must be run under Win64",
2024
+ "This program requires Win32"
2025
+ ];
2026
+
2027
+ isCustomDosPresent = true;
2028
+
2029
+ // Iterate through messages to check for custom DOS
2030
+ for (var d = 0; d < messages.length && isCustomDosPresent; d++) {
2031
+ if (PE.findSignature(PE.getDosStubOffset(), PE.getDosStubSize(), "'" + messages[d] + "'") != -1) {
2032
+ isCustomDosPresent = false;
2033
+ }
2034
+ }
2035
+ }
2036
+
2037
+ // Add appropriate option based on DOS presence
2038
+ if (isDosMissing) options += (options.length != 0 ? " + " : String()) + "Missing DOS";
2039
+ else if (isCustomDosPresent) options += (options.length != 0 ? " + " : String()) + "Custom DOS";
2040
+
2041
+
2042
+
2043
+
2044
+ // It works if the file contains an import without an extension (for example, instead of "kernel32.dll" it is written "kernel32"). Compilers don't do that
2045
+ var isContainsNoExtensionLibrary = false;
2046
+
2047
+ for (var i = 0; i < PE.getNumberOfImports() && !isContainsNoExtensionLibrary; i++) {
2048
+ const libraryName = PE.getImportLibraryName(i).toLowerCase();
2049
+
2050
+ if (libraryName.length > 4) {
2051
+ if (libraryName[libraryName.length - 4] !== ".") {
2052
+ isContainsNoExtensionLibrary = true;
2053
+ }
2054
+ } else { /* if (libraryName.indexOf(".") === -1) */
2055
+ isContainsNoExtensionLibrary = true;
2056
+ }
2057
+ }
2058
+
2059
+ if (isContainsNoExtensionLibrary) options += (options.length != 0 ? " + " : String()) + "No extension import";
2060
+
2061
+
2062
+
2063
+
2064
+ // .exe files in imports are a separate type of sophistication. But this happens.
2065
+ var exeInImports = false;
2066
+
2067
+ for (var i = 0; i < PE.getNumberOfImports() && !exeInImports; i++) {
2068
+ const libraryName = PE.getImportLibraryName(i).toLowerCase();
2069
+
2070
+ if (libraryName.length > 4) {
2071
+ if (libraryName.substr(libraryName.length - 4, 4) === ".exe") {
2072
+ exeInImports = true;
2073
+ }
2074
+ }
2075
+ }
2076
+
2077
+ if (exeInImports) options += (options.length != 0 ? " + " : String()) + "EXE in imports";
2078
+
2079
+
2080
+
2081
+
2082
+ // Looks for sections whose names contain strange (or invalid) characters
2083
+ var isInvalidImportsPresent = false;
2084
+
2085
+ const badImportChars = '=~!@#$%^&*()"№;%:?*():;,|\'`<> ';
2086
+
2087
+ for (var i = 0; i < PE.getNumberOfImports() && !isInvalidImportsPresent; i++) {
2088
+ const libraryName = PE.getImportLibraryName(i).toLowerCase();
2089
+
2090
+ for (var l = 0; l < badImportChars.length && !isInvalidImportsPresent; l++) {
2091
+ if (libraryName.indexOf(badImportChars[l]) !== -1) {
2092
+ isInvalidImportsPresent = true;
2093
+ }
2094
+ }
2095
+ }
2096
+
2097
+ if (isInvalidImportsPresent) options += (options.length != 0 ? " + " : String()) + "Invalid imports";
2098
+
2099
+
2100
+
2101
+
2102
+ // Checks if application resources can be read or if they are compressed/encrypted
2103
+ var isUnreadableResourcesPresent = false;
2104
+
2105
+ for (var i = 0; i < PE.getNumberOfResources() && !isUnreadableResourcesPresent; i++) {
2106
+ if (PE.getResourceOffsetByNumber(i) === -1)
2107
+ isUnreadableResourcesPresent = true;
2108
+ }
2109
+
2110
+ if (isUnreadableResourcesPresent) options += (options.length != 0 ? " + " : String()) + "Unreadable resources";
2111
+
2112
+
2113
+
2114
+ /*
2115
+ var isCheckSumEmpty = false;
2116
+
2117
+ if (PE.getImageOptionalHeader("CheckSum") == 0) {
2118
+ log(logType.any, "IMAGE_OPTIONAL_HEADER : CheckSum == 0");
2119
+ isCheckSumEmpty = true;
2120
+ }
2121
+
2122
+ if (isCheckSumEmpty) options += (options.length != 0 ? " + " : String()) + "No checksum";
2123
+
2124
+
2125
+
2126
+
2127
+ // False-positive detections; Todo: fix
2128
+ var aLotOfBreaks = false;
2129
+
2130
+ const codeSection = PE.section[".text"];
2131
+
2132
+ if (codeSection && PE.isSignaturePresent(codeSection.FileOffset, codeSection.FileSize, "CC CC CC CC CC CC CC CC CC CC CC CC CC")) { // ret (c3); int 3 (cc)
2133
+ aLotOfBreaks = true;
2134
+ }
2135
+
2136
+ if (aLotOfBreaks) options += (options.length != 0 ? " + " : String()) + "A lot of \"__debugbreak()\"";
2137
+ */
2138
+
2139
+
2140
+
2141
+
2142
+ // Checks is executable application has been compiled or converted to a DLL
2143
+ // Like https://github.com/hasherezade/exe_to_dll
2144
+ var exeAsDll = false;
2145
+
2146
+ if (PE.isDll() && (
2147
+ PE.isExportFunctionPresent("Start") ||
2148
+ PE.isExportFunctionPresent("main") ||
2149
+ PE.isExportFunctionPresent("_start"))) {
2150
+ exeAsDll = true;
2151
+ }
2152
+
2153
+ if (exeAsDll) options += (options.length != 0 ? " + " : String()) + "EXE as DLL";
2154
+
2155
+
2156
+
2157
+
2158
+ // The .text section should always come first
2159
+ var isTextSectionNotFirst = false;
2160
+
2161
+ if ((PE.section[0].Name != ".text" && PE.section[0].Name != ".textbss") && (PE.section[".text"] && PE.section[".textbss"])) {
2162
+ isTextSectionNotFirst = true;
2163
+ }
2164
+
2165
+ if (isTextSectionNotFirst) options += (options.length != 0 ? " + " : String()) + "\".text\" section is not first";
2166
+
2167
+
2168
+
2169
+
2170
+ // If IAT (Import Address Table) is missing
2171
+ var isIatMissing = false;
2172
+
2173
+ if (PE.getNumberOfImports() == 0 &&
2174
+ (!PE.isDll() && PE.section[".text"])) {
2175
+ isIatMissing = true;
2176
+ }
2177
+
2178
+ if (isIatMissing) options += (options.length != 0 ? " + " : String()) + "No IAT";
2179
+
2180
+
2181
+
2182
+
2183
+ // Check if the entry point starts with NOP
2184
+ var isStartsWithNop = false;
2185
+
2186
+ // Condition to check if the first instruction is NOP
2187
+ if (getFirstEpAsmInstruction() === "NOP") // nop (90)
2188
+ isStartsWithNop = true;
2189
+
2190
+ if (isStartsWithNop) options += (options.length != 0 ? " + " : String()) + "Nop at EP";
2191
+
2192
+
2193
+
2194
+
2195
+ // Check if NOP padding is present at the entry point
2196
+ var isNopPaddingPresent = false;
2197
+
2198
+ // Condition to check for NOP padding
2199
+ if (!isStartsWithNop && getEpAsmPattern(onlyOpCodes = true, numberOf = 5).indexOf(getInstructionsAsmPattern(["NOP", "NOP"])) !== -1) {
2200
+ isNopPaddingPresent = true;
2201
+ }
2202
+
2203
+ if (isNopPaddingPresent) options += (options.length != 0 ? " + " : String()) + "Nop EP padding";
2204
+
2205
+
2206
+
2207
+
2208
+ // ASM Guard fake signatures
2209
+ if (PE.isSectionNamePresent(".asmg") || PE.isSectionNamePresent("ASMGUARD")) {
2210
+ for (var f = 0; f < 3; f++)
2211
+ _removeResult("packer", ["UPX", "MPRESS", "EP:MPRESS"][f]);
2212
+ }
2213
+
2214
+
2215
+ if (options.length != 0) isDetected = true;
2216
+
2217
+
2218
+ if (isDetected) {
2219
+ _setResult("~protection", "Generic", String(), PE.isVerbose() ? options : String());
2220
+ }
2221
+ }
2222
+
2223
+
2224
+ const _patternSplitter = "|";
2225
+
2226
+
2227
+ // Makes it possible to disassemble the entry point code and output
2228
+ // a specified number of instructions through a splitter (_patternSplitter)
2229
+
2230
+ function getEpAsmPattern(onlyOpCodes, numberOf) {
2231
+ // Initialize the result with a pattern splitter
2232
+ var result = _patternSplitter;
2233
+
2234
+ // Get the address of the entry point
2235
+ var disasmAddress = PE.getAddressOfEntryPoint();
2236
+
2237
+ // Iterate through instructions up to the specified number
2238
+ for (var i = 0; i < numberOf; i++) {
2239
+
2240
+ // Update the address to the next instruction if not the first iteration
2241
+ if (i >= 1) {
2242
+ disasmAddress = PE.getDisasmNextAddress(disasmAddress);
2243
+ }
2244
+
2245
+ // Get the assembly instruction at the current address
2246
+ const asmInstruction = PE.getDisasmString(disasmAddress);
2247
+
2248
+ // Append either the opcode or the full instruction to the result
2249
+ result += (
2250
+ onlyOpCodes ?
2251
+ getAsmOpCode(asmInstruction) : // "MOV"
2252
+ asmInstruction // "MOV EAX, 4"
2253
+ ) + _patternSplitter;
2254
+ }
2255
+
2256
+ // Return the generated assembly pattern
2257
+ return result;
2258
+ }
2259
+
2260
+
2261
+ // Function to get assembly instruction by index
2262
+
2263
+ function getAsmInstructionByIndex(index) {
2264
+ // Get the address of the entry point
2265
+ var disasmAddress = PE.getAddressOfEntryPoint();
2266
+
2267
+ // Iterate through instructions until the specified index is reached
2268
+ for (var i = 0; i <= index; i++) {
2269
+
2270
+ // Update the address to the next instruction if not the first iteration
2271
+ if (i >= 1) {
2272
+ disasmAddress = PE.getDisasmNextAddress(disasmAddress);
2273
+ }
2274
+
2275
+ // If the current iteration matches the specified index, retrieve the instruction
2276
+ if (i === index) {
2277
+ const asmInstruction = PE.getDisasmString(disasmAddress);
2278
+
2279
+ // Return the assembly instruction
2280
+ return asmInstruction;
2281
+ }
2282
+ }
2283
+ }
2284
+
2285
+
2286
+ // Makes it possible to get a subpattern to search for instructions in a
2287
+ // pattern divided through a separator (_patternSplitter)
2288
+ //
2289
+ // like "|OPCODE1|OPCODE2|OPCODE3|".indexOf("|OPCODE2|")
2290
+ // but "|OPCODE1|OPCODE2|OPCODE3|".indexOf(getInstructionsAsmPattern("OPCODE2"))
2291
+ // or
2292
+ // like "|OPCODE1|OPCODE2|OPCODE3|".indexOf("|OPCODE2|OPCODE3|")
2293
+ // but "|OPCODE1|OPCODE2|OPCODE3|".indexOf(getInstructionsAsmPattern(["OPCODE2", "OPCODE3"]))
2294
+
2295
+ function getInstructionsAsmPattern(instruction) {
2296
+ return _patternSplitter +
2297
+ (
2298
+ Array.isArray(instruction) ?
2299
+ instruction.join(_patternSplitter) :
2300
+ instruction
2301
+ ) +
2302
+ _patternSplitter;
2303
+ }
2304
+
2305
+
2306
+ function getFirstEpAsmInstruction() {
2307
+ return PE.getDisasmString(PE.OffsetToVA(PE.getEntryPointOffset()));
2308
+ }
2309
+
2310
+
2311
+ // Gets an opcode from an instruction
2312
+
2313
+ function getAsmOpCode(instruction) {
2314
+ return instruction.indexOf(" ") !== -1 ? instruction.split(" ")[0] : instruction;
2315
+ }
2316
+
2317
+
2318
+ // Returns only the name of the opcode used, without arguments
2319
+
2320
+ function getFirstEpAsmOpCode() {
2321
+ return getAsmOpCode(getFirstEpAsmInstruction());
2322
+ }
2323
+
2324
+
2325
+ // VC ?warp_size@cuda@at@@YAHXZ
2326
+ // GNU _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i
2327
+ function isFunctionMangled(functionPattern) {
2328
+ return functionPattern.length > 5 && (
2329
+ (functionPattern[0] == '?' && functionPattern.indexOf("@@") !== -1) || // MSVCPP mangler
2330
+ (functionPattern.substring(0, 4) == "_ZSt") // GNUCPP mangler
2331
+ );
2332
+ }
2333
+
2334
+
2335
+ function getNameOfMangledFunction(functionPattern) {
2336
+ if (isFunctionMangled(functionPattern)) {
2337
+ if (functionPattern[0] === '?') return functionPattern.split("?")[1].split("@")[0]; // MSVCPP mangler
2338
+ else if (functionPattern[0] === '_') { // GNUCPP mangler
2339
+ const match = functionPattern.match(/_ZSt(\d+)(\w+)/);
2340
+
2341
+ if (match) {
2342
+ return match[2].substring(0, parseInt(match[1], 10));
2343
+ } else {
2344
+ return functionPattern;
2345
+ }
2346
+ }
2347
+ } else {
2348
+ return functionPattern;
2349
+ }
2350
+ }
2351
+
2352
+
2353
+ function validateImportHashes(dbCollection) {
2354
+ for (var i = 0; i < dbCollection.length; i++) {
2355
+ const currentIndex = i,
2356
+ currentArrayPattern = dbCollection[currentIndex];
2357
+
2358
+ const name = currentArrayPattern[0],
2359
+ version = currentArrayPattern[1],
2360
+ position = currentArrayPattern[2],
2361
+ hash = currentArrayPattern[3];
2362
+
2363
+ if (PE.isImportPositionHashPresent(position, hash)) {
2364
+ return currentArrayPattern;
2365
+ }
2366
+ }
2367
+
2368
+ return null;
2369
+ }
2370
+
2371
+
2372
+ function validateSectionNames(dbCollection) {
2373
+ for (var i = 0; i < dbCollection.length; i++) {
2374
+ const currentIndex = i,
2375
+ currentArrayPattern = dbCollection[currentIndex];
2376
+
2377
+ const name = currentArrayPattern[0],
2378
+ version = currentArrayPattern[1],
2379
+ sectionName = currentArrayPattern[2];
2380
+
2381
+ if (PE.isSectionNamePresent(sectionName)) {
2382
+ return currentArrayPattern;
2383
+ }
2384
+ }
2385
+
2386
+ return null;
2387
+ }
2388
+
2389
+
2390
+
2391
+ function scanForLanguages_NET_and_Native() {
2392
+ log(logType.nothing, "Scanning to programming language has started!");
2393
+
2394
+ var c_cpp = _isLangPresent("C/C++"); // Unknown; C or C++
2395
+
2396
+ const extdb = [
2397
+ ["C++", "cpp"],
2398
+ ["Rust", "rs"],
2399
+ ["Java", "class"],
2400
+ ["JavaScript", "js"],
2401
+ ["Python", "pyd"]
2402
+ ];
2403
+
2404
+ for (var i = 0; i < extdb.length; i++) {
2405
+ const langName = extdb[i][0],
2406
+ langExtName = extdb[i][1];
2407
+
2408
+ if (PE.isSignaturePresent(0x00, PE.getSize(), "%% %% %% %% %% %% %% %% %% '." + langExtName + "' 00 00")) {
2409
+ log(logType.any, "Lines of ." + langExtName + " files (" + langName + ") detected");
2410
+ _setLangByHeur(langName);
2411
+ }
2412
+ }
2413
+
2414
+ if (!_isLangDetected("C++") && PE.isSignaturePresent(0x00, PE.getSize(), "%% %% %% %% %% %% %% %% %% %% '.c' 00")) {
2415
+ log(logType.any, "Lines of .c files (C) detected (not a C++)");
2416
+ _setLangByHeur("C");
2417
+ }
2418
+
2419
+ if (!_getNumberOfResults("protector") &&
2420
+ !_getNumberOfResults("cryptor") &&
2421
+ !_getNumberOfResults("~cryptor")
2422
+ ) {
2423
+
2424
+ var isPpLibraryPresent = false,
2425
+ isCLibraryPresent = false;
2426
+
2427
+ for (var i = 0; i < PE.getNumberOfImports(); i++) {
2428
+ const libraryName = PE.getImportLibraryName(i).toLowerCase();
2429
+
2430
+ // Detect mangler
2431
+ for (var k = 0; k < PE.getNumberOfImportThunks(i); k++) {
2432
+ const functionName = PE.getImportFunctionName(i, k); // import, thunk
2433
+
2434
+ if (!isPpLibraryPresent && isFunctionMangled(functionName)) {
2435
+ log(logType.any, "Mangler detected -> \"" + libraryName + "\", at function \"" + getNameOfMangledFunction(functionName) + "\"");
2436
+
2437
+ if (!_getNumberOfResults("compiler") && !_getNumberOfResults("~compiler")) {
2438
+ if (functionName[0] == '_') {
2439
+ _setResult("~compiler", "MinGW", String(), String());
2440
+ } else if (functionName[0] == '?') {
2441
+ _setResult("~compiler", "Microsoft Visual C/C++", String(), String());
2442
+ }
2443
+ }
2444
+
2445
+ if (!_isLangDetected()) isPpLibraryPresent = true; // if language is unknown
2446
+ }
2447
+ }
2448
+
2449
+
2450
+
2451
+ if (libraryName.indexOf("msvcr") !== -1) {
2452
+ log(logType.any, "C library present -> \"" + libraryName + "\"");
2453
+ isCLibraryPresent = true;
2454
+ }
2455
+
2456
+ if (
2457
+ libraryName.indexOf("++") !== -1 ||
2458
+ libraryName.indexOf("cpp") !== -1 ||
2459
+ libraryName.indexOf("msvcp") !== -1
2460
+ ) {
2461
+ log(logType.any, "C++ library present -> \"" + libraryName + "\"");
2462
+ isPpLibraryPresent = true;
2463
+ }
2464
+ }
2465
+
2466
+
2467
+
2468
+
2469
+ const rdataSection = PE.section[".rdata"];
2470
+
2471
+ if (rdataSection) {
2472
+ if (c_cpp && // if C/C++ detected by DIE
2473
+ PE.isSignaturePresent(
2474
+ rdataSection.FileOffset,
2475
+ rdataSection.FileSize,
2476
+ generateUnicodeSignatureMask("Visual C++"))) {
2477
+
2478
+ log(logType.any, "Embedded Visual C++ Runtime detected.");
2479
+ isPpLibraryPresent = true; // Visual C++ Runtime library in resources
2480
+ }
2481
+ }
2482
+
2483
+
2484
+ if (isPpLibraryPresent || (c_cpp && PE.isSignaturePresent(0x00, PE.getSize() - PE.getOverlaySize(), "' C++ '"))) {
2485
+ _setLangByHeur("C++");
2486
+ } else if (!_isLangPresent("C++") && isCLibraryPresent && (PE.isFunctionPresent("_iob") || PE.isFunctionPresent("printf") || PE.isFunctionPresent("malloc") || PE.isFunctionPresent("memset"))) {
2487
+ _setLangByHeur("C");
2488
+ } else if (PE.isLibraryPresentExp(/^api-ms-win-crt*/i) || PE.section[".msvcjmc"]) {
2489
+ _setLangByHeur("C/C++");
2490
+ } else if (!_isLangDetected() && !_getNumberOfResults("compiler") && !PE.isNET()) {
2491
+ _setLangByHeur("ASMx" + (PE.is64() ? "64" : "86"));
2492
+ }
2493
+ }
2494
+ }
2495
+
2496
+
2497
+ function _setLangByHeur(languageName) {
2498
+ log(logType.any, languageName + " language detected!");
2499
+ _setLang(languageName, true, heurLabel);
2500
+ }
2501
+
2502
+
2503
+ function log(messageTypeId, messageText) {
2504
+ // if (PE.isProfiling()) return null;
2505
+
2506
+ if (messageText.indexOf("\n") != -1) {
2507
+ throw "Illegal char at log( ... )";
2508
+ }
2509
+
2510
+ var prefix = String();
2511
+
2512
+ if (messageTypeId !== -2) {
2513
+ prefix = heurLabel;
2514
+ }
2515
+
2516
+ if (messageTypeId > -2 && messageTypeId !== 0) {
2517
+ prefix += "/";
2518
+ }
2519
+
2520
+ switch (messageTypeId) {
2521
+ case -2:
2522
+ prefix = "!";
2523
+ break;
2524
+ case -1:
2525
+ prefix += "About";
2526
+ break;
2527
+ case 1:
2528
+ prefix += "Any";
2529
+ break;
2530
+ case 2:
2531
+ prefix += ".NET";
2532
+ break;
2533
+ }
2534
+
2535
+ _log("[" + prefix + "] " + messageText);
2536
+ }
2537
+
2538
+
2539
+
2540
+ // ALPHA v0.01
2541
+ // The module is disabled and does not work
2542
+ // You can write this yourself if you want.
2543
+
2544
+ function scanForMaciliousCode_NET_and_Native() {
2545
+
2546
+ var _CriticalProc_ntdll = false;
2547
+
2548
+ if (validateSignature("'RtlSetProcessIsCritical'")) {
2549
+ _CriticalProc_ntdll = true;
2550
+ }
2551
+
2552
+ if (_CriticalProc_ntdll) heurAvSetResult("CriticalProc_ntdll", 8);
2553
+
2554
+
2555
+
2556
+
2557
+ var _TakeScreenshot = false;
2558
+
2559
+ if (PE.isNET()) {
2560
+ if (validateNetObject("BitBlt") || validateNetObject("GetDC")) {
2561
+ _TakeScreenshot = true;
2562
+ }
2563
+ } else { // Global scan
2564
+ if (validateSignature("00'BitBlt'00") || validateSignature("00'GetDC'00")) {
2565
+ _TakeScreenshot = true;
2566
+ }
2567
+ }
2568
+
2569
+ if (_TakeScreenshot) heurAvSetResult("TakeScreenshot", 3);
2570
+ }
2571
+
2572
+
2573
+ function heurAvSetResult(label, scores) {
2574
+ if (scores <= 10 && scores >= 0) {
2575
+ _setResult("macilious", ("Win" + (PE.is64() ? "64" : "32") + ".") + label, "Heuristic AV", scores + "/10");
2576
+ } else {
2577
+ throw "Incorrect scores value for '" + label + "'";
2578
+ }
2579
+ }
2580
+
2581
+
2582
+ // Every time I start writing bad code I get hit with my head on the keybofewuihdsowefjfqodgsa79dowqhdsioefurogrwhuoguethuhofrwyi