From 4a8fa28df281caaf2396f028cf0cbc2b5a03f5af Mon Sep 17 00:00:00 2001 From: Sai Vishnu Raju Chebolu Date: Sun, 5 Feb 2023 11:46:48 +0530 Subject: [PATCH 1/3] pushing code to github --- Vanchan-E_ Anti_Pirates/.gitignore | 1 + Vanchan-E_ Anti_Pirates/AI caller.ipynb | 249 +++++++ .../MicrosoftTeams-image (1).png | Bin 0 -> 26545 bytes Vanchan-E_ Anti_Pirates/Police-Hackathon | 1 + Vanchan-E_ Anti_Pirates/blobupload.py | 28 + Vanchan-E_ Anti_Pirates/checker.py | 93 +++ Vanchan-E_ Anti_Pirates/hist1.png | Bin 0 -> 26545 bytes Vanchan-E_ Anti_Pirates/perm.py | 28 + Vanchan-E_ Anti_Pirates/sel.py | 35 + Vanchan-E_ Anti_Pirates/sqlconnector.py | 38 ++ Vanchan-E_ Anti_Pirates/test.py | 8 + Vanchan-E_ Anti_Pirates/urlharmres.py | 631 ++++++++++++++++++ Vanchan-E_ Anti_Pirates/w1.py | 37 + 13 files changed, 1149 insertions(+) create mode 100644 Vanchan-E_ Anti_Pirates/.gitignore create mode 100644 Vanchan-E_ Anti_Pirates/AI caller.ipynb create mode 100644 Vanchan-E_ Anti_Pirates/MicrosoftTeams-image (1).png create mode 160000 Vanchan-E_ Anti_Pirates/Police-Hackathon create mode 100644 Vanchan-E_ Anti_Pirates/blobupload.py create mode 100644 Vanchan-E_ Anti_Pirates/checker.py create mode 100644 Vanchan-E_ Anti_Pirates/hist1.png create mode 100644 Vanchan-E_ Anti_Pirates/perm.py create mode 100644 Vanchan-E_ Anti_Pirates/sel.py create mode 100644 Vanchan-E_ Anti_Pirates/sqlconnector.py create mode 100644 Vanchan-E_ Anti_Pirates/test.py create mode 100644 Vanchan-E_ Anti_Pirates/urlharmres.py create mode 100644 Vanchan-E_ Anti_Pirates/w1.py diff --git a/Vanchan-E_ Anti_Pirates/.gitignore b/Vanchan-E_ Anti_Pirates/.gitignore new file mode 100644 index 00000000..2eea525d --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/Vanchan-E_ Anti_Pirates/AI caller.ipynb b/Vanchan-E_ Anti_Pirates/AI caller.ipynb new file mode 100644 index 00000000..c1e48549 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/AI caller.ipynb @@ -0,0 +1,249 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 32, + "id": "cb4d1c8c", + "metadata": {}, + "outputs": [], + "source": [ + "#pip install azure-cognitiveservices-speech\n", + "import azure.cognitiveservices.speech as speechsdk\n", + "import time\n", + "import random" + ] + }, + { + "cell_type": "markdown", + "id": "f862a0f6", + "metadata": {}, + "source": [ + "# speech-to-text" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "b1a4e52f", + "metadata": {}, + "outputs": [], + "source": [ + "def recognize_from_microphone():\n", + " # This example requires environment variables named \"SPEECH_KEY\" and \"SPEECH_REGION\"\n", + " speech_config = speechsdk.SpeechConfig(subscription='e8cbc273eb1a43e7a6a38938b8a30b63', region='centralindia')\n", + " speech_config.speech_recognition_language=\"en-IN\"\n", + "\n", + " audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)\n", + " speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)\n", + "\n", + " print(\"Speak into your microphone.\")\n", + " speech_recognition_result = speech_recognizer.recognize_once_async().get()\n", + "\n", + " if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech:\n", + " print(\"Recognized: {}\".format(speech_recognition_result.text))\n", + " return speech_recognition_result.text\n", + " elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch:\n", + " print(\"No speech could be recognized: {}\".format(speech_recognition_result.no_match_details))\n", + " elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled:\n", + " cancellation_details = speech_recognition_result.cancellation_details\n", + " print(\"Speech Recognition canceled: {}\".format(cancellation_details.reason))\n", + " if cancellation_details.reason == speechsdk.CancellationReason.Error:\n", + " print(\"Error details: {}\".format(cancellation_details.error_details))\n", + " print(\"Did you set the speech resource key and region values?\")\n", + "\n", + "# caller_text = recognize_from_microphone()" + ] + }, + { + "cell_type": "markdown", + "id": "f98591c0", + "metadata": {}, + "source": [ + "# text-to-speech" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "e7db3970", + "metadata": {}, + "outputs": [], + "source": [ + "def reply(input_text):\n", + " # This example requires environment variables named \"SPEECH_KEY\" and \"SPEECH_REGION\"\n", + " speech_config = speechsdk.SpeechConfig(subscription='2eac4093659042a89d98671a3bb6d341', region='centralindia')\n", + " audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)\n", + "\n", + " # The language of the voice that speaks.\n", + " speech_config.speech_synthesis_voice_name='en-IN-PrabhatNeural'\n", + "\n", + " speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)\n", + "\n", + " speech_synthesis_result = speech_synthesizer.speak_text_async(input_text).get()\n", + "\n", + " if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:\n", + " print(\"Speech synthesized for text [{}]\".format(input_text))\n", + " elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:\n", + " cancellation_details = speech_synthesis_result.cancellation_details\n", + " print(\"Speech synthesis canceled: {}\".format(cancellation_details.reason))\n", + " if cancellation_details.reason == speechsdk.CancellationReason.Error:\n", + " if cancellation_details.error_details:\n", + " print(\"Error details: {}\".format(cancellation_details.error_details))\n", + " print(\"Did you set the speech resource key and region values?\")" + ] + }, + { + "cell_type": "markdown", + "id": "f38edaaa", + "metadata": {}, + "source": [ + "# main()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "2eaea08a", + "metadata": {}, + "outputs": [], + "source": [ + "standard_replies = [\"i can't hear your voice, can you please be more clear ?\",\n", + " \"can you please repeat what you just said, sorry! there is some network issue here.\",\n", + " \"i didn't understand what you just said.\",\n", + " \"i want to know more.\"]\n", + "prev = \"\"\n", + "replies={\"talking\" : \"Yes, tell me\",\n", + " \"speaking\" : \"Yes, tell me\",\n", + " \"calling\" : \"Yes, go ahead\",\n", + " \"interested?\" : \"yes, i am interested\",\n", + " \"you want\" : \"yes\",\n", + " \"otp\" : \"yes, just a second, its 569434\",\n", + " \"one time passowrd\" : \"yes, just a second, its 785495\",\n", + " \"wanted loan\" : \"yes\",\n", + " \"betting\" : \" can you explain this more to me\",\n", + " \"what\": standard_replies[0],\n", + " \"hear me\": \"it is better now\",\n", + " \"details\": \"I forgot my account details, can you please tell me your address so that I can send DD to you\",\n", + " \"repeat\": prev,\n", + " \"kind\": \"As I said right, i wanted instant loan. can you please get me that?\",\n", + " \"looking\":\"i wanted instant loan. can you please get me that?\",\n", + " \"address\":\"Thank you, I'll send it to the specified address\",\n", + " \"thank\":\"Bye.\",\n", + " \"thanks\" : \"Bye\"\n", + " }" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "965a8c68", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Speak into your microphone.\n", + "Recognized: Hello, I am Vishnu. I am speaking to Mr Aniket.\n", + "Speech synthesized for text [Yes, tell me]\n", + "Speak into your microphone.\n", + "Recognized: I am from Financial Services department. I see that you registered on our website about a loan. Can we talk about this right now?\n", + "Speech synthesized for text [i want to know more.]\n", + "Speak into your microphone.\n", + "Recognized: Yeah. Which loan do you want to actually?\n", + "Speech synthesized for text [i want to know more.]\n", + "Speak into your microphone.\n", + "Recognized: What type of loan you want actually?\n", + "Speech synthesized for text [can you please repeat what you just said, sorry! there is some network issue here.]\n", + "Speak into your microphone.\n", + "Recognized: What kind of loan you want?\n", + "Speech synthesized for text [As I said right, i wanted instant loan. can you please get me that?]\n", + "Speak into your microphone.\n", + "Recognized: Yeah, sure. Can you please share me your bank details?\n", + "Speech synthesized for text [i can't hear your voice, can you please be more clear ?]\n", + "Speak into your microphone.\n", + "Recognized: Can you hear me your bank details please?\n", + "Speech synthesized for text [I forgot my account details, can you please tell me your address so that I can send DD to you]\n", + "Speak into your microphone.\n", + "Recognized: Yeah, my address is Dash Dash dash and you can send it to this address.\n", + "Speech synthesized for text [Thank you, I'll send it to the specified address]\n", + "Speak into your microphone.\n", + "Recognized: Thanks.\n", + "Speech synthesized for text [i can't hear your voice, can you please be more clear ?]\n", + "Speak into your microphone.\n", + "Recognized: Thank you.\n", + "Speech synthesized for text [i want to know more.]\n", + "Speak into your microphone.\n", + "Recognized: Fill cut that thing last.\n", + "Speech synthesized for text [i didn't understand what you just said.]\n", + "Speak into your microphone.\n", + "No speech could be recognized: NoMatchDetails(reason=NoMatchReason.NotRecognized)\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'NoneType' object has no attribute 'split'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[36], line 5\u001b[0m\n\u001b[0;32m 3\u001b[0m rand_idx \u001b[39m=\u001b[39m random\u001b[39m.\u001b[39mrandint(\u001b[39m0\u001b[39m, \u001b[39mlen\u001b[39m(standard_replies)\u001b[39m-\u001b[39m\u001b[39m1\u001b[39m)\n\u001b[0;32m 4\u001b[0m caller_text \u001b[39m=\u001b[39m recognize_from_microphone()\n\u001b[1;32m----> 5\u001b[0m caller_text \u001b[39m=\u001b[39m \u001b[39mlist\u001b[39m(caller_text\u001b[39m.\u001b[39;49msplit(\u001b[39m\"\u001b[39m\u001b[39m \u001b[39m\u001b[39m\"\u001b[39m))\n\u001b[0;32m 6\u001b[0m flag\u001b[39m=\u001b[39m\u001b[39m0\u001b[39m\n\u001b[0;32m 7\u001b[0m \u001b[39mfor\u001b[39;00m key,value \u001b[39min\u001b[39;00m replies\u001b[39m.\u001b[39mitems():\n", + "\u001b[1;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'split'" + ] + } + ], + "source": [ + "end_time = time.time() + (60*2)\n", + "while time.time() < end_time:\n", + " rand_idx = random.randint(0, len(standard_replies)-1)\n", + " caller_text = recognize_from_microphone()\n", + " caller_text = list(caller_text.split(\" \"))\n", + " flag=0\n", + " for key,value in replies.items():\n", + " if key in caller_text:\n", + " prev = key\n", + " reply(value)\n", + " flag=1\n", + " break\n", + " if flag==0:\n", + " reply(standard_replies[rand_idx])\n", + " \n", + "reply(\"ok, i will call you later, got to go, bye\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "06a9b1b2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.9 64-bit (microsoft store)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.9" + }, + "vscode": { + "interpreter": { + "hash": "256e7590f6950b5f6dd0a496b5ee28ed8f63fc44a32891a1ff556d54add0dbb6" + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/Vanchan-E_ Anti_Pirates/MicrosoftTeams-image (1).png b/Vanchan-E_ Anti_Pirates/MicrosoftTeams-image (1).png new file mode 100644 index 0000000000000000000000000000000000000000..3739562d2fec5a298623dfa72d522c264496a2b6 GIT binary patch literal 26545 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 None: + self.conn = None + self.cur = None + + def connect(self): + self.conn = mysql.connector.connect( + host="ksa-hack-aprabhu.mysql.database.azure.com", + user="aprabhu", + password="Builder!12", + database="antipirate" + ) + self.cur = self.conn.cursor() + + def retrieve(self, query): + self.connect() + self.cur.execute(query) + res = self.cur.fetchall() + self.cur.close() + self.conn.close() + return res + + def insert(self, query): + try: + self.connect() + self.cur.execute(query) + self.conn.commit() + self.cur.close() + self.conn.close() + except mysql.connector.errors.IntegrityError: + print("this app has already been added to the database") + pass + + + + diff --git a/Vanchan-E_ Anti_Pirates/test.py b/Vanchan-E_ Anti_Pirates/test.py new file mode 100644 index 00000000..4d731812 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/test.py @@ -0,0 +1,8 @@ +from sqlconnector import SqlConnector + +obj = SqlConnector() +print(obj.retrieve("describe virustotal")) +a = obj.retrieve("select * from app_list") +print(a[0]) +a = obj.retrieve("select * from virustotal") +print(a[0]) \ No newline at end of file diff --git a/Vanchan-E_ Anti_Pirates/urlharmres.py b/Vanchan-E_ Anti_Pirates/urlharmres.py new file mode 100644 index 00000000..3d9383cd --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/urlharmres.py @@ -0,0 +1,631 @@ +result = { + 'data': { + 'attributes': { + 'last_modification_date': 1673485599, + 'times_submitted': 469, + 'total_votes': { + 'harmless': 4, + 'malicious': 7 + }, + 'threat_names': ['Mal/HTMLGen-A'], + 'last_submission_date': 1673485586, + 'last_http_response_content_length': 13574, + 'last_http_response_headers': { + 'Content-Length': '3565', + 'X-Content-Type-Options': 'nosniff', + 'Content-Encoding': 'gzip', + 'Vary': 'Accept-Encoding', + 'Keep-Alive': 'timeout=5, max=100', + 'Server': 'Apache', + 'Connection': 'Keep-Alive', + 'Date': 'Thu, 12 Jan 2023 01:06:30 GMT', + 'X-Frame-Options': 'sameorigin', + 'Content-Type': 'text/html; charset=utf-8' + }, + 'reputation': -13, + 'tags': [], + 'last_analysis_date': 1673485586, + 'first_submission_date': 1349664145, + 'categories': { + 'Dr.Web': 'known infection source', + 'Sophos': 'spyware and malware', + 'BitDefender': 'computersandsoftware', + 'Webroot': 'Phishing and Other Frauds', + 'Xcitium Verdict Cloud': 'mobile communications', + 'Forcepoint ThreatSeeker': 'illegal or unethical', + 'alphaMountain.ai': 'Hacking, Phishing, Scam/Illegal/Unethical' + }, + 'last_http_response_content_sha256': '9a435b4385c0958a66c9a1d9d11f0360303e6bc89d2bbe6d986cdb6c6c746648', + 'last_http_response_code': 200, + 'last_final_url': 'https://emkei.cz/', + 'trackers': { + 'Google AdSense': [{ + 'url': 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8712744191052640', + 'timestamp': 1673485586 + }], + 'Facebook Connect': [{ + 'url': 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v12.0', + 'timestamp': 1673485586 + }] + }, + 'url': 'https://emkei.cz/', + 'title': "Emkei's Fake Mailer", + 'last_analysis_stats': { + 'harmless': 75, + 'malicious': 2, + 'suspicious': 1, + 'undetected': 12, + 'timeout': 0 + }, + 'last_analysis_results': { + 'Bkav': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'Bkav' + }, + 'CMC Threat Intelligence': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'CMC Threat Intelligence' + }, + 'Snort IP sample list': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Snort IP sample list' + }, + 'VX Vault': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'VX Vault' + }, + 'ViriBack': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'ViriBack' + }, + 'PhishLabs': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'PhishLabs' + }, + 'K7AntiVirus': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'K7AntiVirus' + }, + 'CINS Army': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'CINS Army' + }, + 'Quttera': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Quttera' + }, + 'BlockList': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'BlockList' + }, + 'PrecisionSec': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'PrecisionSec' + }, + 'OpenPhish': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'OpenPhish' + }, + '0xSI_f33d': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': '0xSI_f33d' + }, + 'Feodo Tracker': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Feodo Tracker' + }, + 'Web Security Guard': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Web Security Guard' + }, + 'Scantitan': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Scantitan' + }, + 'AlienVault': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'AlienVault' + }, + 'Sophos': { + 'category': 'suspicious', + 'result': 'not recommended', + 'method': 'blacklist', + 'engine_name': 'Sophos' + }, + 'Phishtank': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Phishtank' + }, + 'CyberCrime': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'CyberCrime' + }, + 'Spam404': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Spam404' + }, + 'SecureBrain': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'SecureBrain' + }, + 'Hoplite Industries': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Hoplite Industries' + }, + 'CRDF': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'CRDF' + }, + 'Rising': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Rising' + }, + 'Fortinet': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Fortinet' + }, + 'alphaMountain.ai': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'alphaMountain.ai' + }, + 'Lionic': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Lionic' + }, + 'Cyble': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Cyble' + }, + 'Seclookup': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Seclookup' + }, + 'Xcitium Verdict Cloud': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Xcitium Verdict Cloud' + }, + 'Virusdie External Site Scan': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Virusdie External Site Scan' + }, + 'Artists Against 419': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Artists Against 419' + }, + 'Google Safebrowsing': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Google Safebrowsing' + }, + 'SafeToOpen': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'SafeToOpen' + }, + 'ADMINUSLabs': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'ADMINUSLabs' + }, + 'ESTsecurity': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'ESTsecurity' + }, + 'Juniper Networks': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Juniper Networks' + }, + 'Heimdal Security': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Heimdal Security' + }, + 'AutoShun': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'AutoShun' + }, + 'Trustwave': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Trustwave' + }, + 'AICC (MONITORAPP)': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'AICC (MONITORAPP)' + }, + 'CyRadar': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'CyRadar' + }, + 'Dr.Web': { + 'category': 'malicious', + 'result': 'malicious', + 'method': 'blacklist', + 'engine_name': 'Dr.Web' + }, + 'Emsisoft': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Emsisoft' + }, + 'Abusix': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Abusix' + }, + 'Webroot': { + 'category': 'malicious', + 'result': 'malicious', + 'method': 'blacklist', + 'engine_name': 'Webroot' + }, + 'Avira': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Avira' + }, + 'securolytics': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'securolytics' + }, + 'Antiy-AVL': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Antiy-AVL' + }, + 'Acronis': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Acronis' + }, + 'Quick Heal': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Quick Heal' + }, + 'URLQuery': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'URLQuery' + }, + 'Viettel Threat Intelligence': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Viettel Threat Intelligence' + }, + 'DNS8': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'DNS8' + }, + 'benkow.cc': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'benkow.cc' + }, + 'EmergingThreats': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'EmergingThreats' + }, + 'Chong Lua Dao': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Chong Lua Dao' + }, + 'Yandex Safebrowsing': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Yandex Safebrowsing' + }, + 'Lumu': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'Lumu' + }, + 'Kaspersky': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Kaspersky' + }, + 'Sucuri SiteCheck': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Sucuri SiteCheck' + }, + 'desenmascara.me': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'desenmascara.me' + }, + 'URLhaus': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'URLhaus' + }, + 'PREBYTES': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'PREBYTES' + }, + 'StopForumSpam': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'StopForumSpam' + }, + 'Blueliv': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Blueliv' + }, + 'Netcraft': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'Netcraft' + }, + 'ZeroCERT': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'ZeroCERT' + }, + 'Phishing Database': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Phishing Database' + }, + 'MalwarePatrol': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'MalwarePatrol' + }, + 'Sangfor': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Sangfor' + }, + 'IPsum': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'IPsum' + }, + 'Malwared': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Malwared' + }, + 'BitDefender': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'BitDefender' + }, + 'GreenSnow': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'GreenSnow' + }, + 'G-Data': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'G-Data' + }, + 'Cyan': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'Cyan' + }, + 'VIPRE': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'VIPRE' + }, + 'SCUMWARE.org': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'SCUMWARE.org' + }, + 'PhishFort': { + 'category': 'undetected', + 'result': 'unrated', + 'method': 'blacklist', + 'engine_name': 'PhishFort' + }, + 'malwares.com URL checker': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'malwares.com URL checker' + }, + 'Forcepoint ThreatSeeker': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Forcepoint ThreatSeeker' + }, + 'Certego': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Certego' + }, + 'ESET': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'ESET' + }, + 'Threatsourcing': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Threatsourcing' + }, + 'MalSilo': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'MalSilo' + }, + 'Nucleon': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Nucleon' + }, + 'ThreatHive': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'ThreatHive' + }, + 'Bfore.Ai PreCrime': { + 'category': 'harmless', + 'result': 'clean', + 'method': 'blacklist', + 'engine_name': 'Bfore.Ai PreCrime' + } + }, + 'html_meta': { + 'description': ["Emkei's Fake Mailer"], + 'copyright': ['Emkei'], + 'author': ['Emkei; info@emkei.cz'], + 'referrer': ['never'], + 'robots': ['all,follow,noodp,noydir'], + 'google-translate-customization': ['3c6d7270b17dde3a-bb60ac77a4ab343c-gdacf5a72e3a4f02f-8'], + 'language': ['en'], + 'keywords': ['fake mailer,fakemailer,fakemail,fake mail,fake email,anonymous mailer,anonymousmailer,anonymousmail,anonymous mail,anonymous email,instant mailer,anonymous mailer,instantmailer,instant mail,instantmail,mailer,mail,emkei,attachment,encrypt,encryption,html mail,html email'], + 'googlebot': ['index,follow,snippet,archive,noodp'] + }, + 'outgoing_links': ['https://twitter.com/share', 'https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Femkei.cz%2F&src=sdkpreparse'] + }, + 'type': 'url', + 'id': 'f8cea07c2a7ddd9b91c34a59f8b1562ebbfd41b8cf8e84b4005eb6342678d4c9', + 'links': { + 'self': 'https://www.virustotal.com/api/v3/urls/f8cea07c2a7ddd9b91c34a59f8b1562ebbfd41b8cf8e84b4005eb6342678d4c9' + } + } +} + + + +print(result['data']['attributes']['total_votes']['harmless']) +print(result['data']['attributes']['total_votes']['malicious']) +print(result['data']['attributes']['threat_names']) +print(result['data']['attributes']['categories']) +print(result['data']['attributes']['last_analysis_stats']) +print(result['data']['attributes']['last_analysis_results']) +print(result['data']['attributes']['outgoing_links']) \ No newline at end of file diff --git a/Vanchan-E_ Anti_Pirates/w1.py b/Vanchan-E_ Anti_Pirates/w1.py new file mode 100644 index 00000000..4c7436bb --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/w1.py @@ -0,0 +1,37 @@ +{ + 'versionString': 'local', + 'versionCode': 4, + 'name': 'Lucky Casino - Jackpot Slots', + 'shortDescription': 'Maravilloso juego, múltiples formas de jugar, velocidad fluida', + 'description': 'La interfaz es linda, hermosa y no se congela.\nNOTA:El éxito en los juegos de tragaperras del casino social no recompensa con premios de dinero real, ni garantiza el éxito en las apuestas con dinero\n\nRecent changes:\nv1.30', + 'marketCategory': 'CASINO', + 'price': 'free', + 'apkSize': 43613539, + 'maturityLevel': 'HIGH', + 'supportsApp2SD': 'FALSE', + 'launchTime': 1672444800, + 'lastAppUpdateTime': 1672444800, + 'infoRefreshTime': 1675048134, + 'downloadsCategory': '10,000+', + 'estimatedDownloads': 26000, + 'estimatedRecentDownloads': 26000, + 'rating': 0.0, + 'recentRating': 0.0, + 'ratingCount': 0, + 'rating1StarCount': 0, + 'rating2StarCount': 0, + 'rating3StarCount': 0, + 'rating4StarCount': 0, + 'rating5StarCount': 0, + 'plusOneCount': 0, + 'commentCount': 0, + 'iconUrl': 'https://lh3.googleusercontent.com/JUaXawMRj0rYNhPikyqrvcmhWoSPof-xhuV5QXXOSl7UOe2eYW2XzTyImtBQeVJqeBDX-HuTYVOWl9nU-iyHLAYy-X1PZP1zNoJ8WA', + 'featureGraphicUrl': 'https://lh3.googleusercontent.com/wZJE9V1xPQ1_Mp-zKwgUZQR3TI47f4Mf2s1S1kps65NDhE-pQ9zMt2raUj4-uQxa_76ZC7bg4kMSb78V8FJu8GnQNF3xY3SQYCotUw', + 'developerName': 'AlimSher1999', + 'developerEmail': 'alimalimsher55@gmail.com', + 'developerAddress': '', + 'website': 'https://gfdfe12.com/', + 'package': 'andmosico.andcasino.andlucky', + 'screenshotUrls': ['https://lh3.googleusercontent.com/Xl9CU9nW8slaCsmq8BhoWzgQMTHOBwAAMAnReXnsjJK8oZOW0Le4tPqO4r__oPTGwHgjtmkJWOxnMUxYsSiKpA77GcOD1SziR-hPJA', 'https://lh3.googleusercontent.com/8MfVbCFtTXk-XwC2Z9WA9cXpWM59G7vW3MXuqNAdf3v88ryrumBEIocfcZcSclTjnkbsN0XMHxOKLJXwF3PJyzsoyPy86-8drbqz', 'https://lh3.googleusercontent.com/cB07jlhAQSTCrz5Pa8b0PX4m2pyJ2mewoJUCbMs8zEpGGPU61c_fq1J6xzlFIFWcyYdmj0zvp6IW1ZOcRvbsKlP04mRH0E7JlRQ', 'https://lh3.googleusercontent.com/QtFIL1Qci-y-l5qrhtfPe29WiMsH4dYJHaUiyKwBwmy5ZcQ2khhXf42LWjxf76sYz29hQkNuy3Q-31HxUmrkqwGkOrRSdMtIehb-'], + 'permissions': ['android.permission.ACCESS_COARSE_LOCATION', 'android.permission.ACCESS_FINE_LOCATION', 'android.permission.ACCESS_NETWORK_STATE', 'android.permission.ACCESS_WIFI_STATE', 'android.permission.BROADCAST_STICKY', 'android.permission.CAMERA', 'android.permission.CHANGE_CONFIGURATION', 'android.permission.CHANGE_NETWORK_STATE', 'android.permission.CHANGE_WIFI_STATE', 'android.permission.INTERNET', 'android.permission.KILL_BACKGROUND_PROCESSES', 'android.permission.MODIFY_AUDIO_SETTINGS', 'android.permission.MOUNT_UNMOUNT_FILESYSTEMS', 'android.permission.READ_EXTERNAL_STORAGE', 'android.permission.READ_LOGS', 'android.permission.READ_PHONE_STATE', 'android.permission.RECEIVE_BOOT_COMPLETED', 'android.permission.RECEIVE_USER_PRESENT', 'android.permission.RECORD_AUDIO', 'android.permission.SYSTEM_ALERT_WINDOW', 'android.permission.VIBRATE', 'android.permission.WAKE_LOCK', 'android.permission.WRITE_EXTERNAL_STORAGE', 'android.permission.WRITE_SETTINGS', 'oicq.wlogin_sdk.permission.WloginProvider.READ', 'oicq.wlogin_sdk.permission.WloginProvider.WRITE'] +} \ No newline at end of file From fbe7178d689043ace9e25c354197e583a56f98b0 Mon Sep 17 00:00:00 2001 From: Sai Vishnu Raju Chebolu Date: Sun, 5 Feb 2023 11:53:42 +0530 Subject: [PATCH 2/3] added everything --- README.md | 5 +++++ Vanchan-E_ Anti_Pirates/LICENSE | 21 +++++++++++++++++++++ Vanchan-E_ Anti_Pirates/Police-Hackathon | 1 - Vanchan-E_ Anti_Pirates/Website_Frontend | 1 + 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 README.md create mode 100644 Vanchan-E_ Anti_Pirates/LICENSE delete mode 160000 Vanchan-E_ Anti_Pirates/Police-Hackathon create mode 160000 Vanchan-E_ Anti_Pirates/Website_Frontend diff --git a/README.md b/README.md new file mode 100644 index 00000000..738bb63a --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# ksp-submission +This repository is created for Karnataka State Police Hackathon 2023 - submission collection. +## Team Information +### Team Name - Anti-Pirates +### Problem Statement - Fraud App Detection \ No newline at end of file diff --git a/Vanchan-E_ Anti_Pirates/LICENSE b/Vanchan-E_ Anti_Pirates/LICENSE new file mode 100644 index 00000000..5db2a201 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 hack2skill + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Vanchan-E_ Anti_Pirates/Police-Hackathon b/Vanchan-E_ Anti_Pirates/Police-Hackathon deleted file mode 160000 index 59371c0b..00000000 --- a/Vanchan-E_ Anti_Pirates/Police-Hackathon +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 59371c0b6befe030edbb4cbb45d9e30ab6e12fd7 diff --git a/Vanchan-E_ Anti_Pirates/Website_Frontend b/Vanchan-E_ Anti_Pirates/Website_Frontend new file mode 160000 index 00000000..e07ba120 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/Website_Frontend @@ -0,0 +1 @@ +Subproject commit e07ba120787cb890998e929c8bd7290b5d8663b3 From 083b1f7956fd1b79f385c30c3f1090e1b2f0f9dc Mon Sep 17 00:00:00 2001 From: anti-pirates Date: Sun, 5 Feb 2023 11:58:43 +0530 Subject: [PATCH 3/3] read me changed --- README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..7db17363 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# ksp-submission +This repository is created for Karnataka State Police Hackathon 2023 - submission collection. +## Team Information +### Team Name - Anti Pirates +### Problem Statement - Fraud App Detection \ No newline at end of file