La fissuration application en C# avec OllyDebug

Je voudrais savoir si il existe un moyen de cracker application Windows en C# avec OllyDebug. J'ai simple mon propre CrackMe application écrite avec Visual C# 2010 Express. Quand je l'ouvre avec OllyDebug et modifier ASM code que j'ai besoin, il n'y a pas de "Copier l'exécutable" option dans OllyDebug depuis mon formulaire d'inscription fenêtre est allouée dynamiquement avec l'opérateur "new" (qui est, je crois, VirtualAlloc() appel de fonction dans le débogueur). Si je suis en mesure de modifier le code ASM (qui est tout simplement NOP require JE saute), je ne suis pas en mesure de sauver mon .exe fichier avec fissuré code, ressemble à OllyDbg "voit" le code dans le segment de données qui n'est pas en vigueur au lancement de l'application et seulement est allouée dynamiquement.
Quelqu'un peut m'aider avec le problème? Je pense que la modification *.exe devrait être possible avec au moins 2 approches:

1) Creuser plus profondément dans le code avec OllyDbg et trouver l'endroit où le code est tenue avant répartition (en raison de la nouvelle instance de RegistrationForm ne vient pas par magie de l'espace, n'est ce pas?)

2) Si elle permet la création rapide de la demande en VS Express et ne nécessite pas trop de code compliqué, utiliser les appels statiques chaque fois en cliquant sur "s'Inscrire", indique la même RegistrationForm fenêtre (qui aura lieu dans la section de code de l'application, et donc sera modifyable dans OllyDbg).

Il sera OK pour montrer comment réécrire le code et le garder simple pour allouer de la même instance de RegistrationForm (singleton?). La seule chose que j'ai besoin est de fissure&enregistrer *.exe, de relancer et de remplir toutes les données de "terminer l'inscription".

Voici le code de MyCrackMe classe avec une méthode main ():

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyCrackMe {
    class MyCrackMe {
        public static void Main() {
            MyForm mainWindow = new MyForm();
            System.Windows.Forms.Application.Run(mainWindow);
        }
    }
}

Principal de la classe de fenêtre:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyCrackMe {
    public partial class MyForm : Form {
        public MyForm() {
            InitializeComponent();
        }

        private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
            Application.Exit();
        }

        private void aboutToolStripMenuItem_Click(object sender, EventArgs e) {
            MessageBox.Show("All rights reserved", "Message");
        }

        private void registerToolStripMenuItem_Click(object sender, EventArgs e) {
            RegistrationForm registrationForm = new RegistrationForm();
            registrationForm.Show();
        }
    }
}

Formulaire d'inscription en classe:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace MyCrackMe {
    public partial class RegistrationForm : Form {
        //Use DllImport to import the Win32 MessageBox function.

        [DllImport("user32.dll", EntryPoint = "MessageBoxA", CharSet = CharSet.Ansi)]
        public static extern int MsgBox(int hWnd, String text, String caption, uint type);

        public RegistrationForm() {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) {
            if (textBox1.Text == "lincoln" && textBox2.Text == "12345") {
                MsgBox(0, "Registration completed successfully!", "Registration Message", 0);
            } else {
                MsgBox(0, "Registration failed", "Message", 0);
            }
        }
    }
}

Ici est OllyDbg capture d'écran et le message qui vient lors de la définition de points d'arrêt
La fissuration application en C# avec OllyDebug

"Apprends-moi ce que .Net exécutable est si je peux hack certaines licences" semble un peu trop large (même en ignorant les préoccupations d'ordre éthique).
Je crois que la meilleure façon d'apprendre l'anti-fissure est de savoir comment craquer. Ce n'est que mon propre projet à des fins éducatives. J'ai même l'utiliser "user32.dll" l'importation et l'appel MsgBox API pour l'appel explicite dans OllyDbg ce qui le rend plus facile à casser, pensez-vous que quelqu'un allait le faire au lieu de MessageBox.Afficher("Bonjour le monde")? Je ne pense pas que les applications écrites par les développeurs professionnels sont fendillés facilement, comme le mien. Si le sujet est trop grand pour StackOverflow références à un tutoriel ou comment sera appréciée.

OriginalL'auteur t3rmin41 | 2014-06-24