22.2.08
Few years ago, a big controversy arose around the Microsoft’s new born CLR (Common Language Runtime), .Net framework and all accompanying media halo. Opinions were actually divided on the reliability of the platform, the robustness and performance of the programs written in managed code but it was still early to take conclusions.
I was fascinated by the focus on the object oriented model approach that was supposed to get rid of all the mess that VB6 Sunday programmers were spreading all around. I liked the very nice and intuitive Visual Studio IDE, the brand new elegant C# language, and later I loved the power of managed code within stored procedures of SQL server 2005.
My first program with Visual Studio was an ERP for a small company; it was an SQL server 2000 DBMS based solution. Development lasted for six months and I was looking in parallel for a reliable way to protect my soft. That was not really a critical issue because the product was so customized to the client that I hardly imagine another company using it. Anyway, I went through all imaginable protection schemes for that damned executable, and I was surprised to see that none of these protections will take more than one hour to be broken (when you used to code in assembler, an obfuscated code source is a kinda cookie).
At that time, I did not understand why Microsoft is replacing our old processor machine opcodes by this shit, why with this CLR virtual machine programs are so poorly protected and the first coming pseudo hacker is able to see MY sources? Why do I have to pay for Visual Studio, for an obfuscator and for a packer … to protect MY code? I’m not talking about my compiled program; no I’m talking about MY SOURCES.
Today, while trying a very nice conjugation program for my kids, my curiosity led me to see what protection scheme is used by the shareware and guess what: it was a .Net program. A curious like me must be a dumb-ass not to see the whole serial number generation routines with the help of Refractor:
Public Function B21(ByVal nom As String) As Integer
Dim num As Integer
Dim num2 As Integer
Dim objArray As Object()
num = 0
num2 = 0
goto Label_0077
Label_0006:
num = (num + CInt(Math.Floor(Math.Sqrt(Math.Abs((Math.Pow(CDbl(nom.Chars(num2)), 3) Mod 2147483648))))))
Console.WriteLine(String.Concat(New Object() { "lettre : ", DirectCast(nom.Chars(num2), Char), "code : ", CInt(num) }))
num2 = (num2 + 1)
Label_0077:
If (num2 < (nom.Length - 1)) Then
goto Label_0006
End If
num = CInt((CLng(((num * num) * num)) Mod &H80000000))
Console.WriteLine(("code : " & CInt(num)))
num = Math.Abs((num - (num Mod &H89B)))
Console.WriteLine(("code : " & CInt(num)))
Return numEnd Function
If we focus on this function we'll even discover a bug in the algorithm: the key is initialized to zero, while the loop is done (n-1) times where n is the number of character in the given name. So with a little logic, if the name I enter is only one char, it will not loop and the serial number will be zero as initialized previously. And of course it works.
The programmer is now losing money due to the fact that I’m able to see his source, anyone is even able to copy his ideas, give them a new look and release them in the market, he can change the code so that it will not be possible to demonstrate that he stole it.
To finish this long post, I’ll just say a fact: in my computer, for the new Office 2007, the folder \Office12 is having more than 200 PE files, but curiously none of these files have been compiled with the ‘.Net super technology’ and I (still curiously) wonder why!
30.1.08
Copyright : Ce post n'est pas de moi, je l'ai simplement reçu par mail, il est d'ailleurs repris sur plein d'autre forums.
On n'a pas souvent l'occasion, en ces temps agités, de se poser les vraies questions.
Et pourtant...
- POURQUOI tu peux avoir une pizza à ta maison plus vite qu'une ambulance ?
- POURQUOI il y a un stationnement pour handicapés en face des patinoires ?
- POURQUOI les gens commandent un double cheeseburger, des grosses frites et un coca... light ?
- POURQUOI ils nous vendent des saucisses à hot dog en paquet de 12 et des pains à hot dog en paquet de 8 ?
- POURQUOI Les femmes ne peuvent pas se mettre du mascara la bouche fermée?
- POURQUOI le mot 'abréviation' est si long ?
- POURQUOI pour arrêter Windows on doit cliquer sur Démarrer ?
- POURQUOI le jus de citron est fait de saveurs artificielles et le liquide vaisselle est fait de vrais citrons ?
- POURQUOI il n'y a pas de nourriture pour chat à saveur de souris ?
- POURQUOI ils stérilisent l'aiguille qui sert à l'euthanasie ?
- Tu connais ces boîtes noires indestructibles dans les avions...
POURQUOI est-ce qu'ils ne fabriquent pas l'avion au complet dans ce matériau ? - Si voler est si sécuritaire, POURQUOI l'aéroport s'appelle le 'terminal ?
- Et toujours... POURQUOI est-ce qu'on appuie plus fort sur les touches de la télécommande quand les piles sont presque à plat ?
- POURQUOI est-ce qu'on lave nos serviettes de bain ; est-ce qu'on n'est pas sensés être propres quand on s'essuie avec ?
- POURQUOI les pilotes kamikazes portent-ils un casque ?
Autres questions cruciales :
- Quand on étrangle un Schtroumpf, il devient de quelle couleur ?
- Comment les panneaux ' DÉFENSE DE MARCHER SUR LA PELOUSE ' arrivent-ils au milieu de celles-ci ?
- Quand l'homme a découvert que la vache donnait du lait, que cherchait-il exactement à faire à ce moment-là ?
- Si un mot dans le dictionnaire est mal écrit, comment s'en apercevra-t-on ?
- POURQUOI Noé n'a-t-il pas écrasé les deux moustiques ?
- Est-ce que les ouvriers de chez Lipton ont aussi une pause café ?
- POURQUOI les moutons ne rétrécissent pas quand il pleut ?
- POURQUOI Les établissements ouverts 24 heures sur 24 ont-ils des serrures et des verrous ?
27.1.08
Plus difficile : 9834 donne : 4, (4+3=7), (3+8=11, on écrit 1 et on retient 1), (8+9=17+ le 1 retenu = 18, on écrit 8 et on retient 1), (9+ le 1 retenu = 10). Résultat : 108174
Zabuza est un membre du village caché de la brume (Kirigakure). On l’appelle : le démon de la brume cachée. Le mot 'Zabuza' signifie en japonais « ne coupe jamais deux fois ».
Jeune, il a massacré d'une seule main tous étudiants de son école de ninja. Il a également essayé (sans réussir) un coup d'état sur le Mizukage, et il a été forcé de se sauver.
Il a le niveau de Jounin et c’est un ninja très habile à tuer silencieusement ses ennemis et puisqu'il vient du village de Kirigakure, il est très habile aux jutsus à l'eau et aux attaques basées sur la brume.


