cob_258

Member
  • Content count

    74
  • Joined

  • Last visited

  • Points

    0 [ Donate ]
  • Feedback

    N/A

Community Reputation

0 Neutral

About cob_258

  • Rank
    Casual

Personal Information

  • Situation géographique
    Birkhadem, Algérie
  • Interêt
    Tout apprendre sur le reverse engineering
  • Occupation
    Etude, PC, TV, comme tout le monde
  1. Départ de COB

    Salam, Je vous annonce mon départ, oui la fin de de COB dans over-game et peut être en tant que programmeur, car cet année je vais me consacrer plus pour mes études, je n’étais pas vraiment actif et dernièrement j’étais absent sur le forum, mais j’espère que mon court séjour était bénéfique pour votre communauté. Avant de partir je vous offre un programme open source (C#) FileRename A la revoyure
  2. procedure anti Maleware

    Nom de ma suggestion : Création d'une team antiMaleware Détails de votre suggestion : Je propose de créer un groupe qui scan et vérifie les nouveaux programmes proposés par les membre. j'ai eu cet idée de l’ancien site de ha**hound, tout les nouveaux sujet sont déplacé a une section d'analyse (privé) pour être vérifié. Qu'est-ce que cette suggestion apporterait à Overgame ? : Réduire les risques d'être arnaqué et éviter les sujet "Bot qui fait tout" ou bien "Cheat tout option" et par la suite on à "lien supprimé, maleware" Suggestion proposé par : COB Merci d'avoir lu ma suggestion
  3. Salam, une demo de cracking du crack-me-license proposé par lovercraft • Obfuscator : confuser • License : netSeal • Outil : - de4dot - dotNet tracer 0.2 - lien solidfiles - Reflector - lien solidfiles - SAE - CFF explorer - CFF patché par kao - uploadé par 0xd4d le tuto : Demo_crack-me-license.rar - Solidfiles
  4. Salam, ça fait longtemps que je n'ai pas fait de tuto, celui là n'est pas trés compliqué (environs 4 minutes), c'est l'unpack du crackme extrême de lovercraft, on cherche l'OEP, on inject la DLL, le fichier et dumpé au bureau. après ça c'est du autoit obfusqué, c'est a vous de voir Outils (utilisez google.com): - Olly - IDAficator : pour faciliter la navigation debut/fin de procedure (sinon vous faites du scrolldown ^^) - Olly script * vous trouvez la DLL et le script d'injection dans le même lien avec le tuto Référence (inspiration) : - BlurCode (Reversing Thinstall Virtualization Suite) Petite remarque inutile : la date du tuto c'est 27/10/2012 et pas le 27/11/2012 https://www.solidfiles.com/folder/928e892e0d/ --------------------------------------------------------- Si vous avez des difficulté à injecter la dll utilisez multi pe dumper 0.3.1 (mise à jour, vous y trouvez les détaille)
  5. Salam, C’est un petit tuto qui explique comment utiliser la librairie mono.cecil, c’est une explication basé sur ma propre utilisation, je ne vais pas tout expliquer, uniquement les base (c’est tout ce que je sais d'ailleurs). Quelque information ne sont pas à jour donc voici le lien des changements entre versions Une partie de ce que je vais dire je l'ai appris du code source de Confuser, je vous conseil de le voir. 1 – Le départ : On commence par ajouter mono.cecil.dll au référence (clique droit sur référence > ajouter une référence) puis écrire cet linge avant l’espace du nom > using Mono.Cecil; On ouvre le programme à explorer/modifié avec la méthode ReadAssembly de la classe AssemblyDefinition > AssemblyDefinition asm = AssemblyDefinition. ReadAssembly(CheminDuProgramme) ; Pour enregistrer le programme on utilise > asm.Write(CheminDuNouveauFichier); 2 – Trouver / modifier les Type : Pour modifier le Type il faut d’abord le trouver, si vous avez son nom complet utilisez : > TypeDefinition t = asm.GetType(NomCompletDuType); // Ou bien : TypeDefinition t = asm.GetType(NameSpace,NomDuType); Si vous n’êtes pas sûr du nom du Type ou vous voulez modifier tout les Types, utilisez le champ asm.MainModule.Types > TypeDefinition mytype = null; foreach (TypeDefinition t in asm.MainModule.Types) { if (t.Name.StartsWith(DébutDuNom)) { mytype = t; break; } } Exemple pour renommer les Types : > foreach (TypeDefinition t in asm.MainModule.Types) { if (!t.Name == "<Module>") { t.Name = new Random().Next().ToString(); t.Attributes = TypeAttributes.Public; // inutile, c’est juste un exemple } } // remarque : pour que le programme ne crash pas fixer les noms des resources Vous pouvez modifier autre chose, maintenant vous savez ou trouver les Types, à vous de jouer. 3 – Trouver / modifier les méthodes : C’est presque la même chose avec les Type mais les méthodes se trouvent dans > t.Methods Pour trouver la méthode voulue utiliser le code suivant > MethodDefinition mymethod = null; foreach (MethodDefinition m in t.Methods) // t est un Type { if (m.Name == NomDeLaMethod) { mymethod = m; break; } } Pour ajouter une nouvelle méthode il faut créer une avec > MethodDefinition (string name, MethodAttributes attributes, TypeReference returnType) Exemple > MethodDefinition newmethod = new MethodDefinition(NomDeLaNouvelleMethod, MethodAttributes.Private, // choisissez l(es) attribue(s) qui vous convient(nent) asm.MainModule asm.MainModule.Import(typeof(void))) // remplace void avec le type de retour voulue On a notre méthode, on peut ajouter des variables : > m.Body.Variables.Add(new VariableDefinition(asm.MainModule.Import(typeof(IntPtr)))); // remplacez IntPtr avec le Type voulu Des paramètre > m.Parameters.Add(new ParameterDefinition(asm.MainModule.Import(typeof(string)))); On ajoute la méthode au Type > t.Methods.Add(m); 4 – Modifier / ajouter des instruction Les instructions se trouvent dans : > m.Body.Instructions Pour pouvoir modifier les instructions ajouter cet ligne : > using Mono.Cecil.Cil; Trouver une instruction : > Instruction myinstruction = null; foreach (Instruction inst in m.Body.Instructions) { if (inst.OpCode == OpCodes.Ldstr) { myinstruction = inst; break; } } Remarque : pour éviter les exceptions vérifier si la méthode a un Body avec m.HasBody Exemple : trouver une valeur "intéressante" > TypeDefinition Module = asm.MainModule.GetType("<Module>"); int DecryptionConst = 0; foreach (MethodDefinition m in Module.Methods) { if (m.HasBody && m.ReturnType.FullName == typeof(string).FullName && m.Parameters.Count == 1 && m.Parameters[0].ParameterType.FullName == typeof(string).FullName) { foreach (Instruction inst in m.Body.Instructions) { if (inst.OpCode == OpCodes.Ldc_I4 && inst.Next != null && inst.Next.OpCode == OpCodes.Xor) { DecryptionConst = (int)inst.Operand; break; } } break; } } Ajouter une instruction : > m.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4, 123456)); Remplacer une instruction (Exemple : patcher un return false en return true): > for (int i =0 ;i<m.Body.Instructions.Count ;i++) { if (m.Body.Instructions[i].OpCode == OpCodes.Ldc_I4_0 && m.Body.Instructions[i].Next != null && m.Body.Instructions[i].Next.OpCode == OpCodes.Ret) { m.Body.Instructions[i] = Instruction.Create(OpCodes.Ldc_I4_1); } } Voici un exemple pour ajouter un anti debug à un assembly en utilisant ILProcessor > TypeDefinition t = asm.MainModule.GetType("<Module>"); MethodDefinition cctor = null; // <Module>.cctor foreach (MethodDefinition m in t.Methods) { if (m.Name == ".cctor" && m.IsConstructor) { cctor = m; break; } } if (cctor == null) // si aucun constructeur trouvé, créer un nouveau { cctor = new MethodDefinition( ".cctor", Mono.Cecil.MethodAttributes.Private | Mono.Cecil.MethodAttributes.Static | Mono.Cecil.MethodAttributes.HideBySig | Mono.Cecil.MethodAttributes.SpecialName | Mono.Cecil.MethodAttributes.RTSpecialName , assembly.MainModule.Import(typeof(void))); t.Methods.Add(cctor); } if (cctor.Body.Instructions.Count > 0 && cctor.Body.Instructions.Last<Instruction>().OpCode == OpCodes.Ret) { cctor.Body.Instructions.Remove(cctor.Body.Instructions.Last<Instruction>()); // si le cctor existé déjà supprimer le dernier retour } MethodDefinition AntiDebug = new MethodDefinition(// Method anti debugger (managed) qui sera exécuté dans une nouvelle thread "AntiDebug", Mono.Cecil.MethodAttributes.Static | Mono.Cecil.MethodAttributes.Private, assembly.MainModule.Import(typeof(void))); // ajouter le code qui crée la nouvelle thread au cctor // new Thread(new ThreadStart(<Module>.AntiDebug)).Start(); ILProcessor CtorProcessor = cctor.Body.GetILProcessor(); CtorProcessor.Append(CtorProcessor.Create(OpCodes.Ldnull)); CtorProcessor.Append(CtorProcessor.Create(OpCodes.Ldftn, AntiDebug)); CtorProcessor.Append(CtorProcessor.Create(OpCodes.Newobj, assembly.MainModule.Import(typeof(ThreadStart).GetConstructor(new Type[] { typeof(object), typeof(IntPtr) })))); // si plusieurs méthodes portent le même nom on spécifie le(s) Type(s) de(s) paramètre(s) CtorProcessor.Append(CtorProcessor.Create(OpCodes.Newobj, assembly.MainModule.Import(typeof(Thread).GetConstructor(new Type[] { typeof(ThreadStart) })))); CtorProcessor.Append(CtorProcessor.Create(OpCodes.Call, assembly.MainModule.Import(typeof(Thread).GetMethod("Start", Type.EmptyTypes)))); CtorProcessor.Append(CtorProcessor.Create(OpCodes.Ret)); // ajouter le code de la méthode AntiDebug /* while (true) { if (Debugger.IsAttached || Debugger.IsLogging()) { break; } Thread.Sleep(1000); } Environment.Exit(0); */ ILProcessor AntiProcessor = AntiDebug.Body.GetILProcessor(); Instruction First = AntiProcessor.Create(OpCodes.Call, assembly.MainModule.Import(typeof(Debugger).GetMethod("get_IsAttached"))); Instruction Exit = AntiProcessor.Create(OpCodes.Ldc_I4_0); AntiProcessor.Append(First); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Brtrue_S, Exit)); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Call, assembly.MainModule.Import(typeof(Debugger).GetMethod("IsLogging")))); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Brtrue_S, Exit)); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Ldc_I4, 1000)); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Call, assembly.MainModule.Import(typeof(Thread).GetMethod("Sleep", new Type[] { typeof(Int32) })))); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Br_S, First)); AntiProcessor.Append(Exit); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Call, assembly.MainModule.Import(typeof(Environment).GetMethod("Exit", new Type[] { typeof(int) })))); AntiProcessor.Append(AntiProcessor.Create(OpCodes.Ret)); t.Methods.Add(AntiDebug); 5 – Ressources Les ressources se trouvent dans > asm.MainModule.Resources Vous savez comment trouver une ressource, pour en ajouter une utilisez > assembly.MainModule.Resources.Add(Resource item) ; Vous devez d'abord créer une resource avec > EmbeddedResource (string name, ManifestResourceAttributes attributes, byte [] data) // oubien public LinkedResource (string name, ManifestResourceAttributes flags, string file) Exemple > asm.MainModule.Resources.Add(new EmbeddedResource( NomDeLaResource, // nom ManifestResourceAttributes.Public, // attribue File.ReadAllBytes(Data))); // byte[] C’est mon premier tuto écrit (d’habitude je fait des demo flash) alors j’espère qu’il n’est pas ennuyeux et que vous le trouver utile, Enfin si vous copiez / collez ce tuto ailleurs ou si vous utilisez une partie ou la totalité des codes veuillez citer la source et l’auteur, merci. Tuto & code par COB
  6. JE REND CE PROGRAMME PUBLIC APRES AVOIR DECOUVERT QU'IL ETAIT VENDU DANS UN AUTRE SITE PAR UN CERTAIN CRAW SOUS LE NOM DE "SECUREIT" ET BIENSUR SANS CITE LE VRAI PROGRAMMEUR Après plusieurs versions de protecteur AutoIt (anti décompilateur) écrits en ASM (certain sont distribués sur des forums privés) , j’ai décidé de faire un essaie en C# vu que je suis nouveau sur ce langage, j’ai trouvé quelque défis comme la gestion du header d’un exécutable (vérifier que c’est pas un UPX, trouver/crypter l’EOF, fusionner l’EOF avec la dernière section etc.) comme j’ai trouvé des facilité offerte par le langage (l’XML, GUI plus facile à gérer). Présentation du programme : Ce programme peut crypter* et/ou fusionner l’EOF avec la dernière section, ajouter un faux script pour tromper les kikooCodeStealers (j’utilise toujours cet adjectif ^^), et bien sur des patchs (puisque on crypte l’EOF, il faut bien un code qui le décrypte sur la mémoire). Les patchs et leurs adresse sont enregistrés dans des fichiers Profile.xml ainsi que leur compatibilité avec UPX et si le programme doit crypte l’EOF ou pas, (si vous voulez savoir plus regardez l’Editeur de profile, la structure est semblable a « Offset Finder - v 0.4 - By RivaL » d’ailleurs j’étais aidé par le code de ce programme). (*) le cryptage est fait par un xor avec chaque octet de l’EOF (la clé est aléatoire et généré lors de la protection puis remplace le caractère ** dans le(s) patch) Qu’est ce que l’EOF et pourquoi tant d’importance : Chaque section du programme, son nom sa taille et son adresse sont stocké dans le PE header (des IMAGE_SECTION_HEADER après les IMAGE_NT_HEADERS ), si on trouve des donnés après la dernière section (qui ne sont pas présent dans les header) on les appelle EOF ,End Of File (appelé aussi Overlay ou Extra data). Les script AutoIt ne sont pas vraiment compilés, juste compressés et cryptés en suite ajoutés comme EOF au stub (exe) d’exécution, c’est pour ça que le décompilateur retrouve la totalité du code source et pour cela qu’on cherche a protéger l’EOF . Remarque : Il y a d’autre méthode pour le protéger comme l’EOF virtuelle (Armadillo). Mise à jour 24/04/2012 J’ai trouvé pas mal de difficulté pour écrire l’obfuscator, le cryptage des chaine bug s’il s’agit d’une chaine dans la déclaration d’une fonction, le rename des fonction devais aussi renommer les celle qui sont utilisé avec Hotkeyset, AdlibRegister et Call, pour le flow obfuscation pas la paine de parler ^^ > ProtectIt : + AuFusCOB 0.1 (Obfuscator de script) : Cryptage des chaines (la decryption des chaine utilise une valeur dans le header du programme compilé, méthode très basic pour bloquer les débutant) Renom des variables/fonctions Flow obfuscation : réordonner les lignes de code afin de rendre le code plus difficile a comprendre ProfileEditor : ! Bugfix comparateur de fichier (effacer la liste avant d'ajouter des éléments) + Optimiser la comparaison (deux patch de distance inferieur à 5 sont considéré comme un seul) Profiles : ! Bugfix profile 3.3.8.1 (Votre programme crash si vous utilisez ce profile puis packer avec UPX, fixé) --------------------------------------------- Remarque : L'obfuscator contient quelque bug (certain commentaire ne sont pas supprimé..) mais je l'ai testé sur une la script du THHH 3.3.3 et ça a marché L’obfuscator ne prend pas en charge que les script codé en ANSI (Encoding.Default) Le rename des variables et des fonction est lent (des idées?) Exemple : > #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: COB Script Function: TEST AUFUSCOB #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here test() test2() Func test() If (1 = 1) Then If (0 = 0) Then Local $Atrue = 'Condition toujour vrai' Else $Atrue = "Erreur" EndIf MsgBox(0, Default, $Atrue) EndIf Local $msg $msg = "Test" $msg &= " Msg" $msg &= "Box" MsgBox(0, Default, $msg) EndFunc ;==>test Func test2() $autrevar = "Autre fonction"; MsgBox(0, "", $autrevar) EndFunc ;==>test2 Flow obfuscation, function/var rename > $13470001 = 1363015899 While 1 Switch $13470001 Case 311482959 F30343235363833313939() ExitLoop Case 1363015899 F31353334373932303838() $13470001 = 311482959 EndSwitch WEnd Func F31353334373932303838() If (1 = 1) Then If (0 = 0) Then Local $13470002 = 'Condition toujour vrai' Else $13470002 = "Erreur" EndIf MsgBox(0, Default, $13470002) EndIf $13470000 = 1363015899 While 1 Switch $13470000 Case 311482959 $13470004 = "Test" $13470000 = 1994086612 Case 1330278011 MsgBox(0, Default, $13470004) ExitLoop Case 1363015899 Local $13470004 $13470000 = 311482959 Case 1994086612 $13470004 &= " Msg" $13470000 = 2018228120 Case 2018228120 $13470004 &= "Box" $13470000 = 1330278011 EndSwitch WEnd EndFunc ;==>F31353334373932303838 Func F30343235363833313939() $13470001 = 1363015899 While 1 Switch $13470001 Case 311482959 MsgBox(0, "", $13470003) ExitLoop Case 1363015899 $13470003 = "Autre fonction" $13470001 = 311482959 EndSwitch WEnd EndFunc ;==>F30343235363833313939 Ce script n'est pas très dur a comprendre mais il serai pénible si c'étais plus long => il faut écrire un déobfusctor pour pouvoir cracker ce code et cela pourra le protéger contre les débutants Téléchargement : ProtectIt project - Solidfiles
  7. Multi tools 0.1 est un programme écrit en C# qui peut vous aider dans le reversing/protection de vos autoit. Ce que le programme fait : - Extrait, ajoute, supprime l’EOF d’un programme. - (de)Crypte un fichier (XOR,ROL,ROL,ADD,SUB,NEG,NOT). - Extrait les script d’un programme autoit (MyAutoEx méthode) . - Brute force un script crypté avec une clé de longueur d’un octet (par exemple un simple XOR). * Code source disponible dans la zone programmeur, et il sera public après le debug VirusTotal Téléchargement
  8. Autoit 3.3.6.1 offset

    Voici une petite documentation non-officiel basé sur mes recherches sur Autoit stub de la version 3.3.6.1 Tout droit réservé a cob_258, si vous publiez/utilisez ce travaille n’oublier pas de citer l’auteur (ça ne coute rien) - ça concerne l'autoit mais c'est pas du autoit donc je le met dans Reverse Engineering - > Decrypt each line of script 0042CBCB . 8B4C24 74 MOV ECX, DWORD PTR [ESP+74] 0042CBCF . 8D4424 6C LEA EAX, DWORD PTR [ESP+6C] 0042CBD3 . 50 PUSH EAX ; arg2 : ptr to line relative offset (will bet added to arg1 to get the crypted curent line) 0042CBD4 . 51 PUSH ECX ; arg2 : VA of memory containing crypted script 0042CBD5 . 895C24 1C MOV DWORD PTR [ESP+1C], EBX 0042CBD9 . E8 73840100 CALL scr.00445051 ; ==> call decryption proc .... 0042CCC3 end of loop inside decryption proc .... 004450A2 |. /7E 09 JLE SHORT AutoItSC.004450AD 004450A4 |> |66:313C43 /XOR WORD PTR [EBX+EAX*2], DI ;; decrypt line 004450A8 |. |40 |INC EAX 004450A9 |. |3BC7 |CMP EAX, EDI 004450AB |.^|7C F7 \JL SHORT AutoItSC.004450A4 004450AD |> \5F POP EDI ;; see below 004450AE |. 5E POP ESI 004450AF |. 5D POP EBP 004450B0 |. 8BC3 MOV EAX, EBX ;; eax = ebx = address of decrypted command 004450B2 |. 5B POP EBX 004450B3 \. C2 0800 RETN 8 edi pops 31 => function edi pops 34 => UDF edi pops 37 => region edi pops 36 => argument *----------------------------------------------------------------------------------------* execute functions seach for: CALL EDX POP EDI POP ESI POP EBX edx = execute function *----------------------------------------------------------------------------------------* commands struct 00493004 00489FEC UNICODE "ASSIGN" Name 00493008 00000000 ?? 0049300C 00000000 ?? 00493010 004719C3 msgbox.004719C3 Function address 00493014 00000000 ?? 00493018 00000000 ?? 0049301C 00000002 Number of necessary args 00493020 00000003 Number of all args 00493024 00000000 ?? *-------------------------------------------------------------------------------------------*
  9. Decompile me autoit

    Ce défis a pour but de : décompiler ce programme en autoit 3.3.8.1 trouver la chaine $hiddenText (sous la MsgBox c'est très facile) un petit tuto en image ou en flash voici le lien VT (certain AV le détecte mais je confirme que c'est clean) : Virustotal DecompileMe.rar - Solidfiles
  10. Salam, Voici un programme qu'on peut considérer comme la suite de mes tuto unPack TheNoobBot. Ce programme facilite le processus de dump du main assembly que vous soyer sur le JMP ASSEMBLY.EP (c'est mieux) ou pas, ce programme vous fera gagner du temp Virus totale Programme+ soruce + tuto ---------------------------- Mise à jour du 29/10/2012 J'ai commencé par fixer un bug dans l'intellidump, modifié un peut la GUI (pas trés utile) puis j'ai eu l'idée d’intégrer le xenocode dumper au lieu d'injecter une dll, mais on a toujours besoin de trouver l'OEP (voir mon tuto) Résumé MàJ 0.3.1: - Bug fix intellidump - Dump "main exe de xenocode" - GUI changé * Le nouveau fichier ce trouve dans le même lien
  11. Bonjour, Ce tutoriel explique comment faire un inline patch (modifier le 'packer' pour qu'il modifie le 'packed'), comme je l'ai déjà dit je ne vais pas cracker le programme mais..., mais cet fois je vais patcher le message serveur hors ligne Je vais aborder plusieurs aspect de la (de)protection .net + native: - unpack mpress - trouver le "JMP Assembly.OEP", l'assembly, sa taille, fixage du dump - l'RVA qu'il faut modifier pour supprimer le message - ecrire notre inline patch et surtout le bon endroit ou l'injecter outil: Olly + multimate assembler MUltimate Assembler (an OllyDbg plugin) - RaMMicHaeL's home page de4dot https://github.com/0xd4d/de4dot/downloads lordpe http://www.woodmann.net/collaborative/tools/images/Bin_LordPE_2007-10-21_1.48_LordPE_1.41_Deluxe_b.ziphttp://www.woodmann.net/collaborative/tools/images/Bin_LordPE_2007-10-21_1.48_LordPE_1.41_Deluxe_b.zip simple assembly explorer Downloads - simple-assembly-explorer - Simple Assembly Explorer - Google Project HostingDownloads - simple-assembly-explorer - Simple Assembly Explorer - Google Project Hosting tutoriel : Inline Patch The Noob Bot-1.0 Beta 14 (.NET - MPRESS).rar ? RGhost ? file sharingInline Patch The Noob Bot-1.0 Beta 14 (.NET - MPRESS).rar ? RGhost ? file sharing
  12. Bonjour, je vous propose ce tutorial pour decompiler TheNoobBot la vesion 1.0 beta 13 (il ya une autre mise a jour sur le site) Ce flash ne montre pas comment cracker et ne contient pas la fichier unpacké , le but est de montrer une astuce pour les programme .Net protégé par themida, si vous aimez ce bot achetez le! les outil: Olly pugin : StrongOD StrongOD 0.4.6.816 / OllyDbg Plugins / Downloads - Tuts 4 You plugin : OllydumpEx OllyDumpEx Plugin De4dot page officiel Universal fixer Universal_Fixer.zip - 31 KB(Thread officiel) Tuto : Unpack_The_Noob_Bot-1.0_Beta_13.rar - 4.6 MB
  13. Salut tout le monde, je vous présente ce petit tuto de décompilation de script autoit protégé cible : Fatbot (version gratuite) protection : AutoIt modifié (pas de cryptographie ni de protector) format : PDF je ne vais ma maitre de virus total, CobFileCompare est open source, CmpDisasm est trouvable sur google
  14. Salut tout le monde, voici mon nouveau tuto de decompilation de script AutoIt, le but n'est pas la decompilation manuelle (il ya myau2exe) mais trouver le vrai script parmis 131! oui notre cible a 131 script dont la signature est modifié, j'ai aussi fait un petit programme (ASM) qui trouve les script (merci a cw2k pour l'open source) cible : Crawlerbot http://www.crawlerbots.de/ Virus total du programme VirusTotal - Free Online Virus, Malware and URL Scanner le programme (+ code source) et la demo