diff --git a/README.md b/README.md index 578bb9cc..7db17363 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # ksp-submission This repository is created for Karnataka State Police Hackathon 2023 - submission collection. ## Team Information -### Team Name - -### Problem Statement - +### Team Name - Anti Pirates +### Problem Statement - Fraud App Detection \ No newline at end of file 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 00000000..3739562d Binary files /dev/null and b/Vanchan-E_ Anti_Pirates/MicrosoftTeams-image (1).png differ 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 diff --git a/Vanchan-E_ Anti_Pirates/blobupload.py b/Vanchan-E_ Anti_Pirates/blobupload.py new file mode 100644 index 00000000..b7d6a4e1 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/blobupload.py @@ -0,0 +1,28 @@ +from azure.identity import DefaultAzureCredential +from azure.storage.blob import BlobClient, BlobServiceClient, PublicAccess + +account_url = "https://kspstorage1.blob.core.windows.net/" + +creds = DefaultAzureCredential() +service_client = BlobServiceClient( + account_url=account_url, + credential=creds +) + +container_name="sgf" +try: + new_container = service_client.create_container(container_name, public_access=PublicAccess.Container) +except Exception as e: + print(e) + new_container = service_client.get_container_client(container_name) +for blob in new_container.list_blobs(): + print(blob) + +blob_name = "testblob1" +blob_url = f"{account_url}/{container_name}/{blob_name}" + +blob_client = BlobClient(account_url, container_name, blob_name) + +with open("hist1.png", "rb") as blob_file: + blob_client.upload_blob(data=blob_file) + diff --git a/Vanchan-E_ Anti_Pirates/checker.py b/Vanchan-E_ Anti_Pirates/checker.py new file mode 100644 index 00000000..118f311e --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/checker.py @@ -0,0 +1,93 @@ +import requests +import base64 +import os +from bs4 import BeautifulSoup +from dotenv import load_dotenv +load_dotenv() + +from sqlconnector import SqlConnector +obj = SqlConnector() + +def doAppBrainRequest(): + print("Performing GET request to appbrain to get the details of new apps...") + api_key = os.getenv("APP_BRAIN_API").strip() + request_headers = {'content-type': 'application/json'} + res = [] + url = 'https://api.appbrain.com/v2/info/browse?apikey={}&sort=POPULAR_INDIA&filter=FREE&category=CASINO&offset=500&limit=50'.format(api_key) + app_brain_res = requests.get(url) + if app_brain_res.ok: + res.extend(app_brain_res.json()['apps']) + url = 'https://api.appbrain.com/v2/info/browse?apikey={}&sort=POPULAR_INDIA&filter=FREE&category=FINANCE&offset=500&limit=50'.format(api_key) + app_brain_res = requests.get(url) + if app_brain_res.ok: + res.extend(app_brain_res.json()['apps']) + return res + + +def doVTRequest(url_to_test): + req_endpoint = "https://www.virustotal.com/api/v3/urls/{}" + encoded = base64.urlsafe_b64encode(url_to_test.encode()).decode().strip("=") + req_endpoint = req_endpoint.format(encoded) + print(req_endpoint) + print(f"Sending query to VirusTotal API...") + apikey = os.getenv('VT_API') + request_headers = {"x-apikey": apikey} + vt_data = requests.get(req_endpoint, headers=request_headers) + if vt_data.ok: + return vt_data.json() + else: + return None + +inplaystore = [] +notinplaystore = [] + +def checkInPlaystore(num, package): + url = "https://play.google.com/store/apps/details?id={}".format(package.strip()) + html_content = requests.get(url).text + soup = BeautifulSoup(html_content, "html.parser") + btns = soup.find_all('span') + flag = 0 + for btn in btns: + if btn.text.strip().lower() == "install": + flag = 1 + break + if flag: + inplaystore.append(num) + else: + notinplaystore.append(num) + + +def start(): + + result = doAppBrainRequest() + + for num, app in enumerate(result): + checkInPlaystore(num, app['package']) + + for app in inplaystore: + name = base64.b64encode(result[app]['name'].encode()).decode() + website = "NA" if result[app]['website']=="" else result[app]['website'] + devname = "NA" if result[app]['developerName']=="" else result[app]['developerName'] + query = "insert into app_list (app_name, website, developer, package_name, platform) values ('{}','{}','{}','{}','{}')".format(name, website, devname, result[app]['package'], "Android") + try: + obj.insert(query) + except: + continue + r = doVTRequest(result[app]['website']) + app_id = obj.retrieve("select id from app_list where package_name ='{}'".format(result[app]['package']))[0][0] + if r is None: + threat="Malicious/Website not there" + harmless = 0 + malicious = 1 + + else: + threat = r['data']['attributes']['threat_names'] + threat = "" if threat==[] else threat[0] + harmless = r['data']['attributes']['total_votes']['harmless'] + r['data']['attributes']['last_analysis_stats']['harmless'] + malicious = harmless = r['data']['attributes']['total_votes']['malicious'] + r['data']['attributes']['last_analysis_stats']['malicious'] + query = "insert into virustotal (app_id, type, count_malicious, count_non_malicious) values ('{}','{}','{}','{}')"\ + .format(app_id, threat, malicious, harmless) + + obj.insert(query) + +start() \ No newline at end of file diff --git a/Vanchan-E_ Anti_Pirates/hist1.png b/Vanchan-E_ Anti_Pirates/hist1.png new file mode 100644 index 00000000..3739562d Binary files /dev/null and b/Vanchan-E_ Anti_Pirates/hist1.png differ diff --git a/Vanchan-E_ Anti_Pirates/perm.py b/Vanchan-E_ Anti_Pirates/perm.py new file mode 100644 index 00000000..f93f19f7 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/perm.py @@ -0,0 +1,28 @@ +[ + "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", +] diff --git a/Vanchan-E_ Anti_Pirates/sel.py b/Vanchan-E_ Anti_Pirates/sel.py new file mode 100644 index 00000000..9a840f68 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/sel.py @@ -0,0 +1,35 @@ +from selenium import webdriver +from selenium.webdriver.common.by import By +driver = webdriver.Chrome() +import time +from selenium.webdriver.chrome.options import Options + +options = Options() +options.add_argument("window-size=600x300") +driver.get("https://ksp-vanchane-sample.azurewebsites.net") +time.sleep(2) + +driver.find_element(By.XPATH, "//input[@name='email']").send_keys("validuser@email.com") +time.sleep(1) +driver.find_element(By.XPATH, "//input[@placeholder='+91']").send_keys("+917894561230") +time.sleep(1) +driver.find_element(By.XPATH, "//input[@name='psw']").send_keys("G00dp@ssw0rd") +time.sleep(1) +driver.find_element(By.XPATH, "//input[@name='psw-repeat']").send_keys("G00dp@ssw0rd") +time.sleep(1) + +driver.find_element(By.CLASS_NAME, "signupbtn").click() + +time.sleep(5) + +driver.find_element(By.XPATH,"//*[@id='root']/div/div/div[2]/div[3]/div/div[1]/a").click() +time.sleep(5) + +driver.find_element(By.XPATH, "//button[contains(text(),'add to cart')]").click() +time.sleep(5) + +driver.find_element(By.XPATH, "//button[contains(text(),'go to cart')]").click() +time.sleep(5) + +driver.find_element(By.XPATH, "//button[contains(text(),'Arrange call to proceed')]").click() +time.sleep(1000) diff --git a/Vanchan-E_ Anti_Pirates/sqlconnector.py b/Vanchan-E_ Anti_Pirates/sqlconnector.py new file mode 100644 index 00000000..44485a36 --- /dev/null +++ b/Vanchan-E_ Anti_Pirates/sqlconnector.py @@ -0,0 +1,38 @@ +import mysql.connector + +class SqlConnector: + def __init__(self) -> 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