PluginBench
Skill
Review
Audit score 70

avast-premium-security-detection

aradotso/security-skills

How to install avast-premium-security-detection

npx skills add https://github.com/aradotso/security-skills --skill avast-premium-security-detection
Claude Code
Cursor
Windsurf
Cline
Full instructions (SKILL.md)

Source of truth, from aradotso/security-skills.


name: avast-premium-security-detection description: Identify and analyze suspicious software distribution repositories claiming to offer cracked or pirated security software triggers:

  • analyze this avast repository for legitimacy
  • check if this security software repo is malware
  • detect pirated antivirus distribution attempts
  • identify fake security software repositories
  • scan for keygen and crack malware patterns
  • investigate suspicious avast premium offers
  • verify authenticity of antivirus download sources
  • detect software piracy scam repositories

Avast Premium Security Repository Analysis

Skill by ara.so — Security Skills collection.

Overview

This project appears to be a malicious repository disguised as a legitimate Avast Premium Security distribution. It exhibits multiple red flags characteristic of malware distribution, software piracy scams, and credential theft operations.

Critical Warning Signs

Repository Indicators

  • Claims to offer "Full Version Installer" with "Keygen Activation"
  • Promises "Pre-Activated" license keys and "Premium Loader Serial"
  • Uses excessive emojis and keyword stuffing in description
  • High artificial star growth rate (5 stars/day) suggesting manipulation
  • No actual README content provided
  • C++ language tag despite likely being a malware dropper
  • Zero forks and zero open issues (suspicious for "popular" software)

Malware Distribution Patterns

// Typical pattern in fake security software repos:
// 1. Claims legitimate branding (Avast, Norton, McAfee)
// 2. Offers "cracked" or "activated" versions
// 3. Contains executables that are actually:
//    - Ransomware
//    - Cryptominers
//    - Information stealers
//    - Backdoors/RATs

Detection Methods

Static Analysis Indicators

// Check for common malware signatures in executables
#include <iostream>
#include <fstream>
#include <vector>

bool checkSuspiciousStrings(const std::string& filePath) {
    std::vector<std::string> suspiciousPatterns = {
        "keygen",
        "crack",
        "patch",
        "loader",
        "activator",
        "powershell.exe -encodedcommand",
        "\\AppData\\Roaming\\",
        "discord.com/api/webhooks/",
        "pastebin.com/raw/",
        "C2_SERVER"
    };
    
    std::ifstream file(filePath, std::ios::binary);
    if (!file.is_open()) return false;
    
    std::string content((std::istreambuf_iterator<char>(file)),
                        std::istreambuf_iterator<char>());
    
    for (const auto& pattern : suspiciousPatterns) {
        if (content.find(pattern) != std::string::npos) {
            std::cout << "ALERT: Found suspicious pattern: " 
                      << pattern << std::endl;
            return true;
        }
    }
    return false;
}

Repository Metadata Analysis

#include <nlohmann/json.hpp>
#include <string>

struct RepoRiskScore {
    int score = 0;
    std::vector<std::string> flags;
    
    void analyzeMetadata(const nlohmann::json& metadata) {
        // Check description for piracy keywords
        std::string desc = metadata.value("description", "");
        std::vector<std::string> redFlags = {
            "keygen", "crack", "activation", "pre-activated",
            "loader", "serial", "full version", "premium"
        };
        
        for (const auto& flag : redFlags) {
            if (desc.find(flag) != std::string::npos) {
                score += 15;
                flags.push_back("Piracy keyword: " + flag);
            }
        }
        
        // Check star velocity (stars per day)
        int stars = metadata.value("stars", 0);
        // Artificial growth pattern
        if (stars > 50 && metadata.value("forks", 0) == 0) {
            score += 30;
            flags.push_back("Suspicious star/fork ratio");
        }
        
        // Check for missing README
        if (metadata.value("readme_length", 0) < 100) {
            score += 20;
            flags.push_back("No meaningful README");
        }
        
        // Mismatched language (claims C++ for malware dropper)
        if (metadata.value("language", "") == "C++") {
            score += 10;
            flags.push_back("Suspicious language claim");
        }
    }
    
    std::string getRiskLevel() {
        if (score >= 60) return "CRITICAL - Likely malware";
        if (score >= 40) return "HIGH - Piracy scam";
        if (score >= 20) return "MEDIUM - Suspicious";
        return "LOW";
    }
};

Defensive Code Examples

Safe Software Verification

#include <openssl/sha.h>
#include <curl/curl.h>
#include <sstream>
#include <iomanip>

class SoftwareVerifier {
public:
    // Verify against official vendor checksums
    static bool verifyOfficialChecksum(
        const std::string& filePath,
        const std::string& officialSHA256
    ) {
        unsigned char hash[SHA256_DIGEST_LENGTH];
        
        FILE* file = fopen(filePath.c_str(), "rb");
        if (!file) return false;
        
        SHA256_CTX sha256;
        SHA256_Init(&sha256);
        
        const int bufSize = 32768;
        char* buffer = new char[bufSize];
        int bytesRead = 0;
        
        while ((bytesRead = fread(buffer, 1, bufSize, file))) {
            SHA256_Update(&sha256, buffer, bytesRead);
        }
        
        SHA256_Final(hash, &sha256);
        fclose(file);
        delete[] buffer;
        
        std::stringstream ss;
        for(int i = 0; i < SHA256_DIGEST_LENGTH; i++) {
            ss << std::hex << std::setw(2) << std::setfill('0') 
               << (int)hash[i];
        }
        
        return ss.str() == officialSHA256;
    }
    
    // Check if download source is official
    static bool isOfficialSource(const std::string& url) {
        std::vector<std::string> officialDomains = {
            "avast.com",
            "avast-update.com"  // Official update domain
        };
        
        for (const auto& domain : officialDomains) {
            if (url.find(domain) != std::string::npos) {
                return true;
            }
        }
        return false;
    }
};

Runtime Behavior Monitoring

#include <windows.h>
#include <psapi.h>

class BehaviorMonitor {
public:
    static bool detectMaliciousBehavior(DWORD processId) {
        HANDLE hProcess = OpenProcess(
            PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 
            FALSE, 
            processId
        );
        
        if (!hProcess) return false;
        
        // Check for suspicious network connections
        if (hasUnauthorizedNetworkActivity(processId)) {
            CloseHandle(hProcess);
            return true;
        }
        
        // Check for file system modifications
        if (modifiesSystemFiles(processId)) {
            CloseHandle(hProcess);
            return true;
        }
        
        // Check for registry tampering
        if (tampersWithRegistry(processId)) {
            CloseHandle(hProcess);
            return true;
        }
        
        CloseHandle(hProcess);
        return false;
    }
    
private:
    static bool hasUnauthorizedNetworkActivity(DWORD pid) {
        // Monitor for connections to known C2 servers
        // Implementation would check netstat/connection tables
        return false;  // Placeholder
    }
    
    static bool modifiesSystemFiles(DWORD pid) {
        // Monitor file system changes in protected areas
        return false;  // Placeholder
    }
    
    static bool tampersWithRegistry(DWORD pid) {
        // Monitor registry modifications
        return false;  // Placeholder
    }
};

Legitimate Alternatives

Download Avast from Official Sources Only

// Configuration for legitimate downloads
const std::string OFFICIAL_AVAST_URL = "https://www.avast.com/download";
const std::string OFFICIAL_DOWNLOAD_DOMAIN = "avast.com";

// Environment variable for license (never hardcode)
// export AVAST_LICENSE_KEY=your-legitimate-license-key

std::string getLicenseKey() {
    const char* key = std::getenv("AVAST_LICENSE_KEY");
    if (key == nullptr) {
        std::cerr << "No license key found. "
                  << "Purchase from https://www.avast.com" 
                  << std::endl;
        return "";
    }
    return std::string(key);
}

Red Flag Checklist

When evaluating security software repositories:

  1. Official Source: Only download from vendor websites
  2. Valid License: Purchase legitimate licenses
  3. Digital Signature: Verify code signing certificates
  4. Checksum Verification: Match SHA256 hashes
  5. Never Trust: "Cracked", "Keygen", "Pre-activated" versions
  6. Avoid: Third-party download sites
  7. Report: Repositories distributing pirated software

Reporting Malicious Repositories

# Report to GitHub
# Use GitHub's report abuse feature at:
# https://github.com/contact/report-content

# Report to security vendors
# Avast Threat Labs: threatlabs@avast.com

Conclusion

This repository is extremely likely to be malicious. Never download security software from unofficial sources, especially those promising "cracked" or "pre-activated" versions. Such repositories typically distribute:

  • Ransomware
  • Credential stealers
  • Cryptominers
  • Remote access trojans
  • Spyware

Always obtain security software directly from the vendor's official website and use legitimate license keys.