Detect-It-Easy/db/Binary/bin.Python.1.sg
2022-07-14 06:33:42 +02:00

190 lines
9.1 KiB
Text

// DIE's signature file
// Author: Levis <levintaeyeon@live.com>
// History:
// Update sign to detect version of Python from 1.0 to 3.4
// Update sign to detect version of Python from 3.4 to 3.12a1 (by LinXP)
// Full info: https://github.com/python/cpython/blob/main/Lib/importlib/_bootstrap_external.py#L412
init("format","Python Compiled Module");
function detect(bShowType,bShowVersion,bShowOptions)
{
if(Binary.getSize()>=8)
{
if(Binary.readWord(0x02) == 0x0099)
{
bDetected=1;
switch(Binary.readDword(0))
{
case 0x00999902: sVersion="1.0"; break;
case 0x00999903: sVersion="1.1-1.2"; break;
default: bDetected=0;
}
}
else if(Binary.readWord(0x02) == 0x0A0D)
{
bDetected=1;
var Magic = Binary.readWord(0)
switch(Magic)
{
case 20121: sVersion="1.5-1.5.2"; break;
case 50428: sVersion="1.6"; break;
case 50823: sVersion="2.0-2.0.1"; break;
case 60202: sVersion="2.1-2.1.2"; break;
case 60717: sVersion="2.2"; break;
case 62011: sVersion="2.3a0"; break;
case 62021: sVersion="2.3a0"; break;
case 62011: sVersion="2.3a0"; break;
case 62041: sVersion="2.4a0"; break;
case 62051: sVersion="2.4a3"; break;
case 62061: sVersion="2.4b1"; break;
case 62071: sVersion="2.5a0"; break;
case 62081: sVersion="2.5a0"; break;
case 62091: sVersion="2.5a0"; break;
case 62092: sVersion="2.5a0"; break;
case 62101: sVersion="2.5b3"; break;
case 62111: sVersion="2.5b3"; break;
case 62121: sVersion="2.5c1"; break;
case 62131: sVersion="2.5c2"; break;
case 62151: sVersion="2.6a0"; break;
case 62161: sVersion="2.6a1"; break;
case 62171: sVersion="2.7a0"; break;
case 62181: sVersion="2.7a0"; break;
case 62191: sVersion="2.7a0"; break;
case 62201: sVersion="2.7a0"; break;
case 62211: sVersion="2.7a0"; break;
case 3000: sVersion="3.0"; break;
case 3010: sVersion="3.0"; break;
case 3020: sVersion="3.0"; break;
case 3030: sVersion="3.0"; break;
case 3040: sVersion="3.0"; break;
case 3050: sVersion="3.0"; break;
case 3060: sVersion="3.0"; break;
case 3061: sVersion="3.0"; break;
case 3071: sVersion="3.0"; break;
case 3081: sVersion="3.0"; break;
case 3091: sVersion="3.0"; break;
case 3101: sVersion="3.0"; break;
case 3103: sVersion="3.0"; break;
case 3111: sVersion="3.0a4"; break;
case 3131: sVersion="3.0b1"; break;
case 3141: sVersion="3.1a1"; break;
case 3151: sVersion="3.1a1"; break;
case 3160: sVersion="3.2a1"; break;
case 3170: sVersion="3.2a2"; break;
case 3180: sVersion="3.2a3"; break;
case 3190: sVersion="3.3a1"; break;
case 3200: sVersion="3.3a1"; break;
case 3210: sVersion="3.3a1"; break;
case 3220: sVersion="3.3a2"; break;
case 3230: sVersion="3.3a4"; break;
case 3250: sVersion="3.4a1"; break;
case 3260: sVersion="3.4a1"; break;
case 3270: sVersion="3.4a1"; break;
case 3280: sVersion="3.4a1"; break;
case 3290: sVersion="3.4a4"; break;
case 3300: sVersion="3.4a4"; break;
case 3310: sVersion="3.4rc2"; break;
case 3320: sVersion="3.5a1"; break;
case 3330: sVersion="3.5b1"; break;
case 3340: sVersion="3.5b2"; break;
case 3350: sVersion="3.5b3"; break;
case 3351: sVersion="3.5.2"; break;
case 3360: sVersion="3.6a0"; break;
case 3361: sVersion="3.6a1"; break;
case 3370: sVersion="3.6a2"; break;
case 3371: sVersion="3.6a2"; break;
case 3372: sVersion="3.6a2"; break;
case 3373: sVersion="3.6b1"; break;
case 3375: sVersion="3.6b1"; break;
case 3376: sVersion="3.6b1"; break;
case 3377: sVersion="3.6b1"; break;
case 3378: sVersion="3.6b2"; break;
case 3379: sVersion="3.6rc1"; break;
case 3390: sVersion="3.7a1"; break;
case 3391: sVersion="3.7a2"; break;
case 3392: sVersion="3.7a4"; break;
case 3393: sVersion="3.7b1"; break;
case 3394: sVersion="3.7b5"; break;
case 3400: sVersion="3.8a1"; break;
case 3401: sVersion="3.8a1"; break;
case 3410: sVersion="3.8a1"; break;
case 3411: sVersion="3.8b2"; break;
case 3412: sVersion="3.8b2"; break;
case 3413: sVersion="3.8b4"; break;
case 3420: sVersion="3.9a0"; break;
case 3421: sVersion="3.9a0"; break;
case 3422: sVersion="3.9a0"; break;
case 3423: sVersion="3.9a2"; break;
case 3424: sVersion="3.9a2"; break;
case 3425: sVersion="3.9a2"; break;
case 3430: sVersion="3.10a1"; break;
case 3431: sVersion="3.10a1"; break;
case 3432: sVersion="3.10a2"; break;
case 3433: sVersion="3.10a2"; break;
case 3434: sVersion="3.10a6"; break;
case 3435: sVersion="3.10a7"; break;
case 3436: sVersion="3.10b1"; break;
case 3437: sVersion="3.10b1"; break;
case 3438: sVersion="3.10b1"; break;
case 3439: sVersion="3.10b1"; break;
case 3450: sVersion="3.11a1"; break;
case 3451: sVersion="3.11a1"; break;
case 3452: sVersion="3.11a1"; break;
case 3453: sVersion="3.11a1"; break;
case 3454: sVersion="3.11a1"; break;
case 3455: sVersion="3.11a1"; break;
case 3456: sVersion="3.11a1"; break;
case 3457: sVersion="3.11a1"; break;
case 3458: sVersion="3.11a1"; break;
case 3459: sVersion="3.11a1"; break;
case 3460: sVersion="3.11a1"; break;
case 3461: sVersion="3.11a1"; break;
case 3462: sVersion="3.11a2"; break;
case 3463: sVersion="3.11a3"; break;
case 3464: sVersion="3.11a3"; break;
case 3465: sVersion="3.11a3"; break;
case 3466: sVersion="3.11a4"; break;
case 3467: sVersion="3.11a4"; break;
case 3468: sVersion="3.11a4"; break;
case 3469: sVersion="3.11a4"; break;
case 3470: sVersion="3.11a4"; break;
case 3471: sVersion="3.11a4"; break;
case 3472: sVersion="3.11a4"; break;
case 3473: sVersion="3.11a4"; break;
case 3474: sVersion="3.11a4"; break;
case 3475: sVersion="3.11a5"; break;
case 3476: sVersion="3.11a5"; break;
case 3477: sVersion="3.11a5"; break;
case 3478: sVersion="3.11a5"; break;
case 3479: sVersion="3.11a5"; break;
case 3480: sVersion="3.11a5"; break;
case 3481: sVersion="3.11a5"; break;
case 3482: sVersion="3.11a5"; break;
case 3483: sVersion="3.11a5"; break;
case 3484: sVersion="3.11a5"; break;
case 3485: sVersion="3.11a5"; break;
case 3486: sVersion="3.11a6"; break;
case 3487: sVersion="3.11a6"; break;
case 3488: sVersion="3.11a6"; break;
case 3489: sVersion="3.11a6"; break;
case 3490: sVersion="3.11a6"; break;
case 3491: sVersion="3.11a6"; break;
case 3492: sVersion="3.11a7"; break;
case 3493: sVersion="3.11a7"; break;
case 3494: sVersion="3.11a7"; break;
case 3500: sVersion="3.12a1"; break;
case 3501: sVersion="3.12a1"; break;
case 3502: sVersion="3.12a1"; break;
case 3503: sVersion="3.12a1"; break;
case 3504: sVersion="3.12a1"; break;
case 3505: sVersion="3.12a1"; break;
case 3506: sVersion="3.12a1"; break;
default: bDetected=0;
}
sOptions = Magic;
}
}
return result(bShowType,bShowVersion,bShowOptions);
}