تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[كود] كود فك تشفير ستريتغ base64 لأي برنامح
#1
مرحبا يا أخواني

مازلت أن أتممت تسجيلي الأن و لكن أنا متأسف جدا

لأنو ستعصيت على هذه المشكلة

و أرجو المساعذة

لدي برنامج به سترينغ مشفر ب base64

مثل ما في الصوره host و port مشفران



الطلب من أخواني ليس فرضا هو

كود أضعه في كونسول عتد رمي البرنامج المشفر عليه ينتج لي ملف به  البرنامح و الكود غير مشفر

هكذا



و هذا سورس يمكن يفيدكم

https://up.top4top.net/downloadf-6552boyc1-zip.html

ربي يوفقكم جميعا و شكرا لفتح هذا القسم للجميع من دون قيود في طرح الأسئلة
الرد }}}}
تم الشكر بواسطة:
#2
لو التشفيير مباشر و المقصد انه بيتم تحويل التكست الي Base64 مباشرة هنا فك التشفيير سهل
لكن لو التكست تم تشفييره باستخدام كلمة سر هنا يصبح فك التشفيير صعب
وبالتالي لكي تفك التشفيير لازم يكون لديك كلمة السر


الموقع به أفكار كثييرة للتشفيير وفك التشفيير
فقط عليك أن تدرسها
Retired
الرد }}}}
تم الشكر بواسطة: Cracker Egy
#3
شكرا لردك أخي

أظنك فهمت قصدي بخطأ

ما رأيك في أن أرسل لك الملف و تلقي نظرة عليه ؟

لدي سطرين معينين في برنامج دو تن مشفران بbase64
أريد طريقة لفك تشفير base64 داخل البرنامج
يعني برنامج يقوم بفكهم عند اسقاط البرنامج المشفر فيه
الرد }}}}
تم الشكر بواسطة:
#4
PHP كود :
using System;
using System.Text;
using System.IO;
using dnlib.DotNet;
using dnlib.DotNet.Emit;

namespace 
DumpStrings
{
 
   class Program
    
{
 
       static void Main(string[] args)
 
       {
 
           if (args.Length == 0)
 
           {
 
               Console.WriteLine("args not found");
 
               Console.ReadKey();
 
               return;
 
           }
 
           else
            
{
 
               try
                
{
 
                   // Last args part is our path, maybe I'll add some - options in future...
 
                   var ExePath args[args.Length 1];
 
                   if (!File.Exists(ExePath))
 
                   {
 
                       Console.WriteLine("File doesn't exist!\nPath => {0}"ExePath);
 
                       return;
 
                   }

 
                   string OutputPath ExePath.Substring(0ExePath.Length 4) + ".txt";

 
                   if (File.Exists(OutputPath))
 
                       File.Delete(OutputPath);

 
                   var UTFEncoder = new UTF8Encoding(true);

 
                   using (FileStream fs File.Create(OutputPath))
 
                   {
 
                       ModuleDefMD Module ModuleDefMD.Load(ExePath);

 
                       foreach (TypeDef Type in Module.GetTypes())
 
                       {
 
                           foreach (MethodDef Method in Type.Methods)
 
                           {
 
                               if (!Method.HasBody)
 
                                   continue;

 
                               foreach (Instruction Instr in Method.Body.Instructions)
 
                               {
 
                                   if (Instr.OpCode == OpCodes.Ldstr)
 
                                   {
 
                                       // (string)Instr.Operand <= this holds string "value"
 
                                       //var String = "[{Type.Name}.{Method.Name}] {(string)Instr.Operand}{Environment.NewLine}";
 
                                       var String "[" Type.Name "." Method.Name "] " + (string)Instr.Operand Environment.NewLine;
 
                                       string ch Base64Decode((string)Instr.Operand);
 
                                       if (ch != null)
 
                                       {
 
                                           String += "Decode Base64: " + (string)Instr.Operand Environment.NewLine;
 
                                           String += ch Environment.NewLine Environment.NewLine;
 
                                       }
 
                                       //Console.WriteLine("[{0}.{1}] {2}{3}", Type.Name, Method.Name, (string)Instr.Operand, Environment.NewLine);
 
                                       Console.WriteLine(String);

 
                                       byte[] Bytes UTFEncoder.GetBytes(String);
 
                                       fs.Write(Bytes0Bytes.Length);
 
                                   }
 
                               }
 
                           }
 
                       }
 
                   }
 
               }
 
               catch (Exception ex)
 
               {
 
                   Console.WriteLine("Exception: {0}"ex.Message);
 
                   Console.ReadKey();
 
               }
 
           }
 
       }

 
       public static string Base64Decode(string base64EncodedData)
 
       {
 
           try
            
{
 
               foreach (char c in base64EncodedData)
 
                   if (!"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+= ".Trim().Contains(c.ToString())) return null;
 
               var base64EncodedBytes System.Convert.FromBase64String(base64EncodedData);
 
               return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
 
           }
 
           catch (Exception ex) { return null; }
 
       }

 
   }

الرد }}}}
تم الشكر بواسطة: Cracker Egy
#5
هل جربته أخي يشتغل لأنه لم يفعل مثل ما أريد أنا
الرد }}}}
تم الشكر بواسطة:
#6
أخي أحمد بارك الله فيك أتمنى منك أن لا تبخل معي في إيجاد حل

لكن أنا ما أحاول فعله الناتج يكون مفكوك التشفير لا جميع السترينغ



أريد فقط رقم 1 و 2 ينفك التشفير تاعهم و ينتج لي البرنامج نفسه لكن مكان 1 و 2 تكون مفكوكة

هذا مشروع أخر لو تلقي نظرة فيه ستفهم قصدي أخي

كود :
using System;
using System.Collections.Generic;
using System.Text;
using dnlib.DotNet;
using dnlib.DotNet.Emit;
namespace ConsoleApplication2
{
   class Program
   {
       static List<int> ints = new List<int>();
       static Dictionary<double, string> MyDictionary = new Dictionary<double, string>();
       static void Main(string[] args)
       {

           var DeobMe = @"C:\1.exe";
           var module = ModuleDefMD.Load(DeobMe);
           var types = module.GetTypes();


           foreach (var type in types)
           {
               if (!type.HasFields)
                   continue;
                // Get value field
                #region
                var ctor = type.FindDefaultConstructor();
               foreach (var ils_ctor in ctor.Body.Instructions)
               {
                   if (!ils_ctor.IsLdcI4())
                       continue;
                   ints.Add(ils_ctor.GetLdcI4Value());
               }
                #endregion
                foreach (var method in type.Methods)
               {
                   if (!method.HasBody)
                       continue;
                    // Get value for Dictionary 
                    #region
                    if (method.IsPublic && !method.HasReturnType)
                   {
                       if (method.IsSpecialName || method.IsRuntimeSpecialName)
                           continue;

                       double num = default(double);
                       string str = string.Empty;
                       foreach (var ils in method.Body.Instructions)
                       {
                           if (ils.OpCode == OpCodes.Ldc_R8)
                               num = (double)ils.Operand;
                           if (ils.OpCode != OpCodes.Ldstr)
                               continue;
                           str = ils.Operand as string;
                           MyDictionary.Add(num, str);
                       }

                   }
                   #endregion

               }
               // String Decrypter
               foreach (var method in type.Methods)
               {
                   var _ils = method.Body.Instructions;

                   for (int i = 0; i < _ils.Count; i++)
                   {
                       if (_ils[i].OpCode == OpCodes.Callvirt && _ils[i + 1].OpCode == OpCodes.Call)
                       {
                           var MD = _ils[i + 1].Operand as MethodDef;
                           if (!MD.IsStatic && !MD.IsPublic)
                               continue;
                           if (!MD.HasParamDefs && !MD.HasReturnType)
                               continue;
                           if (MD.ParamDefs.Count != 1 && MD.ParamDefs[1].ElementType != ElementType.String)
                               continue;
                           int val = (int)_ils[i - 15].GetLdcI4Value();
                           string strop = BTS(MyDictionary[value(val)]);
                           _ils[i + 1].OpCode = OpCodes.Ldstr;
                           _ils[i + 1].Operand = strop;
                           for (int numero = i; numero > i - 18; numero--)
                               _ils[numero].OpCode = OpCodes.Nop;
                       }
                   }
               }

           }
           module.Write(@"C:\2.exe");

       }

       static double value(int param)
       {
           return (Math.Pow((double)Math.Abs(param), (double)ints[0]) + (double)ints[1]) * (double)ints[2];
       }
       public static string BTS(string s)
       {
           return Encoding.UTF8.GetString(Convert.FromBase64String(s));
       }
   }
}
الرد }}}}
تم الشكر بواسطة:
#7
PHP كود :
using System;
using System.Text;
using System.IO;
using dnlib.DotNet;
using dnlib.DotNet.Emit;
using System.Collections.Generic;

namespace 
DumpStrings
{
 
   class Program
    
{
 
       static void Main(string[] args)
 
       {

 
           if (args.Length == 0)
 
           {
 
               Console.WriteLine("args not found");
 
               Console.ReadKey();
 
               return;
 
           }

 
           // Last args part is our path, maybe I'll add some - options in future...
 
           string ExePath args[args.Length 1];
 
           if (!File.Exists(ExePath))
 
           {
 
               Console.WriteLine("File doesn't exist!\nPath => {0}"ExePath);
 
               return;
 
           }
 
           string exten Path.GetExtension(ExePath);

 
           string OutputPath ExePath.Substring(0ExePath.Length 4) + exten;

 
           try
            
{
 
               var DeobMe ExePath// @"C:\1.exe";
 
               var module ModuleDefMD.Load(DeobMe);
 
               var types module.GetTypes();

 
               Console.WriteLine(Environment.NewLine);
 
               Console.WriteLine("Source File: {" System.IO.Path.GetFileName(ExePath) + "}");
 
               Console.Write("Processing...");


 
               foreach (var type in types)
 
               {
 
                   if (!type.HasFields)
 
                       continue;

 
                   foreach (var method in type.Methods)
 
                   {
 
                       var _ils method.Body.Instructions;

 
                       for (int i 0method.Body.Instructions.Counti++)
 
                       {
 
                           try
                            
{
 
                               if (method.Body.Instructions[i].Operand.ToString().EndsWith("::host"))
 
                                   method.Body.Instructions[1].Operand Base64Decode(method.Body.Instructions[1].Operand.ToString());

 
                               if (method.Body.Instructions[i].Operand.ToString().EndsWith("::port"))
 
                                   method.Body.Instructions[1].Operand Base64Decode(method.Body.Instructions[1].Operand.ToString());
 
                           }
 
                           catch (Exception ex) { }
 
                       }

 
                   }

 
               }

 
               string OutputFilename ExePath.Substring(0ExePath.Length 4) + "_Result" exten;
 
               module.Write(OutputFilename);   //@"C:\2.exe"
 
               Console.WriteLine(Environment.NewLine);
 
               Console.WriteLine("Result File: {" System.IO.Path.GetFileName(OutputFilename) + "}");
 
               Console.WriteLine("Successful." Environment.NewLine);
 
               Console.ReadKey();

 
           }
 
           catch (Exception ex)
 
           {
 
               Console.WriteLine(Environment.NewLine);
 
               Console.WriteLine(Environment.NewLine ex.Message);
 
               Console.ReadKey();
 
           }

 
       }


 
       public static string Base64Decode(string base64EncodedData)
 
       {
 
           try
            
{
 
               foreach (char c in base64EncodedData)
 
                   if (!"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+= ".Trim().Contains(c.ToString())) return null;
 
               var base64EncodedBytes System.Convert.FromBase64String(base64EncodedData);
 
               return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
 
           }
 
           catch (Exception ex) { return null; }
 
       }

 
   }

الرد }}}}
تم الشكر بواسطة: Cracker Egy
#8
ممكن مساعدة شباب
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طلب تشفير ملف exe الخاص ببرنامج ما Darel 2 240 21-02-17, 01:33 AM
آخر رد: Darel

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم