-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVunlSpectre.py
11 lines (9 loc) · 13.4 KB
/
VunlSpectre.py
1
2
3
4
5
6
7
8
9
10
11
# www.development-tools.net basic obfuscation
import base64, codecs
magic = 'aW1wb3J0IHJlcXVlc3RzDQppbXBvcnQgc29ja2V0DQppbXBvcnQgcmFuZG9tDQppbXBvcnQgdGltZQ0KaW1wb3J0IG9zDQpmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHBhcnNlX3FzLCB1cmxlbmNvZGUsIHVybHVucGFyc2UNCmZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBUaHJlYWRQb29sRXhlY3V0b3INCmZyb20gdGhyZWFkaW5nIGltcG9ydCBMb2NrDQpmcm9tIHRlcm1jb2xvciBpbXBvcnQgY29sb3JlZA0KaW1wb3J0IGpzb24NCg0KY2xhc3MgVWx0aW1hdGVTY2FubmVyOg0KICAgICMgU1FMIEluamVjdGlvbiBQYXlsb2Fkcw0KICAgIFNRTF9QQVlMT0FEUyA9IFsNCiAgICAgICAgIicgT1IgJzEnPScxIiwgIicgVU5JT04gU0VMRUNUIE5VTEwsIE5VTEwgLS0iLCAiJyBBTkQgJzEnPScxIiwgIicgQU5EIDE9MCAtLSIsDQogICAgICAgICInIFVOSU9OIFNFTEVDVCB1c2VybmFtZSwgcGFzc3dvcmQgRlJPTSB1c2VycyAtLSIsICInIE9SICcxJz0nMScgLS0iLCAiJzsgRFJPUCBUQUJMRSB1c2VycyAtLSIsDQogICAgICAgICInIE9SIDE9MS0tIiwgIicgT1Igc2xlZXAoNSktLSIsICInOyBXQUlURk9SIERFTEFZICcwOjA6NScgLS0iLCAiMScgQU5EIDE9MSAtLSIsIA0KICAgICAgICAiMScgQU5EIFNMRUVQKDUpIC0tIiwgIlVOSU9OIFNFTEVDVCBOVUxMLCB1c2VybmFtZSwgcGFzc3dvcmQgRlJPTSB1c2VycyAtLSINCiAgICBdDQogICAgDQogICAgIyBYU1MgSW5qZWN0aW9uIFBheWxvYWRzDQogICAgWFNTX1BBWUxPQURTID0gWw0KICAgICAgICAiPHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4iLCAiJz48c2NyaXB0PmFsZXJ0KCdYU1MnKTwvc2NyaXB0PiIsIA0KICAgICAgICAiJyc7IS0tXCI8WFNTPj0meygpfTxzY3JpcHQ+YWxlcnQoJ1hTUycpPC9zY3JpcHQ+IiwgIjxpbWcgc3JjPXggb25lcnJvcj1hbGVydCgnWFNTJyk+IiwNCiAgICAgICAgIjxzdmcvb25sb2FkPWFsZXJ0KCdYU1MnKT4iLCAiPGJvZHkgb25sb2FkPWFsZXJ0KCdYU1MnKT4iLCAiPGEgaHJlZj0namF2YXNjcmlwdDphbGVydChcIlhTU1wiKSc+Y2xpY2s8L2E+Ig0KICAgIF0NCg0KICAgIEhFQURFUlNfVE9fQ0hFQ0sgPSB7DQogICAgICAgICJYLUNvbnRlbnQtVHlwZS1PcHRpb25zIjogIm5vc25pZmYiLCAiWC1GcmFtZS1PcHRpb25zIjogIkRFTlkiLCAiQ29udGVudC1TZWN1cml0eS1Qb2xpY3kiOiAiZGVmYXVsdC1zcmMgJ3NlbGYnIiwNCiAgICAgICAgIlN0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHkiOiAibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YkRvbWFpbnMiDQogICAgfQ0KDQogICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldF91cmwsIG1heF90aHJlYWRzPTEwMCk6DQogICAgICAgIHNlbGYudGFyZ2V0X3VybCA9IHRhcmdldF91cmwNCiAgICAgICAgc2VsZi5tYXhfdGhyZWFkcyA9IG1heF90aHJlYWRzDQogICAgICAgIHNlbGYuaGVhZGVycyA9IHsiVXNlci1BZ2VudCI6IHNlbGYuX3JhbmRvbV91c2VyX2FnZW50KCl9DQogICAgICAgIHNlbGYubG9nX2ZpbGUgPSAibG9nLnR4dCINCiAgICAgICAgc2VsZi5sb2NrID0gTG9jaygpDQogICAgICAgIHNlbGYuX3NldHVwX2xvZygpDQoNCiAgICBkZWYgX3NldHVwX2xvZyhzZWxmKToNCiAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi5sb2dfZmlsZSk6DQogICAgICAgICAgICBvcy5yZW1vdmUoc2VsZi5sb2dfZmlsZSkNCiAgICAgICAgc2VsZi5sb2dfcmVzdWx0KCItLS0gU3RhcnRpbmcgVnVubFNwZWN0cmUgLS0tIikNCg0KICAgIGRlZiBfcmFuZG9tX3VzZXJfYWdlbnQoc2VsZik6DQogICAgICAgIHVzZXJfYWdlbnRzID0gWw0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIiwgIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzcpIiwNCiAgICAgICAgICAgICJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQpIiwgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIiwgDQogICAgICAgICAgICAiTW96aWxsYS81LjAgKGlQaG9uZTsgQ1BVIGlQaG9uZSBPUyAxM181IGxpa2UgTWFjIE9TIFgpIg0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjU7IHg2NCkgQXBwbGVXZWJLaXQvNjAzLjYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNDkuMC4xMTIxLjI1OCBTYWZhcmkvNjAyLjAgRWRnZS84Ljk1MjQwIg0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChMaW51eDsgTGludXggaTY2MyB4ODZfNjQ7IGVuLVVTKSBBcHBsZVdlYktpdC82MDMuMjcgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNTAuMC4yMzAyLjE5NSBTYWZhcmkvNjAzIg0KICAgICAgICAgICAgIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDEwLjU7IFdPVzY0KSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzYzLjUiDQogICAgICAgICAgICAiTW96aWxsYS81LjAgK'
love = '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'
god = 'AgICAgcmV0dXJuIGZvdW5kX3Z1bG5lcmFibGUNCg0KICAgIGRlZiBfdGVzdF94c3Moc2VsZiwgcGFyYW0sIHBheWxvYWQpOg0KICAgICAgICBtb2RfdXJsID0gc2VsZi5fYnVpbGRfdXJsX3dpdGhfcGF5bG9hZChwYXJhbSwgcGF5bG9hZCkNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQobW9kX3VybCwgaGVhZGVycz1zZWxmLmhlYWRlcnMsIHRpbWVvdXQ9MTApDQogICAgICAgICAgICBpZiBhbnkocGF5bG9hZCBpbiByZXNwb25zZS50ZXh0IGZvciBwYXlsb2FkIGluIHNlbGYuWFNTX1BBWUxPQURTKToNCiAgICAgICAgICAgICAgICBzZWxmLmxvZ19yZXN1bHQoZiJbWFNTIFZVTE5FUkFCSUxJVFldIFBhcmFtOiAne3BhcmFtfScgUGF5bG9hZDogJ3twYXlsb2FkfSciKQ0KICAgICAgICAgICAgICAgIHJldHVybiBUcnVlDQogICAgICAgIGV4Y2VwdCByZXF1ZXN0cy5SZXF1ZXN0RXhjZXB0aW9uIGFzIGU6DQogICAgICAgICAgICBzZWxmLmxvZ19yZXN1bHQoZiJbRVJST1JdIEZhaWxlZCBYU1MgdGVzdDoge2V9IikNCiAgICAgICAgcmV0dXJuIEZhbHNlDQoNCiAgICBkZWYgX2J1aWxkX3VybF93aXRoX3BheWxvYWQoc2VsZiwgcGFyYW0sIHBheWxvYWQpOg0KICAgICAgICBwYXJzZWRfdXJsID0gdXJscGFyc2Uoc2VsZi50YXJnZXRfdXJsKQ0KICAgICAgICBwYXJhbXMgPSBwYXJzZV9xcyhwYXJzZWRfdXJsLnF1ZXJ5KQ0KICAgICAgICBwYXJhbXNbcGFyYW1dID0gcGF5bG9hZA0KICAgICAgICBtb2RfcXVlcnkgPSB1cmxlbmNvZGUocGFyYW1zLCBkb3NlcT1UcnVlKQ0KICAgICAgICByZXR1cm4gdXJsdW5wYXJzZShwYXJzZWRfdXJsLl9yZXBsYWNlKHF1ZXJ5PW1vZF9xdWVyeSkpDQoNCiAgICBkZWYgcG9ydF9zY2FuKHNlbGYsIGlwKToNCiAgICAgICAgb3Blbl9wb3J0cyA9IFtdDQogICAgICAgIHdpdGggVGhyZWFkUG9vbEV4ZWN1dG9yKG1heF93b3JrZXJzPXNlbGYubWF4X3RocmVhZHMpIGFzIGV4ZWN1dG9yOg0KICAgICAgICAgICAgZnV0dXJlcyA9IFtleGVjdXRvci5zdWJtaXQoc2VsZi5fY2hlY2tfcG9ydCwgaXAsIHBvcnQpIGZvciBwb3J0IGluIHJhbmdlKDEsIDY1NTM1KV0NCiAgICAgICAgICAgIGZvciBmdXR1cmUgaW4gZnV0dXJlczoNCiAgICAgICAgICAgICAgICByZXN1bHQgPSBmdXR1cmUucmVzdWx0KCkNCiAgICAgICAgICAgICAgICBpZiByZXN1bHQ6DQogICAgICAgICAgICAgICAgICAgIG9wZW5fcG9ydHMuYXBwZW5kKHJlc3VsdCkNCiAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dfcmVzdWx0KGYiW09QRU4gUE9SVF0ge3Jlc3VsdH0iKQ0KICAgICAgICByZXR1cm4gb3Blbl9wb3J0cw0KDQogICAgZGVmIF9jaGVja19wb3J0KHNlbGYsIGlwLCBwb3J0KToNCiAgICAgICAgc29jayA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkNCiAgICAgICAgc29jay5zZXR0aW1lb3V0KDEpDQogICAgICAgIHJlc3VsdCA9IHNvY2suY29ubmVjdF9leCgoaXAsIHBvcnQpKQ0KICAgICAgICBzb2NrLmNsb3NlKCkNCiAgICAgICAgcmV0dXJuIHBvcnQgaWYgcmVzdWx0ID09IDAgZWxzZSBOb25lDQoNCiAgICBkZWYgcnVuX2Z1bGxfc2NhbihzZWxmKToNCiAgICAgICAgdHJ5Og0KICAgICAgICAgICAgIyBDbGVhciB0aGUgdGVybWluYWwgc2NyZWVuDQogICAgICAgICAgICBvcy5zeXN0ZW0oJ2NscycgaWYgb3MubmFtZSA9PSAnbnQnIGVsc2UgJ2NsZWFyJykNCg0KICAgICAgICAgICAgIyBBU0NJSSBBcnQNCiAgICAgICAgICAgIGFzY2lpX2FydCA9ICIiIg0KDQrilojilojilZcgICDilojilojilZfilojilojilZcgICDilojilojilZfilojilojilZcgICAgIOKWiOKWiOKWiOKVlyAgIOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKVlyDilojilojilojilojilojilojilojilZcg4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVlw0K4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAgICDilojilojilojilojilZcgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVl+KWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVkOKWiOKWiOKVlOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKWiOKWiOKVl+KWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnQ0K4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWRICAgICDilojilojilZTilojilojilZcg4paI4paI4pWR4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4pWU4pWd4paI4paI4paI4paI4paI4pWXICDilojilojilZEgICAgICAgIOKWiOKWiOKVkSAgIOKWiOK'
destiny = 'JvBXJvBXJvBXJvBXJvBXIyBXIarXJvBXJvBXJvBXJvBXJvBXIylNtQDevyMevybwvybwvyMpt4cnV4cnV4cJH4cJq4cnV4cnV4cJEVPNt4cnV4cnV4cJE4cnV4cnV4cJEVPNtVPQvybwvybwvyMUvyMevybwvybwvyMsvybwvybwvyMUvyMevyMQvyMQvyMQvyMQvybwvybwvyMUvybwvybwvyMGvyMQvyMQvyMQvyM0t4cnV4cnV4cJH4cJD4cJD4cJqVPQvybwvybwvyMRtVPNtVPNtVBXJvBXJvBXIxFNtVBXJvBXJvBXIyBXIxBXIxBXJvBXJvBXIy+XJvBXJvBXIyBXIxBXIxBXIaFNtQDbt4cJn4cnV4cnV4cnV4cnV4cJH4cJqVBXIzhXJvBXJvBXJvBXJvBXJvBXJvBXIyBXIarXJvBXJvBXJvBXJvBXJvBXJvBXJvBXIy+XJvBXJvBXIxFQvyMevybwvybwvybwvybwvyMUvybwvybwvybwvybwvybwvybwvybwvyMUvybwvybwvyMRtVPNtVBXJvBXJvBXJvBXJvBXJvBXJvBXJvBXIy+XIzhXJvBXJvBXJvBXJvBXJvBXJvBXIylNtVBXJvBXJvBXIxFNtVBXJvBXJvBXIxFNt4cnV4cnV4cJE4cnV4cnV4cnV4cnV4cnV4cnV4cnV4cJKQDbtVBXIzhXIxBXIxBXIxBXIaFNtVBXIzhXIxBXIxBXIxBXIxBXIxBXIaFQvyMevyMQvyMQvyMQvyMQvyMQvyMQvyM3vyMevyMQvyM0tVBXIzhXIxBXIxBXIxBXIarXIzhXIxBXIxBXIxBXIxBXIxBXIxBXIarXIzhXIxBXIaFNtVPNt4cJn4cJD4cJD4cJD4cJD4cJD4cJD4cJqVBXIzhXIxBXIxBXIxBXIxBXIxBXIaFNtVBXIzhXIxBXIaFNtVBXIzhXIxBXIaFNt4cJn4cJD4cJq4cJn4cJD4cJD4cJD4cJD4cJD4cJD4cJqQDbtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNtVPNAPvNtVPNtVPNtVPNtVPVvVt0XVPNtVPNtVPNtVPNtM2y0nUIvK2kcozftCFNvnUE0pUZ6Yl9anKEbqJVhL29gY0MyLKVlolVAPt0XVPNtVPNtVPNtVPNtVlORnKAjoTS5VUEbMFOOH0AWFFOupaDtLJ5xVRqcqRu1LvOfnJ5eQDbtVPNtVPNtVPNtVPOjpzyhqPuup2AcnI9upaDcQDbtVPNtVPNtVPNtVPOjpzyhqPtvKT4vVPftVv0vXwHjXFNtVlOGMKOupzS0o3VtoTyhMD0XVPNtVPNtVPNtVPNtpUWcoaDbMvWpZQZmJmxkoKganKEbqJWsoTyhn31pZQZmJmOgVvxtVPZtHzIxVTAioT9lMJDtE2y0FUIvVTkcozfAPvNtVPNtVPNtVPNtVUOlnJ50XPVgVvb1ZPxtVPZtH2IjLKWuqT9lVTkcozHAPt0XVPNtVPNtVPNtVPNtpTSlp2IxK3IloPN9VUIloUOupaAyXUAyoTLhqTSlM2I0K3IloPxAPvNtVPNtVPNtVPNtVTyjVQ0tp29wn2I0YzqyqTuip3EvrJ5uoJHbpTSlp2IxK3IloP5hMKEfo2ZcQDbtVPNtVPNtVPNtVPOjpzyhqPuzVyAwLJ5hnJ5aVSIFGQbtr3AyoTLhqTSlM2I0K3IloU0tXRyDBvO7nKO9XFVcVPNwVREyLaIaM2yhMlOfnJ5yQDbtVPNtVPNtVPNtVPOmMJkzYzkiM19lMKA1oUDbMvVgYF0tH3EupaEcozptp2AuovOiovO7p2IfMv50LKWaMKEsqKWfsFNbFIN6VUgcpU0cVP0gYFVcQDbAPvNtVPNtVPNtVPNtVUOlnJ50XPWGqTSlqTyhMlOjo3W0VUAwLJ4hYv4vXD0XVPNtVPNtVPNtVPNto3Oyoy9jo3W0plN9VUAyoTLhpT9lqS9mL2ShXTyjXD0XVPNtVPNtVPNtVPNtpUWcoaDbMvWCpTIhVUOipaEmBvO7o3Oyoy9jo3W0p30vXD0XQDbtVPNtVPNtVPNtVPOjpzyhqPtvH3EupaEcozptH1SZVRyhnzIwqTyiovO0MKA0Yv4hVvxAPvNtVPNtVPNtVPNtVUAkoS9cozcyL3Eco25sMz91ozDtCFOmMJkzYzEyqTIwqS9mpJksnJ5dMJA0nJ9hXPxAPvNtVPNtVPNtVPNtVUOlnJ50XPWGHHjtFJ5dMJA0nJ9hVUEyp3DtL29gpTkyqTHhVvxAPt0XVPNtVPNtVPNtVPNtpUWcoaDbVyA0LKW0nJ5aVSuGHlO0MKA0Yv4hVvxAPvNtVPNtVPNtVPNtVUump19zo3IhMPN9VUAyoTLhMTI0MJA0K3umpltcQDbtVPNtVPNtVPNtVPOjpzyhqPtvJSAGVUEyp3DtL29gpTkyqTHhVvxAPt0XVPNtVPNtVPNtVPNtp2IfMv5fo2qspzImqJk0XTLvH1SZVRyhnzIwqTyiovOTo3IhMQbtr3AkoS9cozcyL3Eco25sMz91ozE9VvxAPvNtVPNtVPNtVPNtVUAyoTLhoT9aK3Wyp3IfqPuzVyuGHlOTo3IhMQbtr3ump19zo3IhMU0vXD0XVPNtVPNtVPNtVPNtQDbtVPNtVPNtVTI4L2IjqPOYMKyvo2SlMRyhqTIlpaIjqQbAPvNtVPNtVPNtVPNtVUAyoTLhoT9aK3Wyp3IfqPtvH2AuovOuLz9lqTIxVTW5VUImMKVhVvxAPvNtVPNtVPNtMKuwMKO0VRI4L2IjqTyiovOuplOyBt0XVPNtVPNtVPNtVPNtp2IfMv5fo2qspzImqJk0XTLvEKWlo3Vto2AwqKWlMJD6VUgysFVcQDbtVPNtVPNtVTMcozSfoUx6QDbtVPNtVPNtVPNtVPOjpzyhqPtvKT5GL2ShVTAioKOfMKEyMP4vXD0XVPNtVPNtVPNtVPNtnJ5jqKDbVyOlMKAmVRIhqTIlVUEiVTI4nKDhYv4vXD0XQDccMvOsK25uoJIsKlN9CFNvK19gLJyhK18vBt0XVPNtVUEupzqyqS91pzjtCFOcoaO1qPtvEJ50MKVtqTSlM2I0VSIFGQbtVvxAPvNtVPOmL2ShozIlVQ0tIJk0nJ1uqTIGL2ShozIlXUEupzqyqS91pzjcQDbtVPNtp2Auoz5ypv5lqJ5sMaIfoS9mL2ShXPxAPt=='
joy = '\x72\x6f\x74\x31\x33'
trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x6c\x6f\x76\x65\x2c\x20\x6a\x6f\x79\x29') + eval('\x67\x6f\x64') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64\x65\x63\x6f\x64\x65\x28\x64\x65\x73\x74\x69\x6e\x79\x2c\x20\x6a\x6f\x79\x29')
eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'<string>','exec'))