# Lancement processus a l'ouverture d'une appli



## Naviyou (7 Décembre 2013)

Bonjour, je suis complètement novice en la matière mais cela fait quelques semaines que je m'intéresse au sujet.
J'ai beaucoup chercher mais n'ai rien trouver de similaire à mon "problème".
J'ai compris qu'avec automator, je pouvais lancer un enregistrement vidéo sauvegardé sur mon disque dur.
Mon problème est le suivant :
Est il possible de déclencher ce processus d'enregistrement lorsqu'une application comme safari est lancée ?
Et même mieux (si possible) lorsqu'une URL définie ou une série de lettre est reconnue ?
Par exemple lorsque la page hotmail.fr s'ouvre ou lorsque quelqu'un saisie les lettres H.O.T.M.A.I.L sur le clavier ?
Je n'ai pas encore essayé de créer un processus d'enregistrement vidéo (je sais que c'est via QuickTime) mais est il possible que cela ce fasse en tâche de fond ? J'entends par la que la personne filmée ne s'en rende pas compte ?
Je suis en collocation et tout le monde peut utiliser mon iMac (même si a la base mes colocataires n'en ont pas le droit) j'en soupçonne quelques uns de lire mes mails pendant mon absence et j'aimerai savoir qui tout en ayant la preuve de ce que j'avance !
Merci d'avance pour votre aide.


----------



## ntx (7 Décembre 2013)

Arrête de chercher des solutions à la c....

Mac OSX est un système mulitutilisateur. Crée une session invité si tu veux permettre à d'autres d'utiliser ta machine et verrouille la tienne avec un mot de passe quand tu ne l'utilises pas.


----------



## Naviyou (7 Décembre 2013)

Bah ca m'aurai permis de me lancer sur cette appli passionnante qu'est automator voir même peut être un peu d' AppleScript.
Ma session possède un mot de passe mais quelqu'un le connait, la est le soucis et pas de session invité car a la base il n'ont pas a y toucher !!
J'aimerai juste "piéger" cette personne !
Je veux juste savoir si c'est faisable ou non ?
Mais merci pour ta réponse intéressante et surtout qui fait avancer la chose !


----------



## Nyx0uf (7 Décembre 2013)

Un enregistrement vidéo via QuickTime sera visible.

Pour la saisie des mots un keylogger (logKext par ex) ? mais ça devient de la paranoïa, et pas forcément évident à mettre en place.

Le plus simple : change ton mot-de-passe de session ?


----------



## Naviyou (8 Décembre 2013)

Merci pour ta reponse 
J'y ai pensé pour le mot de passe mais du coup je ne saurai jamais qui utilisait mon ordi !
Je suis effectivement un peu parano 
Et au lancement de safari c'est donc pas possible ?
Et n'y aurai t il pas un autre programme que QuickTime qui pourrai ce lancer en tâche de fond ?
Merci encore pour vos réponses !


----------



## Larme (8 Décembre 2013)

Alors...

Le changement de mot de passe est le plus simple.
L'intérêt est d'empêcher quelqu'un d'accéder à ton Mac/comptes persos où non... ?

Maintenant, enregistrer ce que va faire une utilisateur via de la vidéo, ça risque de plomber ta mémoire sur le disque dur.

Perso, je suppose que le plug simple est de regarder les logs pour voir si effectivement quelqu'un est passé à des heures où tu n'y étais pas.

Parcequ'entre KeyLogger et autres, je me demande si c'est réellement ta machine, ou si tu cherches plus à connaître la vie privée d'une tierce personne. Ne m'en veux pas, je suis toujours suspicieux par rapport à ce genre de demandes, même si tu viens prouver ta bonne foi.

Sinon, quelqu'un qui connait ton mot de passe de session, c'est toujours mauvais si tu n'as pas confiance en cette personne : _Trousseaux de Clés_, pour ne citer que lui, ou installation d'application tierces néfastes...


----------



## tatouille (9 Décembre 2013)

Bonjour, quelques pistes


```
/// SESSION MONITORING SEE .profile

#!/bin/sh

log() {
  W=$(who | cut -d' ' -f1 | sort -u)
  echo "$(date): " $W
}

while sleep 3600
do
  log >> .USER_SESSION.log
done &
```


```
/// ou avec launchctl  ~/Library/LaunchAgents 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>Program</key>
   <string>/path/to/script.sh</string>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>

-> ~/Library/LaunchAgents/com.user.loginscript.plist
-> launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist

voir aussi -> http://www.monkey.org/~dugsong/dsniff/ 

E.G binding local network traffic events
```


```
// VIDEO CAPTURE

sudo (mac)port install opencv

g++ capture.cpp -o capture_my_stupid_face \
-lopencv_core \
-lopencv_photo \
-lopencv_highgui \
-lopencv_calib3d \
-lopencv_features2d \
-lopencv_video \
-lopencv_imgproc \
-I /opt/local/include \
-I /opt/local/include/opencv \
-L /opt/local/lib


// capture.cpp
#include "cv.h"
#include "highgui.h"

int main(int, char**)
{
	cv::VideoCapture cap(0); // assuming built-in cam
	if(!cap.isOpened()) return -1;

	cv::Mat frame, edges;
	cv::namedWindow("edges",1);
	for(;;)
	{
		cap >> frame; // ceci est redirigé vers le frame-buffer pourrait etre simplement un fichier sans fenetre
		cv::cvtColor(frame, edges, CV_BGR2GRAY); // c'est pour l'effet video a la FBI :D
		cv::imshow("edges", edges); // show your stupid face :D
		if(cv::waitKey(30) >= 0) break;
	}
	return 0;
}

/* EOF */
```

Bien à vous.


----------



## quark67 (9 Décembre 2013)

Voici ce que je propose de faire, si tu souhaites identifier la personne qui utilise ton Mac à ton insu. Je suppose que ton Mac dispose d'une webcam.

La solution consistera à créer un script AppleScript sous la forme d'une application. Cette application tournera en tâche de fond. Il conviendra de masquer l'application avec une icône anodine à laquelle on ne prête pas attention. 

Pour prendre une photo, on utilisera la webcam via le logiciel isightcapture, qui est installé en ligne de commandes via le site Macports.org. Ce logiciel isightcapture sera lancé à partir d'AppleScript.

L'inconvénient est que lors de la prise de la photo, une petite lumière verte s'allume à côté de la webcam intégrée du Mac.

Pour mener à bien la détection de la personne qui utilise ton Mac à ton insu, il vaudrait mieux que tu sois absent à des horaires réguliers. Par exemple t'es absent du lundi au vendredi de 8h à 18h. Ainsi, si le Mac est réveillé durant cette plage horaire, c'est que ce n'est pas toi qui est devant le Mac. Et dans ce cas, on prend une photo via la webcam.

Le dernier problème à régler, c'est l'emplacement des photos prises. Il faudra les enregistrer à un emplacement suffisamment discret, pour qu'elles ne soient pas immédiatement visibles.
Je propose de les placer dans le dossier /Bibliothèque/Applications Support à la racine du disque (pas dans le dossier /Bibliothèque de l'utilisateur).

Si les détails d'implémentation t'intéressent, je préciserais ceux-ci.


----------



## Naviyou (17 Décembre 2013)

Bonjour,
Merci tatouille pour ta réponse qui m'a l'air super si j'y comprenais quelque chose.
J'arrive à "déchiffrer" de quoi il s'agit mais je ne suis pas encore "familiarisé" aux lignes de codes.
A ce sujet, car c'est quelque chose qui m'intéresse beaucoup, aurais-tu des noms d'ouvrages ou des liens qui me permettrait de m'initier a tout ça ?
Ca m'a l'air super ca Quark67 ! Un grand merci a toi !
Par contre je n'ai aucune idée sur comment faire.
Merci d'avance pour tes explications.
Juste par hasard, de courtes vidéos de 5, 10 min serait il possible ?


----------



## quark67 (17 Décembre 2013)

Tu es absent à des horaires réguliers ? Si oui, quand ? Sinon, il faudra que tu indiques manuellement chaque fois que tu t'absentes.
Peux-tu me préciser ceci ? (NB : AppleScript est parfaitement capable de savoir si on est un lundi, un mardi etc... Il n'y a aucun problème à ce niveau).


----------



## Naviyou (17 Décembre 2013)

Bonsoir Quark67, il y a effectivement des plages horaires ou je sais que mon Mac est susceptible d'être "squatter".
Ce serait :
Mercredi de 18h au jeudi 3h du matin
Jeudi de 18h au vendredi 3h du matin
Vendredi de 18h au samedi 3h du matin
Samedi de 12h à 23h59 même jour (pour faire simple)
Dimanche de 8h à 18h
Et pour ma question (au cas ou) de ce qui est de filmer de courte video ?
Merci encore.


----------



## tatouille (19 Décembre 2013)

Bonjour,

"J'arrive à "déchiffrer" de quoi il s'agit mais je ne suis pas encore "familiarisé" aux lignes de codes." 

alors que faites-vous sur un forum dédié aux "practiciens"? du "tapinage"? si c'est le cas, croyez moi cela finit toujours mal.

Bien à vous.


----------



## Naviyou (20 Décembre 2013)

Désolé si je vous ai offensé tatouille, je cherche juste à concrétiser ce que j'ai expliqué plus haut et par la même occasion me lancer dans le monde passionnant d'Automator et AppleScript.
C'est d'ailleurs pour cela que je m'en remet a vous pour me conseiller un site ou des ouvrages consacré aux débutants qui souhaitent ce "familiariser" avec ces "langages".
Je ne pense pas que cela mérite quelque aversion soit elle a mon égard.
Cordialement.


----------



## tatouille (21 Décembre 2013)

Bonjour,

vous ne m'avez pas offensé, mais je pense que maintenant, il faut que vous passiez  à la pratique, poster le ici, construisez le et apportez les réponses en fonction "des conseils", ainsi, c'est comme cela que l'on apprend et c'est aussi comme cela que l'on peut "voir" et vous aidez à répondre sur des points que vous ne comprendriez pas ou bloqueriez après de "vrais tentatives".

Il y a deux partis dans votre software, une qui concerne "la session utilisateur" et son "log", l'autre serait la capture video, ces deux parties nécessitent des "technologies" différentes, concentrez vous sur "le session tracker", 

ceci peut être mis rapidement en place grâce à launchctl, puis cela fait; "implementer" le "Program" lancé lors de l'ouverture de session, il pourrait dans un premier temps juste écrire un fichier "ok ca marche".

configurer votre "environement developer"

+ installer xcode via le store ou créer vous un "compte-developer"
+ installer macports  http://www.macports.org/ 
+ mettez en place ce qui concerne l'ouverture session utilisateur


```
---------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>Label</key>
   <string>com.user.loginscript</string>
   <key>Program</key>
   <string>/session_tracker</string>
   <key>RunAtLoad</key>
   <true/>
</dict>
</plist>
-------------------

//
// session_tracker.c
//

#include <stdio.h>

int main(int argc, const char * argv[])
{
	FILE * fp;
	fp = fopen("/tmp/session_tracker.txt", "wb+");
	if (fp) {
		fwrite("hello", sizeof(char), sizeof(char) * 5, fp);
		fclose(fp);
	}
	return 0;
}

/* EOF */
---------------------------------------

$ cc session_tracker.c -o session_tracker
$ sudo mv session_tracker /
$ open /
$ sudo chflags hidden /session_tracker
$ open /
$ launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
$ cat /tmp/session_tracker.txt
```

quand vous aurez accompli "l'architecture" de base et la faite fonctionner, vous penserez aux différents choix et stratégies "que se passe t-il  dans session_tracker" que faisons nous.

Bien à vous.


----------

