1 changed files with 0 additions and 97 deletions
@ -1,97 +0,0 @@
@@ -1,97 +0,0 @@
|
||||
name: Duplicate malware/virus flags issues handler |
||||
|
||||
on: |
||||
issues: |
||||
types: [opened] |
||||
|
||||
jobs: |
||||
check_keywords: |
||||
runs-on: ubuntu-22.04 |
||||
steps: |
||||
- name: Checkout repository |
||||
uses: actions/checkout@v4 |
||||
with: |
||||
persist-credentials: false |
||||
|
||||
- name: Check for keywords in issue title and body |
||||
id: check_keywords |
||||
run: | |
||||
# Define the list of keywords |
||||
keywords=("Virus" "Malware" "trojan" "Windows Defender" "Antivirus" "bitdefender" "defender" "kaspersky" "unwanted" "harmful" "HackTool:Win64/ExplorerPatcher!MTB" "HackTool:Win64/Patcher!MSR" "HackTool" "Backdoor" "detection" "Norton" "Windows Security" "Win64:MalwareX-gen" "Microsoft Defender" "infected" "Potentially unwanted app found" "potentially unwanted software" "VIRUSTOTAL") |
||||
|
||||
# Get the issue title and body from the event context |
||||
ISSUE_TITLE="${{ github.event.issue.title }}" |
||||
|
||||
# Convert both title and body to lowercase for case-insensitive comparison |
||||
ISSUE_TITLE_LOWER=$(echo "$ISSUE_TITLE" | tr '[:upper:]' '[:lower:]') |
||||
|
||||
# Check if any of the keywords are present in the title or body |
||||
for keyword in "${keywords[@]}"; do |
||||
# Convert the keyword to lowercase as well |
||||
KEYWORD_LOWER=$(echo "$keyword" | tr '[:upper:]' '[:lower:]') |
||||
|
||||
if [[ "$ISSUE_TITLE_LOWER" == *"$KEYWORD_LOWER"* ]] || [[ "$ISSUE_BODY_LOWER" == *"$KEYWORD_LOWER"* ]]; then |
||||
echo "'$keyword' found" |
||||
echo "contains_keyword=true" >> $GITHUB_ENV |
||||
break |
||||
fi |
||||
done |
||||
|
||||
- name: Comment, label, and close issue if keyword found |
||||
if: env.contains_keyword == 'true' # Only run if a keyword was found |
||||
run: | |
||||
ISSUE_NUMBER="${{ github.event.issue.number }}" |
||||
REPO="${{ github.repository }}" |
||||
|
||||
# Define the body of the comment with Markdown formatting |
||||
COMMENT_BODY="> [!CAUTION] |
||||
><ins>**Microsoft and other major antivirus vendors have flagged ExplorerPatcher as \"malware\".**</ins> This is likely due to Microsoft's hatred against ExplorerPatcher, not because it contains a virus or such. Flags from Microsoft usually spread to other antivirus vendors. |
||||
|
||||
Please include the following files and folders in your antivirus' exclusion list to prevent issues due to antivirus detections: |
||||
|
||||
\`\`\` |
||||
C:\Program Files\ExplorerPatcher |
||||
%APPDATA%\ExplorerPatcher |
||||
C:\Windows\dxgi.dll |
||||
C:\Windows\SystemApps\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy |
||||
C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy |
||||
\`\`\` |
||||
|
||||
For Defender, you can run the following script in PowerShell as an administrator: |
||||
|
||||
\`\`\` |
||||
Add-MpPreference -ExclusionPath \"C:\Program Files\ExplorerPatcher\" |
||||
Add-MpPreference -ExclusionPath \"\$env:APPDATA\ExplorerPatcher\" |
||||
Add-MpPreference -ExclusionPath \"C:\Windows\dxgi.dll\" |
||||
Add-MpPreference -ExclusionPath \"C:\Windows\SystemApps\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\" |
||||
Add-MpPreference -ExclusionPath \"C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy\" |
||||
\`\`\` |
||||
|
||||
### **Failure to exclude ExplorerPatcher's files may result in inability to install/uninstall ExplorerPatcher and explorer.exe being unable to start.** |
||||
|
||||
If you do not trust this process, please refrain from using ExplorerPatcher and look for alternatives instead. |
||||
|
||||
Microsoft, if you are reading this, please reconsider the detections as [there are a lot of users who trust this program and that risks from future EP developers are a thing.](https://www.youtube.com/watch?v=R50myh-AAe0) |
||||
|
||||
This issue was closed automatically. You want to discuss this in https://github.com/valinet/ExplorerPatcher/issues/3670." |
||||
|
||||
# Escape the Markdown content for proper JSON formatting |
||||
COMMENT_BODY_ESCAPED=$(printf "%s" "$COMMENT_BODY" | jq -Rs .) |
||||
|
||||
# Post a comment on the issue with formatted text |
||||
curl -X POST \ |
||||
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ |
||||
-d "{\"body\": $COMMENT_BODY_ESCAPED}" \ |
||||
"https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER/comments" |
||||
|
||||
# Add the "duplicate" label to the issue |
||||
curl -X POST \ |
||||
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ |
||||
-d '{"labels":["duplicate"]}' \ |
||||
"https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER/labels" |
||||
|
||||
# Close the issue |
||||
curl -X PATCH \ |
||||
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ |
||||
-d '{"state": "closed"}' \ |
||||
"https://api.github.com/repos/$REPO/issues/$ISSUE_NUMBER" |
||||
Loading…
Reference in new issue