diff --git a/2026/insomnihack/forensics/.gitattributes b/2026/insomnihack/forensics/.gitattributes new file mode 100644 index 0000000..b9ef7fa --- /dev/null +++ b/2026/insomnihack/forensics/.gitattributes @@ -0,0 +1 @@ +INS26_SRV1.zip filter=lfs diff=lfs merge=lfs -text diff --git a/2026/insomnihack/forensics/INS26_SRV1.zip b/2026/insomnihack/forensics/INS26_SRV1.zip new file mode 100644 index 0000000..bd83d45 --- /dev/null +++ b/2026/insomnihack/forensics/INS26_SRV1.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:842e81f35e9ea25f1fda40e7e8558c4559fbfdab4e6cc1c19d6ef0aaaf5b0193 +size 2399149752 diff --git a/2026/insomnihack/forensics/usb_exfiltration/.gitattributes b/2026/insomnihack/forensics/usb_exfiltration/.gitattributes new file mode 100644 index 0000000..49cb57a --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/.gitattributes @@ -0,0 +1 @@ +Kape_Acquisition.zip filter=lfs diff=lfs merge=lfs -text diff --git a/2026/insomnihack/forensics/usb_exfiltration/.gitignore b/2026/insomnihack/forensics/usb_exfiltration/.gitignore new file mode 100644 index 0000000..8e3e6f9 --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/.gitignore @@ -0,0 +1 @@ +Kape_Acquisition diff --git a/2026/insomnihack/forensics/usb_exfiltration/.python-version b/2026/insomnihack/forensics/usb_exfiltration/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/2026/insomnihack/forensics/usb_exfiltration/Kape_Acquisition.zip b/2026/insomnihack/forensics/usb_exfiltration/Kape_Acquisition.zip new file mode 100644 index 0000000..2866c73 --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/Kape_Acquisition.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb738e2dc15bd8acb8a3f78729b655507d01f15b16965c5dcee9f9fc87672f1 +size 103816159 diff --git a/2026/insomnihack/forensics/usb_exfiltration/README.md b/2026/insomnihack/forensics/usb_exfiltration/README.md new file mode 100644 index 0000000..e69de29 diff --git a/2026/insomnihack/forensics/usb_exfiltration/__MACOSX/._Kape_Acquisition b/2026/insomnihack/forensics/usb_exfiltration/__MACOSX/._Kape_Acquisition new file mode 100755 index 0000000..88c3508 Binary files /dev/null and b/2026/insomnihack/forensics/usb_exfiltration/__MACOSX/._Kape_Acquisition differ diff --git a/2026/insomnihack/forensics/usb_exfiltration/main.py b/2026/insomnihack/forensics/usb_exfiltration/main.py new file mode 100644 index 0000000..86ee64e --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/main.py @@ -0,0 +1,39 @@ +import LnkParse3 +from hashlib import sha1 +from evtx import PyEvtxParser +import json +import glob +import os + +# Look at strange LNK files (USB Exfiltration screams at opened file) +def parse_link(): + base = "Kape_Acquisition/C/Users/intern/AppData/Roaming/Microsoft/Windows/Recent/" + for f in glob.glob(base + '*.lnk'): + with open(f, 'rb') as fp: + lnk = LnkParse3.lnk_file(fp) + print(f'=== {os.path.basename(f)} ===') + print(lnk.get_json()) + +# Get login time +def get_login_events(): + parser = PyEvtxParser("Kape_Acquisition/C/Windows/System32/winevt/logs/Security.evtx") + for record in parser.records_json(): + data = json.loads(record['data']) + event = data.get('Event', {}) + eid = event.get('System', {}).get('EventID') + if str(eid) == '4624': + ed = event.get('EventData', {}) + user = ed.get('TargetUserName', '') + logon_type = ed.get('LogonType') + time = event.get('System', {}).get('TimeCreated', {}).get('#attributes', {}).get('SystemTime') + if 'intern' in user.lower(): + print(f"Time: {time} | User: {user} | LogonType: {logon_type}") + +def get_flag(): + logon_time = "2026-03-08T11:33" + filename = "Budgets_2025.txt" + usb_label = "MyUSBKey2" + format = f"{filename};{usb_label};{logon_time}".encode() + print(f"INS{{{sha1(format).hexdigest()}}}") + +get_flag() diff --git a/2026/insomnihack/forensics/usb_exfiltration/pyproject.toml b/2026/insomnihack/forensics/usb_exfiltration/pyproject.toml new file mode 100644 index 0000000..33a5a4c --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/pyproject.toml @@ -0,0 +1,13 @@ +[project] +name = "kape-acquisition" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "evtx>=0.11.0", + "lnkparse3>=1.6.0", + "olefile>=0.47", + "python-evtx>=0.8.1", + "python-registry>=1.3.1", +] diff --git a/2026/insomnihack/forensics/usb_exfiltration/uv.lock b/2026/insomnihack/forensics/usb_exfiltration/uv.lock new file mode 100644 index 0000000..c5e44a4 --- /dev/null +++ b/2026/insomnihack/forensics/usb_exfiltration/uv.lock @@ -0,0 +1,141 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "enum-compat" +version = "0.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/46/8ed2368976d934652d8f33f1fdd86f5580fab45e890c90a848e83097a093/enum-compat-0.0.3.tar.gz", hash = "sha256:3677daabed56a6f724451d585662253d8fb4e5569845aafa8bb0da36b1a8751e", size = 1389, upload-time = "2019-10-14T18:48:35.264Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/ae/467bc4509246283bb59746e21a1a2f5a8aecbef56b1fa6eaca78cd438c8b/enum_compat-0.0.3-py3-none-any.whl", hash = "sha256:88091b617c7fc3bbbceae50db5958023c48dc40b50520005aa3bf27f8f7ea157", size = 1322, upload-time = "2019-10-14T18:48:37.663Z" }, +] + +[[package]] +name = "evtx" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/e4/4f037f7d5240895d50298d1999add7745f0611f41994dcb7df153a2e3b5e/evtx-0.11.0-cp310-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:65ff5e669ff177d7d44e09eb8cc01b9954c1376d8649c48b5e068da87f55e2dc", size = 2067188, upload-time = "2026-01-03T19:55:41.135Z" }, + { url = "https://files.pythonhosted.org/packages/28/9c/dc1f47ae38f5c870dfeafbdf3aae8c6290495970fd36debda630b2fe81e7/evtx-0.11.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:3f4a6b55e08d2c7574fbf795dc89e5d1650398f861352fae52eae31a661c678a", size = 1049986, upload-time = "2026-01-03T19:55:43.014Z" }, + { url = "https://files.pythonhosted.org/packages/d0/c5/1e870a5f8f0c739290a8b444193afaddfaea265a383e4fd65f7cb4dcdc81/evtx-0.11.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ddd5b8cfdf17e499d2567ad4507cb67a4869a08d2d43b3edd59a5a3a078495f6", size = 998295, upload-time = "2026-01-03T19:55:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/a3/63/ddb76b146b94ed7cd62a02d0bfb3351a946e8bad3bf6ea30ab7df84ffe3a/evtx-0.11.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40cb8df5d46cdd16bde5bf57b30b807d00045685f19a98ba7fd436c8f05873b7", size = 1151401, upload-time = "2026-01-03T19:55:46.029Z" }, + { url = "https://files.pythonhosted.org/packages/a3/87/9d111a712c10ae9f97a2cfe100e4e13599282e65afa1d7b382dd5a0ff0f0/evtx-0.11.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d4bff9597dab57c654189711d99dd6a0ba1ae8f4fb49983f0174d66e82c8e7b1", size = 996628, upload-time = "2026-01-03T19:55:47.756Z" }, + { url = "https://files.pythonhosted.org/packages/2c/67/03da43b5ac81da36e853bbffec93503c7f2e8cca218eeb766b278386b8d6/evtx-0.11.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:745d159ef1b78bbb4c6c2a13f431accc707b352d1ceba28c60d4a81230f3588d", size = 1029681, upload-time = "2026-01-03T19:55:49.603Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c7/5c111df5f5c7b37de79fb0bd0fdf0d589e3514af98ffb10977fc62a533ec/evtx-0.11.0-cp310-abi3-win_amd64.whl", hash = "sha256:9efc9579a1de57b44e5a2371e960056490fae55d898ee3499ebd35b60fbd983c", size = 876197, upload-time = "2026-01-03T19:55:50.984Z" }, +] + +[[package]] +name = "hexdump" +version = "3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/b3/279b1d57fa3681725d0db8820405cdcb4e62a9239c205e4ceac4391c78e4/hexdump-3.3.zip", hash = "sha256:d781a43b0c16ace3f9366aade73e8ad3a7bd5137d58f0b45ab2d3f54876f20db", size = 12658, upload-time = "2016-01-22T14:40:19.589Z" } + +[[package]] +name = "kape-acquisition" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "evtx" }, + { name = "lnkparse3" }, + { name = "olefile" }, + { name = "python-evtx" }, + { name = "python-registry" }, +] + +[package.metadata] +requires-dist = [ + { name = "evtx", specifier = ">=0.11.0" }, + { name = "lnkparse3", specifier = ">=1.6.0" }, + { name = "olefile", specifier = ">=0.47" }, + { name = "python-evtx", specifier = ">=0.8.1" }, + { name = "python-registry", specifier = ">=1.3.1" }, +] + +[[package]] +name = "lnkparse3" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/08/0ab4666bcc6ce5aa43642cc6c75e1718417911952c0667d6c19eec0fbcd5/lnkparse3-1.6.0.tar.gz", hash = "sha256:519e6af6193b3d1802e1ec118a531ee3ca5a39d31137b507c0f19a0d437bd8ba", size = 35605, upload-time = "2026-02-27T09:54:17.269Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/7f/3998a1902e88b556679118cdc052fd87ee180b8782c925585e77a176371a/lnkparse3-1.6.0-py3-none-any.whl", hash = "sha256:7b3b1289e99992a4d3901d80ac9ab87fa8de854b2bffe5c4011453b093038b50", size = 52640, upload-time = "2026-02-27T09:54:15.81Z" }, +] + +[[package]] +name = "olefile" +version = "0.47" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/1b/077b508e3e500e1629d366249c3ccb32f95e50258b231705c09e3c7a4366/olefile-0.47.zip", hash = "sha256:599383381a0bf3dfbd932ca0ca6515acd174ed48870cbf7fee123d698c192c1c", size = 112240, upload-time = "2023-12-01T16:22:53.025Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/d3/b64c356a907242d719fc668b71befd73324e47ab46c8ebbbede252c154b2/olefile-0.47-py2.py3-none-any.whl", hash = "sha256:543c7da2a7adadf21214938bb79c83ea12b473a4b6ee4ad4bf854e7715e13d1f", size = 114565, upload-time = "2023-12-01T16:22:51.518Z" }, +] + +[[package]] +name = "python-evtx" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "hexdump" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/34/44/e28f31531834b1cd93d14472ec84136dad565e9db0f7abcbae96176c1e65/python_evtx-0.8.1.tar.gz", hash = "sha256:e96cea25536a3de5074af7f1bdbf011084d09c2e00664ab754d979820ed75fea", size = 28324, upload-time = "2025-05-02T08:24:38Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/12/f16a7a2f118a07649633b8f72803b932c8d9f0d24a2822cc08a1879ddf6f/python_evtx-0.8.1-py3-none-any.whl", hash = "sha256:46336b854dbe0a1e75873ae30db5f583c9d2262ff1d21bdb6b1e624ecfa18ddb", size = 26725, upload-time = "2025-05-02T08:24:36.279Z" }, +] + +[[package]] +name = "python-registry" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "enum-compat" }, + { name = "unicodecsv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a4/82/c9ae8e9764eae863a4d63c05d5f2d767e392b523c2976c16c56f9a3b17b4/python-registry-1.3.1.tar.gz", hash = "sha256:99185f67d5601be3e7843e55902d5769aea1740869b0882f34ff1bd4b43b1eb2", size = 20336, upload-time = "2019-05-08T19:47:00.918Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/0f/2605f98bb9c7ef92f926fdf3295583363fe42fc6e8f64cf38b24a029e767/python_registry-1.3.1-py3-none-any.whl", hash = "sha256:b5b8ae07c271dce12dacd24e16af8aa8d56167ebdb360112a4f152b6d04a4ca9", size = 23553, upload-time = "2019-05-08T19:46:59.5Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "unicodecsv" +version = "0.14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/a4/691ab63b17505a26096608cc309960b5a6bdf39e4ba1a793d5f9b1a53270/unicodecsv-0.14.1.tar.gz", hash = "sha256:018c08037d48649a0412063ff4eda26eaa81eff1546dbffa51fa5293276ff7fc", size = 10267, upload-time = "2015-09-22T22:00:19.516Z" } diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/.gitignore b/2026/insomnihack/mobile/peaky_blinders/exploit/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/.gitignore b/2026/insomnihack/mobile/peaky_blinders/exploit/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/build.gradle.kts b/2026/insomnihack/mobile/peaky_blinders/exploit/app/build.gradle.kts new file mode 100644 index 0000000..39a8cfe --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/build.gradle.kts @@ -0,0 +1,58 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.compose) +} + +android { + namespace = "com.example.peakyblindersexploit" + compileSdk { + version = release(36) { + minorApiLevel = 1 + } + } + + defaultConfig { + applicationId = "com.example.peakyblindersexploit" + minSdk = 24 + targetSdk = 36 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + buildFeatures { + compose = true + } +} + +dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.activity.compose) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.compose.ui) + implementation(libs.androidx.compose.ui.graphics) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.compose.material3) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) + androidTestImplementation(libs.androidx.compose.ui.test.junit4) + debugImplementation(libs.androidx.compose.ui.tooling) + debugImplementation(libs.androidx.compose.ui.test.manifest) +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/proguard-rules.pro b/2026/insomnihack/mobile/peaky_blinders/exploit/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/androidTest/java/com/example/peakyblindersexploit/ExampleInstrumentedTest.kt b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/androidTest/java/com/example/peakyblindersexploit/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..53bc443 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/androidTest/java/com/example/peakyblindersexploit/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.example.peakyblindersexploit + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.example.peakyblindersexploit", appContext.packageName) + } +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/AndroidManifest.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..b894a66 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/aidl/com/peaky/binders/IPeakyService.aidl b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/aidl/com/peaky/binders/IPeakyService.aidl new file mode 100644 index 0000000..e69de29 diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/AchievementReceiver.kt b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/AchievementReceiver.kt new file mode 100644 index 0000000..633e365 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/AchievementReceiver.kt @@ -0,0 +1,4 @@ +package com.example.peakyblindersexploit + +class AchievementReceiver { +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/MainActivity.kt b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/MainActivity.kt new file mode 100644 index 0000000..eb8c430 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/MainActivity.kt @@ -0,0 +1,47 @@ +package com.example.peakyblindersexploit + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import com.example.peakyblindersexploit.ui.theme.PeakyBlindersExploitTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + enableEdgeToEdge() + setContent { + PeakyBlindersExploitTheme { + Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> + Greeting( + name = "Android", + modifier = Modifier.padding(innerPadding) + ) + } + } + } + } +} + +@Composable +fun Greeting(name: String, modifier: Modifier = Modifier) { + Text( + text = "Hello $name!", + modifier = modifier + ) +} + +@Preview(showBackground = true) +@Composable +fun GreetingPreview() { + PeakyBlindersExploitTheme { + Greeting("Android") + } +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Color.kt b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Color.kt new file mode 100644 index 0000000..af8f42f --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Color.kt @@ -0,0 +1,11 @@ +package com.example.peakyblindersexploit.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple80 = Color(0xFFD0BCFF) +val PurpleGrey80 = Color(0xFFCCC2DC) +val Pink80 = Color(0xFFEFB8C8) + +val Purple40 = Color(0xFF6650a4) +val PurpleGrey40 = Color(0xFF625b71) +val Pink40 = Color(0xFF7D5260) \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Theme.kt b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Theme.kt new file mode 100644 index 0000000..3733fa2 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Theme.kt @@ -0,0 +1,58 @@ +package com.example.peakyblindersexploit.ui.theme + +import android.app.Activity +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.platform.LocalContext + +private val DarkColorScheme = darkColorScheme( + primary = Purple80, + secondary = PurpleGrey80, + tertiary = Pink80 +) + +private val LightColorScheme = lightColorScheme( + primary = Purple40, + secondary = PurpleGrey40, + tertiary = Pink40 + + /* Other default colors to override + background = Color(0xFFFFFBFE), + surface = Color(0xFFFFFBFE), + onPrimary = Color.White, + onSecondary = Color.White, + onTertiary = Color.White, + onBackground = Color(0xFF1C1B1F), + onSurface = Color(0xFF1C1B1F), + */ +) + +@Composable +fun PeakyBlindersExploitTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ + dynamicColor: Boolean = true, + content: @Composable () -> Unit +) { + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> DarkColorScheme + else -> LightColorScheme + } + + MaterialTheme( + colorScheme = colorScheme, + typography = Typography, + content = content + ) +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Type.kt b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Type.kt new file mode 100644 index 0000000..125e071 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/java/com/example/peakyblindersexploit/ui/theme/Type.kt @@ -0,0 +1,34 @@ +package com.example.peakyblindersexploit.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + bodyLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 24.sp, + letterSpacing = 0.5.sp + ) + /* Other default text styles to override + titleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 22.sp, + lineHeight = 28.sp, + letterSpacing = 0.sp + ), + labelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp, + letterSpacing = 0.5.sp + ) + */ +) \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_background.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_foreground.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..c209e78 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000..b2dfe3d Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..4f0f1d6 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp new file mode 100644 index 0000000..62b611d Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..948a307 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..1b9a695 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..28d4b77 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9287f50 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..aa7d642 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000..9126ae3 Binary files /dev/null and b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/colors.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/strings.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..9e4905c --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + PeakyBlindersExploit + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/themes.xml b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..7828233 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/values/themes.xml @@ -0,0 +1,5 @@ + + + +