personnellement je ferai un petit hook sur l'url protocol http dans la base de registre, comme ça, osef de savoir quel navigateur on utilise, c'est directement le protocole qui est visé.
hook sur cette clé :
HKEY_CLASSES_ROOT\http\shell\open\command
et remplacement des données par défaut (j'utilise firefox)
"C:\Program Files\Mozilla Firefox\firefox.exe" -requestPending -osint -url "%1"
un petit :
► Afficher le texte
Code : Tout sélectionner
If Not @Compiled Then MsgBox(262208, "DEBUG", "Merci de me compiler avant usage")
$COM = $CMDLINE
If $COM[0] > 0 Then
msgbox(0,"DEBUG", $CMDLineRaw)
exit
endif
EndIf
devrais permettre de savoir si ca nous retourne bien l'url...
par "Le chemin de mon programme" "%1"
analyse de la source
si ok, on affiche la page shellexecute("url")
si Nok on affiche un message interdisant l'acces en stockant un page html qqp sur l'ordi shellexecute("chemin du fichier html ou php") et envoi du lien dans le fichier hosts ("C:\WINDOWS\system32\drivers\etc\hosts") en respectant la syntaxe
J'avoue ne pas avoir tester, je ne sais donc pas si c'est viable, mais c'est la première chose que j'aurais testé.
Edit: qui plus est, le fait d'interevenir directement dans la base de registre fait que votre programme n'est pas résidant, c'est à dire qu'il ne s'exécute qu'au moment ou on clique sur un lien "http://" donc en gros 75/100 secondes (ils ont intérêt à être véloce pour kill le process ^^)
Edit2: chercher les mots clé avec un petit _StringBetween, c'est relativement rapide à mettre en place.