Annonce

Réduire
Aucune annonce.

Algo de crypto by me

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • #16
    il est en cours. pas prêt d'être terminé pour le moment.
    sigpic

    Cyprium Download Link

    Plus j'étudie plus j'me rends compte que je n'sais rien.

    †|

    Commentaire


    • #17
      c'est long a faire un algo de crypto,même moi je suis pas capable d'en faire un.
      Je débute en même temps.
      Faaf

      Commentaire


      • #18
        Bon, je suis pas un boss en crypto mais comme les solutions les plus simples sont souvent les meilleurs que je ne rien faire de compliqués dans ce domaines je peut toujours essayer.
        Si j'ai bien compris tu voudrais que i(=image=caractères spéciaux) ne soit pas visible dans l'algo c'est bien ça?
        Are hackers a threat? The degree of threat presented by any conduct, whether legal or illegal, depends on the actions and intent of the individual and the harm they cause.
        Kevin Mitnick

        Commentaire


        • #19
          Si je comprend bien, tu cherches à chiffrer une image avec un algorithme récursif (x=...x...) en modifiant les pixels de l'image, tout en rajoutant tes informations à transférer. Une sorte de stéganographie polymorphe. Est-ce que c'est ça ?

          Sinon ton post est assez énigmatique, j'essaye tant bien que mal de déchiffrer =D

          Edit : Ou non explication 2 possible. Tu cherches à avoir un algorithme qui soit à la fois l'information chiffré et l'algorithme de déchiffrement. En soit un fichier contenant l'algorithme qui va lui permettre de se déchiffrer lui même pour afficher le message (texte ou image).

          Alors j'ai bon ou pas ?
          Dernière modification par Yarflam, 02 décembre 2012, 00h32.
          ~ Yarflam ~

          ❉ L'Univers se dirige vers son ultime perfection ❉

          Commentaire


          • #20
            1] Non.
            2] Non.



            En fait, c'est tout simple, je ne me suis peut-être pas exprimé au mieux.

            Pour faire clair :

            ===MACHINE A===
            1. Ouverture logiciel de chiffrement.
            2. Edition de l'input (du bon français, donc ; ou tout autre langue, bref).
            3. Conversion de l'input en [texte <--> caractères non ASCII] = output.
            4. Envoi de l'output à un destinataire.

            ===MACHINE B===
            1. Ouverture logiciel de déchiffrement.
            2. Conversion du message chiffré en message déchiffré

            Tout simple (à ce stade de conception de l'algo ; il n'y a aucun échange de clé pour le moment, rien).

            Donc, ma seule question ici est :

            - Comment faire en sorte que le logiciel (développé en C) puisse convertir "lettre alphabet arabe = A" en "lettre alphabet spécial = SYMBOLE_1" sans que celui-ci puisse être "rétroingéniéré". Car, en effet, si on accède au source, on voit que "A = $" et il ne suffit plus qu'à générer la table de conversion pour faire sauter l'algo. En gros, ce que je dis est que la faille est située dans le logiciel qui pourrait être RE. Et ma question est donc :

            - Comment obfusquer de façon efficace mon code source afin qu'il ne soit pas désobfuscable ?

            Et accessoirement une autre question :

            - Comment faire de ces symboles non-ASCII des symboles lisibles sur n'importe quelle machine SANS l'aide du logiciel. En gros, créer un "nouvel alphabet" conçu de caractères qui ne sont, actuellement, non pris en charge par la norme en vigueur. Je suis quasi sûr qu'il y a possibilité de le faire, mais je ne vois pas comment.
            sigpic

            Cyprium Download Link

            Plus j'étudie plus j'me rends compte que je n'sais rien.

            †|

            Commentaire


            • #21
              C'est aussi clair que de l'eau de roche, merci.

              Finalement ma deuxième explication possible permet de répondre à ta question.
              Tu connais le MD5 ... forcément ! Le principe se base sur l'intégrité du contenu. Une petite modification est le code est totalement différent.
              Imagines maintenant un code de ce genre (php) :

              Code:
              $variable="SdUIkilPSlldIDjSjhfdKO97sjds7sds24421cdsd978";
              eval(decrypt($variable));
              function decrypt($data) { ... }
              La première ligne est une variable contenant une chaîne chiffré (en cipher par exemple)
              La seconde ligne exécute la variable après l'avoir déchiffré.
              Et la dernière ligne est la fonction qui déchiffre le message.

              Un hacker va modifier ce code par :

              Code:
              $variable="SdUIkilPSlldIDjSjhfdKO97sjds7sds24421cdsd978";
              echo decrypt($variable);
              function decrypt($data) { ... }
              La deuxième ligne est modifié pour afficher le script, une fois déchiffré.

              Sauf qu'avec une technique pour sauvegarder l'intégrité, on ne pourra pas modifier le code source.
              Cette valeur d'intégrité n'est d'autre que le hash du code source que l'on injecte pour décrypter la $variable chiffré. (le hash est la clef de chiffrement/déchiffrement)
              Après il faut trouver des techniques pour éviter qu'un exécutable extérieur s'occupe de récupérer le hash et modifie la fonction decrypt().
              Mais le principe est là. De toutes manières ces murs ne seront jamais blindés. Le RE est quelque chose d'inusable et de passionnant.

              La deuxième question est un peux plus compliqué. Peut-être en créant sa propre police de caractère. Ou sa fonction d'affichage (afficher l'image 'c1.jpg' si X == 10)

              J'espère t'avoir aidé et je vais tenter de le mettre en pratique avec ce concept qui me turlupine depuis déjà un bon moment

              Edit : le problème que pose cette algorithme est l'équivalence entre le hash et la clef de déchiffrement. Si on modifie le code chiffré après avoir trouvé le hash, le hash ne vaut plus rien. Le md5 n'est donc pas une solution (trop facile à trouver en plus).

              Edit 2 : j’approfondis encore mon idée, mais pour le moment je remarque qu'on peut toujours copier le code source dans un autre fichier ou dans une autre variable pour déchiffrer le message. A réfléchir ... Ça semble vain toutefois même si c'est la meilleur solution que j'ai trouvé.
              Dernière modification par Yarflam, 03 décembre 2012, 02h53.
              ~ Yarflam ~

              ❉ L'Univers se dirige vers son ultime perfection ❉

              Commentaire


              • #22
                Comme tu dis... "ça semble vain". Et, moi aussi, plus je me penche sur la question, plus je me dis qu'il est bien plus simple de RE plutôt que de faire un source non-"REable". Le md5... bon, tu t'es répondu dans ton premier edit.

                Hormis ce foutu problème de faire un soft non "REable", la question 2 me paraît, quant à elle, solvable. Non pas "afficher l'image", mais créer son propre charset. J'avais déjà un peu creusé cela, et... je n'étais pas parvenu après quelques recherches à trouver ce que je souhaitais... Mais je pense ne pas avoir suffisamment poussé mes recherches.
                sigpic

                Cyprium Download Link

                Plus j'étudie plus j'me rends compte que je n'sais rien.

                †|

                Commentaire


                • #23
                  Ça devrai te plaire : http://cyberzoide.developpez.com/securite/obfuscation/
                  Bien sur, ce sont des pseudo-solutions mais j'ai quelques idées qui traînent.
                  ~ Yarflam ~

                  ❉ L'Univers se dirige vers son ultime perfection ❉

                  Commentaire


                  • #24
                    Je crois être déjà passé par là^^ Mais merci quand même je vais le (re)lire.
                    sigpic

                    Cyprium Download Link

                    Plus j'étudie plus j'me rends compte que je n'sais rien.

                    †|

                    Commentaire


                    • #25
                      J'ai essayé d'obfusquer un code python, pour qu'il soit difficilement RE avec un logiciel.
                      Si tu veux essayer de le casser (et trouver le flag ) : http://pastebin.com/Wraijv1j
                      Dernière modification par Yarflam, 09 décembre 2012, 06h39.
                      ~ Yarflam ~

                      ❉ L'Univers se dirige vers son ultime perfection ❉

                      Commentaire


                      • #26
                        Non ce n'est pas encore la bonne obfuscation ... trop classique et trop instable malgré les variables.

                        Le script suivant le désobfusque sans problème :
                        Code:
                        def desobf(data):
                         while data.index('exec') >= 0:
                          data=data.replace("exec","data=")
                          exec(data)
                          print data
                          raw_input()
                        Peut-être pourrait-on faire deux ou trois algorithmes en parallèles. L'un attend la réponse de l'autre avant de renvoyer le code dissimulé.
                        Impossible dans ce cas de distraire le second avec un code de désobfuscation. Si ce dernier est créé aléatoirement lorsque le code se lance, on ne peut pas modifier quoi ce soit.

                        Et donc ça garde son intégrité. Il faut pour le RE trouver le cryptage finement réfléchie et en générer un modèle qui peut ne pas fonctionner correctement.

                        [... hum des idées, Sakarov t'as réussi à attiré ma curiosité ! Impossible de m'arrêter là ... ]

                        Edit : j'ai trouvé un site sur l'obfuscation en parallèle http://palizine.plynt.com/issues/200...control-flows/
                        Dernière modification par Yarflam, 11 décembre 2012, 22h53.
                        ~ Yarflam ~

                        ❉ L'Univers se dirige vers son ultime perfection ❉

                        Commentaire


                        • #27
                          j'étais dans un de mes DDX et j'ai retrouvé un symbole :

                          http://cl.ly/image/3t3C3p3R2r2O

                          Sinon, j'ai up une vidéo de 15mn où j'explique l'algo, sur Vimeo, pour les intéressés (ça doit faire 2 ou 3 semaines mais j'avais zappé de le dire...)
                          sigpic

                          Cyprium Download Link

                          Plus j'étudie plus j'me rends compte que je n'sais rien.

                          †|

                          Commentaire


                          • #28
                            " Comment faire de ces symboles non-ASCII des symboles lisibles sur n'importe quelle machine SANS l'aide du logiciel. En gros, créer un "nouvel alphabet" conçu de caractères qui ne sont, actuellement, non pris en charge par la norme en vigueur. Je suis quasi sûr qu'il y a possibilité de le faire, mais je ne vois pas comment."

                            Comment veux tu qu'une machine lise des caractères nouveaux et que donc elle ne connait pas, sans un logiciel qui les interprète en caractère qu'elle connait ???
                            sigpic
                            Notre Liberté Ne Doit Pas Être Limitée
                            Pour Permettre A Une Minorité De S’enrichir

                            Commentaire


                            • #29
                              y'a deux pistes :

                              La première est de créer un nouveau charset ;
                              La seconde est d'affecter une valeur à chaque image dans le code, et de charger l'image sur l'output et dans la GUI du soft.

                              La première est donc bien évidemment largement meilleure que la seconde mais on avait pas trop trop creusé à l'époque la "création d'un charset" qui sera interprété.
                              sigpic

                              Cyprium Download Link

                              Plus j'étudie plus j'me rends compte que je n'sais rien.

                              †|

                              Commentaire

                              Chargement...
                              X