force_bind fonctionne avec IPv4 et IPv6. La syntaxe de force_bind est très simple comme le montre les exemples suivants :
1. FORCE_BIND_ADDRESS=127.0.0.1 FORCE_BIND_PORT=33 LD_PRELOAD=${LD_PRELOAD}:/usr/lib/force_bind.so un_binaire # force le bind() sur 127.0.0.1/33.
2. FORCE_BIND_ADDRESS=127.0.0.2 LD_PRELOAD=${LD_PRELOAD}:/usr/lib/force_bind.so un_binaire # force le bind() sur 127.0.0.2
NdM : un « petit » outil comprenant une soixantaine de ligne de C, avec tout le packaging pour avoir le configure/make/make install, qui peut néanmoins être bien pratique lorsque l'on tombe sur un binaire dynamique n'offrant pas d'options paramétrables pour le réseau ou écoutant trop largement sur toutes les interfaces réseau plutôt que sur une seule. À noter que cela ne marchera pas (dans la version actuelle 0.4 en tout cas) si le binaire veut écouter sur plusieurs couples adresse/port, puisqu'un seul couple FORCE_BIND_ADDRESS/FORCE_BIND_PORT est prévu.
Aller plus loin
- Le site de Catalin(ux) (18 clics)
# Remplacement de port
Posté par Damien Thébault . Évalué à 5.
Des conditions ça serait cool aussi, et des opérations +/- par rapport au port original:
!(port > 1024): port+8000
Pour l'adresse il faudrait:
- pouvoir mapper (y compris INADDR_ANY) dans une autre IP (ou INADDR_ANY pourquoi pas)(à voir pour l'IPv6 quand même).
- pouvoir ignorer certaines
Mettre tout ça dans un fichier de conf qu'on choisit dans une variable d'environnement.
(Bon après il faut voir l'utilité d'avoir un truc compliqué aussi, la quantité de programmes qui ont besoin de ça est du genre faible, mais ça peut être un outil utile quand même)
[^] # Re: Remplacement de port
Posté par geb . Évalué à 2.
(Bon après il faut voir l'utilité d'avoir un truc compliqué aussi, la quantité de programmes qui ont besoin de ça est du genre faible, mais ça peut être un outil utile quand même)
Au hasard, ntpd, boa et je doute que ce soit les seuls.
# Mots-clef C++ dans du code C
Posté par rewind (Mastodon) . Évalué à 1.
[^] # Re: Mots-clef C++ dans du code C
Posté par M . Évalué à 5.
Donc soit du code en C soit en C++, mais pour les 2 (donc je ne voie pas pourquoi utiliser new est une erreur).
D'ailleurs je te conseil de regarder le code du noyau linux include/linux/list.h . C'est plein de new, les dev kernel sont vraiment des incapables !!!
Les gens qui veule compiler du code C avec un compilo C++ ne devrait s'orienter vers un autre langage ...
[^] # Re: Mots-clef C++ dans du code C
Posté par claudex . Évalué à 2.
Tu veux dire que les dev de gcc sont des incapables? http://gcc.gnu.org/wiki/gcc-in-cxx
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Mots-clef C++ dans du code C
Posté par calandoa . Évalué à 3.
D'ailleurs il existe des constructions en C99 intrinsèquement incompatibles avec le C++, comme les structures se terminant par un tableau de taille variable, qu'il serait impossible de dériver.
[^] # Re: Mots-clef C++ dans du code C
Posté par rewind (Mastodon) . Évalué à 1.
[^] # Re: Mots-clef C++ dans du code C
Posté par lolop (site web personnel) . Évalué à 1.
Ou simplement à reprendre des sources existants C pour les intégrer dans un projet plus large en C++, sans avoir le temps de tout rewrapper ?
Et je connais beaucoup de gens qui utilisent les compilos C++ pour leur qualité sur le contrôle de type, parfois qq possibilités du C++ (ex. passage par référence), et qui ont toute mon estime pour le boulot qu'ils font.
Bon code.
A+
PS. Bon, les experts de Java vont nous départager en sortant Eclipse et le refactoring de code...
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
# quelques détails
Posté par neologix . Évalué à 2.
LD_PRELOAD permet de remplacer les appels aux bibliothèques, (pas les appels systèmes, mais comme la plupart des appels systèmes ont des wrappers...), ce qui est utile non seulement à un attaquant, mais aussi pour tracer, introduire des erreurs aléatoires (par exemple lors d'un appel à malloc), tracer l'occupation mémoire, et ce genre de choses.
# Et iptable
Posté par Sébastien Koechlin . Évalué à 5.
iptable
On peut altérer les paquets entrants et sortants pour modifier de nombreux paramètres; en particulier le port, l'adresse IP, l'interface utilisées... Cela permet de faire des "redirections".
Attention, elle ne couvre pas tout à fait les mêmes cas d'usage.
# Existe déjà ailleurs
Posté par geb . Évalué à 4.
(Pour la petite histoire, vserver, c'est principalement un chroot++ construit en enchainnés quelques petits utilitaires comme ça, typiquement pour supprimer des caps posix, reduire les ulimit etc)
Il doit aussi y avoir des choses du même genre de disponible si on regarde du coté des demontools, de runit etc vu qu'il y a plein de petits utilitaires qui gravitent autour.
# 127.0.0.1/33.
Posté par geb . Évalué à 4.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.