Fleurs de méninges

Dans la catégorie fleurs de méninges voilà un petit script bash pour Mac OS X qui permet de contrôler et d’éventuellement éradiquer quelques adwares qui sont apparus sur cet OS depuis quelques temps[1].

Voilà le code source :

#!/bin/sh

# Check adwares on hard-disk
# From http://support.apple.com/fr-fr/HT203987
# Author: Franck Paul (http://open-time.net/)
# Licence : GPL v2

check_process()
{
	action="$1"
	adware="$2"
	item="$3"

	PID=`ps -eaf | grep "$item" | grep -v grep | awk '{print $2}'`
	if [[ "" !=  "$PID" ]]; then
		if [[ $action == 'remove' ]]; then
		  echo "$adware: killing $item"
		  kill -9 $PID
		else
		  echo "$adware: $item process found"
		fi
	fi
}

check_item()
{
	action="$1"
	adware="$2"
	item="$3"

	if [[ -e "`eval echo ${item//>}`" ]]; then
		if [[ $action == 'remove' ]]; then
			echo "$adware: $item found and deleted"
			rm -rf "`eval echo ${item//>}`"
		else
			echo "$adware: $item found"
		fi
	fi
}

check_Downlite()
{
	# Downlite, also known as VSearch
	adware="Downlite"
	echo "checking $adware ..."

	check_item $1 $adware "/Library/Application Support/VSearch"
	check_item $1 $adware "/Library/LaunchAgents/com.vsearch.agent.plist"
	check_item $1 $adware "/Library/LaunchDaemons/com.vsearch.daemon.plist"
	check_item $1 $adware "/Library/LaunchDaemons/com.vsearch.helper.plist"
	check_item $1 $adware "/Library/LaunchDaemons/Jack.plist"
	check_item $1 $adware "/Library/PrivilegedHelperTools/Jack"
	check_item $1 $adware "/System/Library/Frameworks/VSearch.framework"
	check_item $1 $adware "/System/Library/Frameworks/v.framework"
}

check_Conduit()
{
	# Conduit, also known as Trovi, MyBrand, or Search Protect
	adware="Conduit"
	echo "checking $adware ..."

	check_item $1 $adware "/Applications/SearchProtect.app"
	check_item $1 $adware "/Library/LaunchAgents/com.conduit.loader.agent.plist"
	check_item $1 $adware "/Library/LaunchDaemons/com.perion.searchprotectd.plist"
	check_item $1 $adware "/Library/Application Support/SIMBL/Plugins/CT2285220.bundle"
	check_item $1 $adware "~/Library/Internet Plug-Ins/ConduitNPAPIPlugin.plugin"
	check_item $1 $adware "~/Library/Internet Plug-Ins/TroviNPAPIPlugin.plugin"
	check_item $1 $adware "/Library/InputManagers/CTLoader/"
	check_item $1 $adware "/Library/Application Support/Conduit/"
	check_item $1 $adware "~/Conduit/"
	check_item $1 $adware "~/Trovi/"
}

check_Genieo()
{
	# Genieo, also known as InstallMac
	adware="Genieo"
	echo "checking $adware ..."

	# Kill processes if running
	# -> Genieo
	# -> InstallMac
	check_process $1 $adware "Genieo"
	check_process $1 $adware "InstallMac"

	check_item $1 $adware "/private/etc/launchd.conf"
	check_item $1 $adware "/Applications/Genieo"
	check_item $1 $adware "/Applications/InstallMac"
	check_item $1 $adware "/Applications/Uninstall Genieo"
	check_item $1 $adware "/Applications/Uninstall IM Completer.app"
	check_item $1 $adware "~/Library/LaunchAgents/com.genieo.completer.download.plist"
	check_item $1 $adware "~/Library/LaunchAgents/com.genieo.completer.update.plist"
	check_item $1 $adware "/Library/LaunchAgents/com.genieoinnovation.macextension.plist"
	check_item $1 $adware "/Library/LaunchAgents/com.genieoinnovation.macextension.client.plist"
	check_item $1 $adware "/Library/LaunchAgents/com.genieo.engine.plist"
	check_item $1 $adware "/Library/LaunchAgents/com.genieo.completer.update.plist"
	check_item $1 $adware "~/Library/LaunchAgents/com.genieo.completer.ltvbit.plist"
	check_item $1 $adware "/Library/LaunchDaemons/com.genieoinnovation.macextension.client.plist"
	check_item $1 $adware "/Library/PrivilegedHelperTools/com.genieoinnovation.macextension.client"
	check_item $1 $adware "/usr/lib/libgenkit.dylib"
	check_item $1 $adware "/usr/lib/libgenkitsa.dylib"
	check_item $1 $adware "/usr/lib/libimckit.dylib"
	check_item $1 $adware "/usr/lib/libimckitsa.dylib"
	check_item $1 $adware "~/Library/Preferences/com.apple.genieo.global.settings.plist"
	check_item $1 $adware "~/Library/SavedState/com.genieo.RemoveGenieoMac.savedState"
	check_item $1 $adware "~/Library/Application Support/Genieo/"
	check_item $1 $adware "~/Library/Application Support/com.genieoinnovation.Installer/"
	check_item $1 $adware "~/Library/Saved Application State/com.genieo.RemoveGenieoMac.savedState/"
	check_item $1 $adware "/Library/Frameworks/GenieoExtra.framework"
}

show_help()
{
	echo "usage: sudo adware-check.sh [check|remove]"
}

# Run adware's checks

cmd=$1
if [[ -z $1 ]]; then
	# show help
	show_help
	exit 0
else
	if [ $1 == 'check' ] || [ $1 == 'remove' ]; then
		if [[ $1 == 'check' ]]; then
			echo "Checking"
			echo "--------"
		else
			echo "Removing"
			echo "--------"
		fi
		echo ""

		check_Downlite $1
		check_Conduit $1
		check_Genieo $1

		echo ""
		if [[ $1 == 'remove' ]]; then
			echo "Notice"
			echo "------"
			echo " If some files have been founded and deleted and or some processes have been killed,"
			echo " you should empty trash, reboot and launch again this script."
			echo ""
		fi
	else
		# unknown command, show help
		echo "$1 command unknown"
		show_help
		exit 1
	fi
fi

N’oubliez pas d’appliquer un petit chmod +x adware_check.sh une fois celui-ci créé et enregistré pour être en mesure de le lancer ensuite. Il attend un argument, check pour le contrôle ou remove pour la suppression dans le cas où il en aurait trouvé un ou plusieurs. Notez qu’il vous probablement lancer ce script avec sudo, au moins pour la suppression, vu qu’il va toucher à des dossiers systèmes.

N’oubliez pas de vider la corbeille et de redémarrer s’il y a eu une ou plusieurs suppressions, histoire de repartir sur une session propre.

J’inclus le script en pièce jointe de ce billet si vous préférez le télécharger tel quel.

Il y a surement plus simple et/ou plus efficace comme façon d’écrire ce script, mais il a le mérite de fonctionner, et comme je suis membre honoraire du Feignasse Social Club

Note

[1] Le détail de ces adwares est précisé sur cette page de support d’Apple.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12155

Haut de page