سلام
لطفا دوستان پست 47 لینک زیر یک برنامه به #C را اگر میتوانند DeCompile کنند
https://barnamenevis.org/showth...=172723&page=5
سلام
لطفا دوستان پست 47 لینک زیر یک برنامه به #C را اگر میتوانند DeCompile کنند
https://barnamenevis.org/showth...=172723&page=5
پسورد : eybabaalikolabikari
فایل آنپک شده رو هم ضمیمه کردم.
آخرین ویرایش به وسیله Nima NT : سه شنبه 14 مهر 1388 در 20:39 عصر
ابتدا فایل رو توسط ابزارهای Generic دامپ کردم و بعد توسط Reflector دکامپایلش کردم.
خیلی ساده بود.
اگر میشود یک نگاهی هم به این بیندازید
از Smart Assembly و DotNet Reactor استفاده کردید و فایل نهایی رو توسط برنامه اول Obfuscate کردید.
در کل جالبه ولی اینها همشون آنتی دارن و نهایتا" کرک میشه , بهتره به روشهای ابتکاری خودتون ( از طریق برنامه نویسی ) رو بیارید.
در کل من فقط تونستم تا اینجا پیش برم.
میشه یک نگاهی به این یکی دیگه هم بندازید؟
متاسفانه این تکنیکها امنیتی ندارن , بازم میگم بهتره به روشهای برنامه نویسی رو بیاورید.
پسورد :$$***@@@@eybabaalikolabikari)))9997&&&&
این از اولی در آمد یا دومی ؟
از دومی ولی از اولی هم میشد که دربیاد.
زحمت این رو هم به عنوان آخری بکشید
این یکی تا حدی شد شبیه keygen Me
دو تا رشته مشکوک هست که باید کد بشن.
&&&&!!!@@@@CCCVVDTR
C#IsBestOKOK
یعنی الان پیام درست نگرفتی ؟ پیام "!! Na Baba En Kare Hasti !!!" رو باید بهت بده . داده یا نه ؟
نه پیام درست رو نگرفتم , چون Obfuscate هم شده بود Patch کردنش طول میکشه و آدم رو دیوونه میکنه.
دستت درد نکنه اگر اینم ببینی دیگر میتونیم اعلام نتیجه کنیم توی تاپیک . سعی کن پیام موفق بگیری . رشته ها رو تشخیص دادن رو بیخیال
رشته alikolahdoozan هست ولی باید برای اینکه پیام مناسب نمایش داده بشه فایل پچ بشه که کار من نیست ( بلد نیستم ) , ولی دیدم که میشه و به گفته اهل فنش راحت هست.
فقط alikolahdoozan نیست . پس اگر از کلاس partial استفاده بشه و متد عملا دست بسته است . و به این راحتیها نمیشه کاری کرد . این خوبه . الان خوابم میاد صبح سورس همین رو میزارم همه ببینند
ببخشيد، اگر ميشه امنيت اين دو تا فايل رو هم ( هر كدوم جدا ) به من بگيد. البته چيزی نداره، فقط واسه DeCompile میگم.
فایل دوم رو سیستم من اجرا نشد ولی فایل اول رو اول با Smart Assembly و بعد هم با یه پکر نا آشنا پک کردین , فایل دامپ میشه ولی دکامپایل نمیشه چون Obfuscate شده.
من بيشتر به خاطر فايل دومی گذاشته بودم، وقتی كه دامپ شد، باز هم Reflector نمتونه كاری بكنه. البته تا اون جایی كه متوجه شدم #Dis با فايل اوليه مشكلی نداره، فقط بايد دامپ بشه.
اگر obfuscated شده باشه که بله reflector عاجز میمونه.
سلام دوستان.
من هم یک فایل میزارم البته نه به اسم CrackMe بلکه به اسم TestMe !
یه برنامه سادست که یه کاراکتری با یه الگوریتم خیلی ساده حرکت میکنه. میخوام اگر امکان داره دوستان چک کنن و با دسترسی به سورس برنامه الگوریتمش رو توضیح بدن. البته همون دسترسی به سورس برنامه هم کافیه و در واقع میخوام ببینم میشه با کارهایی که انجام شده باز هم به سورس رسید یا نه.
ممنون
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
سلام دوست عزیز bermooda
اصلا هیچ کار امنیتی روی این برنامه انجام نشده.
اینم کل سورس ها:
اول از یه فایل dll به نام net20comp.dll استفاده کرده اید که می توانید از ضمیمه دریافت کنید.
دوم از متدهای زیر در برنامه استفاده کرده اید:
private static Assembly GetAssembly(byte[] data){ MemoryStream stream = null; Assembly assembly = null; try { stream = UnZip(data); stream.Seek(0L, SeekOrigin.Begin); assembly = Assembly.Load(stream.ToArray()); } finally { if (stream != null) { stream.Close(); } stream = null; } return assembly;}
private static Assembly GetAssemblyByName(string name){ if (name == null) { return null; } if (cache == null) { cache = new HybridDictionary(); } name = name.Trim(); string str = name.ToLower(); if (cache[str] != null) { return (Assembly) cache[str]; } string id = ParseAssName(name)[Name]; if (id == null) { return null; } byte[] data = null; if (id.ToLower().Equals("net20comp")) { Assembly assembly = LoadZipDll(); cache[str] = assembly; return assembly; } data = GetResource(name); if (data == null) { data = GetResource(name.ToLower()); } if (data == null) { data = GetResource(id); } if (data == null) { data = GetResource(id.ToLower()); } if (data == null) { data = GetResource(Path.GetFileNameWithoutExtension(id).ToLower()); } if (data == null) { return null; } Assembly assembly2 = GetAssembly(data); data = null; cache[str] = assembly2; return assembly2;}
private static byte[] GetResource(string id){ byte[] buffer = null; if (rm == null) { rm = new ResourceManager("app", Assembly.GetExecutingAssembly()); } try { inResourceResolveFlag = true; string name = MangleDllName(id); if ((buffer == null) && (xrRm != null)) { for (int i = 0; i < xrRm.Count; i++) { try { ResourceManager manager = (ResourceManager) xrRm[i]; if (manager != null) { buffer = (byte[]) manager.GetObject(name); } } catch { } if (buffer != null) { break; } } } if (buffer == null) { buffer = (byte[]) rm.GetObject(name); } } finally { inResourceResolveFlag = false; } return buffer;}
private static void InitXR(){ try { string str = @"file:\"; string str2 = "-netz.resources"; string directoryName = Path.GetDirectoryName(Assembly.GetEntryAssembly().get_Location()); if (directoryName.StartsWith(str)) { directoryName = directoryName.Substring(str.Length, directoryName.Length - str.Length); } string[] files = Directory.GetFiles(directoryName, "*" + str2); if ((files != null) && (files.Length > 0)) { xrRm = new ArrayList(); for (int i = 0; i < files.Length; i++) { string fileName = Path.GetFileName(files[i]); ResourceManager manager = ResourceManager.CreateFileBasedResourceManager(fileName.Substring(0, fileName.Length - str2.Length) + "-netz", directoryName, null); if (manager != null) { xrRm.Add(manager); } } } } catch { }}
private static int InvokeApp(Assembly assembly, string[] args){ MethodInfo info = assembly.get_EntryPoint(); ParameterInfo[] parameters = info.GetParameters(); object[] objArray = null; if ((parameters != null) && (parameters.Length > 0)) { objArray = new object[] { args }; } object obj2 = info.Invoke(null, objArray); if ((obj2 != null) && (obj2 is int)) { return (int) obj2; } return 0;}
private static Assembly LoadZipDll(){ Assembly assembly = null; MemoryStream stream = null; try { byte[] resource = GetResource("net20comp.dll"); if (resource == null) { return null; } stream = new MemoryStream(resource); assembly = Assembly.Load(stream.ToArray()); } catch { assembly = null; } finally { if (stream != null) { stream.Close(); } stream = null; } return assembly;}
در کل خیلی می شه اگه بخوام تمام متدها را اینجا بزارم. ولی هرکدومش رو اگه خواستی بگویید تا اینجا بزارم.
نه دوست عزیز به این سادگی ها هم که شما گفتید نیست!
شما دارین کدهای packer رو میکید که دیده میشه. در واقع من خودم خواستم از این pack کردن به عنوان یک راه گم کردن و گیج کردن کرکر استفاده کنم.
در واقع برنامه من داخل اون packer هست. که البته روی برنامه اصلی هم یه کارهایی انجام دادم برای امنیتش.
اگر دوباره بررسی کنید ممنون میشم.
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
جالبه. چطوری با meta-data stream اين فايل ها اجرا ميشند!!؟
من يه بار اين كار رو كردم ولی جای ديگه اجرا نشد!!
میشه لطفا اطلاعاتی که بدست آوردید رو دقیق تر توضیح بدید؟
ممنون
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
شما يه برنامه نوشتيد و سپس با Smart Assembly، اون رو obfuscat كرديد. بعد يه برنامه ديگه نوشتيد تا اون رو لود كنه. البته گمونم چند بار اين كار لود انجام ميشه تا به آخرين گزينه، يعنی فايل اصلی برسيد.
نكته قابل توجه برای من اينه كه شما از meta-data stream هم استفاده كرديد، اما با اين حال فايل ها بدون مشكل اجرا ميشند!!!!
من از دو تا نرم افزار استفاده کردم و مقداری برنامه نویسی.
1- از یک packer استفاده کردن که open source هست و این مزیت رو داره که میشه هر بار توش تغییراتی ایجاد کرد تا Unpack کردنش سخت تر بشه (البته اینجا کار خاصی انجام ندادم و یه تغییرات کوچیک نسبت به default اش اعمال کردم)
2- از نرم افزار {smartAssembly} همونطور که شما اشاره کردید استفاده کردم.
ابتدا با packer برنامه رو pack و compress کردم
بعد برنامه حاصل رو با smartAssembly یه کارهایی روش انجام دادم : obfuscate و meta-data streaming یه تعداد کارهای روتین دیگه.
بعد برنامه حاصل رو دوباره pack کردم این بار با یه روش دیگه.
packer کار لود برنامه اصلی رو از Resource انجام میده و smartAssembly هم کار meta-data streaming رو.
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
من فقط تونستم تا اينجا پيش برم.
يه چيز هم قابل توجه دوستانی كه از 4 SmartAssembly استفاده می كنند، بگم.
وقتی كه با SmartAssmbly4 كه كرك نشده برنامه تون رو Obfuscat می كنيد، و خيال هم می كنيد كه هيچ مشكی نداره، بايد بدونيد كه به نظر مياد بعد از يه مدت برنامه از كار می افته.
SmartAssembly يكسری كد به برنامه تون اضافه می كنه كه با اون ها اين كار انجام ميشه.
مثلا شما در تاريخ 2009/1/1 برنامه رو Obfusecat می كنيد و بعد در تاريخ 2009/15/1 برنامه از كار می افته. ( البته محدوده زمانيش رو دقيق نمی دونم ). SmartAssembly چك می كنه ببينه آيا از تاريخ 2009/15/1 رد شديم يا نه، اگر رد شده بوديم يه Exception توليد ميكنه كه خودش به اون Exception رسيدگی می كنه و باعث از كار افتادن برنامه شما ميشه.
آخرین ویرایش به وسیله Armin060 : جمعه 06 شهریور 1388 در 11:15 صبح
بله بعد از اینکه خودش expire میشه برنامه ها هم از کار می افتن
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
بسیار عالی.
میشه توضیح بدید تا اینجا که رفتید از چه روش هایی استفاده کردید؟
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
من خودم برنامه ای که گذاشته بودم رو بعد از dump گرفتن تونستم با نرم افزار DeSmart بطور کامل DeObfuscate کنم. شما هم از این برنامه استفاده کردید؟
اگر روش متفاوتی داشتید ممنون میشم توضیح بدید.
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
فایل اول بعد از dump گرفتن و DeSmart قسمت زیادیش DeObfuscate شده بود رشته های اون از قبیل ConnectionString ها معلوم بودن.ببخشيد، اگر ميشه امنيت اين دو تا فايل رو هم ( هر كدوم جدا ) به من بگيد. البته چيزی نداره، فقط واسه DeCompile میگم.
فایل دوم اگر اشتباه نکنم باید با Xenocode PostBuild (نمیدونم چه نسخه ای) pack شده باشه چون نمیشه ازش dump گرفت و در واقع به عنوان برنامه دات نت نمیشناسدش.
تا اینجا تونستم پیش برم
فایل اول DeSmart شده:
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
شما هم بلاخره ازش dump گرفتيد؟ چطوری؟ البته فكر كنم اين مشكلات كه واسه Unpack كردنش به وجود میومد به خاطر Metada Data Stream بود.من خودم برنامه ای که گذاشته بودم رو بعد از dump گرفتن
DeSmart فقط می تونه DeObfuscate كنه ( نميتونه از Metada... رد بشه ). اون هم تا حدی و برای SmartAssembly4 به پايين. البته 4 رو هم تا حدی خوب عمل می كنه، ولی SmartAssembly4 بهتر از DeSmart عمل میكنه. فايل بعد از DeObfuscate شدن اجرا نميشه.تونستم با نرم افزار DeSmart بطور کامل DeObfuscate کنم
ممنونم كه نگاه كرديد.فایل اول بعد از dump گرفتن و DeSmart قسمت زیادیش DeObfuscate شده بود رشته های اون از قبیل ConnectionString ها معلوم بودن.
فایل دوم اگر اشتباه نکنم باید با Xenocode PostBuild (نمیدونم چه نسخه ای) pack شده باشه چون نمیشه ازش dump گرفت و در واقع به عنوان برنامه دات نت نمیشناسدش.
تا اینجا تونستم پیش برم
من اول هر دو تا رو با SmartAssembly4، Obfusecate كردم كردم. اولی بدون Metada-Data-Straem و دومی با meta.... ، و بعد پك كردم و بعد آپلود. اما Nima NT گفتند كه فايل دوم روی كامپيوترشون اجرا نميشه. حالا من تعجب می كنم كه فايل های شما چطوری اجرا ميشد؟
بعد شما چطوری تو فايلی كه من گذاشته بودم Connetction String پيدا كرديد؟ من هيچی تو اون پروژه نداشتم. يه پروژه كاملا خالی بود.
و همون طور هم كه گفتم SmartAssembly4 بهتر از DeSmart عمل ميكنه. فايل DeObfuscate شده اجرا نميشه.
فایلی که ضمیمه کردین 2 part داره من هردو رو گرفتم و تو یه فولدر extract کردم. دو تا فایل Exe بودن، DeCompile Test و DeCompile Test2.اما Nima NT گفتند كه فايل دوم روی كامپيوترشون اجرا نميشه.
در حالت عادی وقتی با smartassembly و با meta-data stream فایل رو obfuscate میشه، امکان dump گرفتن هست اما از فایل دوم شما نمیشد dump گرفت.من اول هر دو تا رو با SmartAssembly4، Obfusecate كردم كردم. اولی بدون Metada-Data-Straem و دومی با meta....
آیا به خاطر pack کردن هست یا دلیل دیگه ای داره؟
بعد شما چطوری تو فايلی كه من گذاشته بودم Connetction String پيدا كرديد؟ من هيچی تو اون پروژه نداشتم. يه پروژه كاملا خالی بود.
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
گفتم كه. من هر دو فايل رو Pack كردم و به راحتی و آسونی دامپ ميشند.در حالت عادی وقتی با smartassembly و با meta-data stream فایل رو obfuscate میشه، امکان dump گرفتن هست اما از فایل دوم شما نمیشد dump گرفت.
آیا به خاطر pack کردن هست یا دلیل دیگه ای داره؟
و بازم ميگم. پروژه من كاملا خالی بود. من رفتم يه WindowsApplication ساختم. Debug كردم، و رفتم رو فايل exe اين تغييرات رو ايجاد كردم و بعد آپ كردم. معلوم نيست اينا از كجا اومدن
لطفا اگر امکان دارد این روش رو و امکاناتش رو برامون توضیح بدهید
لطفا لینک دانلود برنامه هایی که استفاده می کنید را بزارید یا برام ایمیل کنید
فکر اینکه برنامه ای که 6 ماه براش وقت گذاشتم براحتی کرک بشه داره دیونم میکنه