On ne fait pas de la magie

«Toute technologie suffisamment avancée est indiscernable de la magie.» Arthur C. Clarke

  • Alerte Virus « Locky » : cryptage de vos données et demande de rançon

    Virus informatiqueDepuis mi-février, le virus informatique Locky sévit en France et aux USA ; une fois activé, il crypte vos données et les rend inutilisables. A partir de là des instructions s’affichent pour recevoir un code de décryptage contre paiement aux hackers. Il appartient ainsi à la catégorie des « ransomware » ou « rançongiciels ».

    Un ransomware, ou rançongiciel, est un logiciel malveillant qui prend en otage des données personnelles. Pour ce faire, un rançongiciel chiffre des données personnelles puis demande à leur propriétaire d’envoyer de l’argent en échange de la clé qui permettra de les déchiffrer. — article de wikipedia

    A savoir qu’à l’heure actuelle, il n’y a pas encore de méthode connue pour récupérer ses documents (autrement qu’en payant la rançon), il est donc fondamental de rester vigilant !

    Comment ça marche ?

    Vous recevez un mail accompagné bien souvent d’une soi-disante facture impayée en pièce jointe et c’est au moment d’ouvrir le fichier joint, un .zip ou un document Word, que le virus est activé. Une fois activé, tous vos fichiers sont cryptés, y compris les fichiers présents sur les périphériques. Ainsi si plusieurs pc sont connectés entre eux comme c’est souvent le cas dans les infrastructures, l’ensemble du parc informatique est infecté.

    Qui est touché ?

    On pense que les cibles principales des hackers sont avant tout des structures pouvant payer la rançon. Néanmoins des entreprises de plus en plus petites semblent à présent touchées (chaînes d’hôtel régionales, etc…). L’ encapsulation du virus dans un fichier word ou zip le rendant quasi invisible aux antivirus, celui-ci reste particulièrement simple à véhiculer et donc d’autant plus dangereux.

    Comment l’éviter ?

    En règle générale, vous ne devez jamais cliquer sur un lien, une adresse mail ou une pièce jointe, si vous n’êtes pas sûrs à 100% de la source du message. Il se peut également que le mail soit expédié par un contact connu, dans ce cas, si vous avez le moindre doute sur le document joint, envoyez d’abord un mail demandant confirmation à ce fameux contact.

    Quelques articles pour en savoir plus :
    – http://forum.malekal.com/locky-ransomware-crypto-ransomware-t54444.html
    – http://www.mosaiquefm.net/fr/5665/ransomware-locky-virus.html

  • Vider le cache de son navigateur, quel que soit le navigateur

    Vider son cache !Il arrive quelques fois, après avoir mis à jour votre site, que les modifications n’apparaissent pas tout de suite. Et pourtant tout semble en ordre… pas de panique !

    Cela est dû au cache de votre navigateur. En effet votre navigateur va garder en mémoire un certain nombre d’images et textes, ce qui lui évite de devoir les charger à chaque fois que vous visitez la même page, ce qui au final va augmenter la rapidité d’affichage de votre page et améliorer votre navigation.

    Donc pour forcer votre navigateur à « oublier » ce qu’il a précédemment enregistré, vous devez vider son cache.

    Seulement voilà suivant les navigateurs, Chrome, Internet Explorer, Mozilla Firefox, et leurs différentes versions et interfaces, on ne sait pas toujours où cliquer pour effectuer cette action.

    Il existe une méthode toute simple :

    1. Ouvrez votre navigateur
    2. Cliquez et maintenez enfoncées les touches CTRL, MAJ et SUPPR
    3. Une fenêtre apparaît, et il ne vous reste plus qu’à cocher l’option supprimer le cache.

    Ensuite rechargez votre page, et vos modifications devraient maintenant être prises en compte.

  • Erreur 80243004 lors d’un update Windows

    Lors de la préparation d’une formation Windows Server, je suis tombé sur un problème dont la cause m’a fait sourire.Erreur 80243004 lors d'un update Windows

    En appliquant les mises à jour sur une machine virtuelle Windows Server, j’obtiens une erreur 80243004 et tout l’update échoue.

    Un peu de recherche dans la base de connaissance Microsoft me donne la solution  (https://support.microsoft.com/kb/2837515) : il faut que l’icône de notification de Windows Update soit activée dans la zone de notification pour que les mises à jour puissent se faire !

    Je crois que c’est le bug le plus amusant que j’ai vu depuis quelques mois …

    PS : Petit truc pour résoudre plus rapidement vos problèmes : N’utilisez pas une recherche large sur Google pour ce genre de difficultés. Vous avez un problème clairement identifié, chez un éditeur, avec un numéro ? Aller directement chercher dans les informations mises à disposition par cet éditeur vous fera gagner beaucoup de temps en n’ayant pas à lire de nombreux messages décrivant le même problème, sans fournir de solutions, ou – pire – donnant des solutions douteuses.

  • Surcharger l’opérateur new pour empêcher l’allocation dynamique d’un objet en C++

    Parfois, il est nécessaire de restreindre des objets pour qu’ils ne puissent être utilisés qu’au travers de variables locales. Un cas typique est une classe qui utilise des ressources, allouées logiquement dans son constructeur, et libérées dans son destructeur.

    Voici un exemple que j’utilise parfois dans les formations au C++.

    Tout va bien si le programme détruit les objets lorsqu’ils n’en a plus besoin.
    C’est le cas si on emploie ces objets à l’aide de variables locales : lorsque le programme quitte la portée dans laquelle la variable existe (nous présumons bien sûr que la variable n’est pas statique), l’objet est détruit, et le passage dans le destructeur libère les ressources allouées dans le constructeur.

    Le risque est qu’un développeur crée un objet en utilisant une allocation dynamique, car il pourrait ensuite oublier de détruire cet objet, bloquant ainsi les ressources.

    Une solution pour supprimer ce risque consiste tout simplement à surcharger l’opérateur new de notre classe, de façon à empêcher l’allocation dynamique d’objets de cette classe. Voici un petit exemple qui montre le principe :

    class maClasse {
    public:
          string chaine;
          maClasse() {
    // allocation des ressources
         chaine = "Les ressources sont allouees";
    };
    ~maClasse() {
    // libération des ressources
          cout << "Les ressources sont liberees" << endl;
    }
    void *operator new (size_t taille) {
    throw 0;
    return new int; // peut renvoyer n'importe quoi : on ne passera jamais ici
    }
    };
    int main(int argc, char* argv[]) {
    { 
    // bloc pour montrer la réservation et la libération des ressources
           maClasse C1;
          cout << C1.chaine << endl;
    }
    try {
          maClasse * pC = new maClasse;
          cout << pC->chaine << endl;
    }
    catch (int e) {
          cout << "Exception : " << e << endl;
    }
    int attente;
    cin >> attente;
    return 0;
    }

    La sortie nous montre que nous avons bien utilisé la variable locale, en allouant, puis en libérant les ressources, mais que l’utilisation d’une allocation dynamique échoue :

    $ ./essai
    Les ressources sont allouees
    Les ressources sont liberees
    Exception : 0

     

  • Comment lancer une macro Excel VBA à l’ouverture de n’importe quel classeur ?

    C’est une question souvent posée sur Internet et les réponses sont pratiquement toujours la façon d’exécuter une macro à l’ouverture d’un classeur spécifique, en créant fort correctement un module Workbook_Open dans le conteneur ThisWorkBook de ce classeur.

    Mais comment utiliser Excel VBA pour avoir une macro lancée quel que soit le classeur ouvert, sans faire de modification dans chaque classeur ?

    Il faut écrire une classe qui permet de traiter les événements de la classe Application, puis affecter l’objet Application réel à cette nouvelle classe.

    Par exemple, dans un module de classe appelé MonApp, tapez le code suivant :

    Option Explicit
    Public WithEvents App As Application

    Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
    MsgBox (« Ouverture du classeur  » & Wb.Name)
    End Sub

    Puis dans le conteneur ThisWorkBook du fichier de macro personnel (PERSO.XLS), il faut instancier la classe MonApp et écrire un module Workbook_Open. Le code ressemble à ceci :

    Option Explicit
    Dim MonExcel As New MonApp

    Private Sub Workbook_Open()
    Set MonExcel.App = Application
    End Sub

    Et le tour est joué.

    Si ces opérations vous semblent de la magie noire, c’est qu’il vous manque quelques notions de programmation VBA que vous pouvez découvrir lors d’une formation à Excel..