De temps en temps, quelqu'un pose la question suivante : "Nous avons ajouté notre port d'application au fichier de services et maintenant une autre application l'utilise - pourquoi". La réponse est que le fichier de services ne réserve pas les numéros de port. Le fichier de services existe pour que les applications puissent appeler la fonction getservbyname pour trouver le numéro de port associé à un service ou appeler la fonction getservbyport pour trouver le nom d'un service associé à un numéro de port. Rien n'empêche deux services différents de correspondre au même numéro de port, bien que la fonction getservbyport ne renvoie que le premier. Il n'est pas non plus nécessaire qu'une application appelle la fonction getservbyname pour savoir quel port elle doit utiliser. Un développeur d'application peut simplement coder en dur un numéro de port ou permettre qu'il soit entré comme paramètre.
- Exécuter la commande
“netstat -numeric -all_sockets -PCB_addr”
et identifier l'intrus, dans ce cas le numéro de port qui m'intéresse est 13592.
netstat -numeric -all_sockets -PCB_addr
Active connections (including servers)
PCB Proto Recv-Q Send-Q Local Address Foreign Address
(state)
. . .
8e3aa300 tcp 0 0 *:13592 *:* LISTEN
. . .
ready 13:50:12
- Exécuter la commande
“analyze_system -request_line 'match dv; dump_onetcb 8e3aa300' -quit”
OpenVOS Release 17.0.1aj, analyze_system Release 17.0.1aj
Current process is 664, ptep 8E0EE800, Noah_Davids.CAC
sth_dvtx = 121 (stcp.m16_202)
- Exécuter la commande
“who_locked #stcp.m16_202”
pour déterminer quel processus utilise l'appareil.
stcp.m16_202:
Object is write locked by Barney_Rubble.Dev (login) on module
%vs#m1
executing stcp_calls.pm.