نمایش نتایج 1 تا 10 از 10

نام تاپیک: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

  1. #1
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    Question گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    با سلام خدمت اساتید محترم

    در Smart Assembly گزینه ای به نام "I want to reduce unused allocated memory " وجود داره که وقتی تیک مربوط به اون رو میزنم و برنامه obfuscate میشه، با اجرای برنامه obfuscate شده، در task manager قسمت Memory مشاهده می کنم که حافظه استفاده شده توسط برنامه نسبت به قبل از obfuscate به شدت کاهش پیدا کرده. قبل از obfuscate حافظه استفاده شده 100 مگ و بعد از اون 4 مگ. البته این تا وقتیه که برنامه فقط باز باشد و هیچ کاری یا پردازشی انجام ندهد. به محض باز شدن یک فرم یا انجام یک پردازش مقدار حافظه به 70 – 80 مگ میرسه و بعد بلافاصله میشه همون 3 – 4 مگ.

    Name:  sa.jpg
Views: 208
Size:  46.6 کیلوبایت

    سوال اول : این گزینه در Smart Assembly دقیقا چه کار میکنه؟
    سوال دوم : من از کرک چیزی نمیدونم. آیا این مزیتی که برنامم بعد از obfuscate پیدا می کنه، می تونه احیانن جلوی دامپ حافظه توسط کرکر رو بگیره؟ چون به هر حال حافظه استفاده شده مدام در حال تغییر هست و 100 مگ میشه 4 مگ

    سوال سوم : من برنامم رو با 6 – 7 تا obfuscator تست کردم و خروجی همه اون هارو به de4dot دادم تا deobfuscate کنه بعدش هم فایل های deobfuscate شده (clean شده) رو با .NET Reflector باز کردم تا ببینم بعد از یک obfuscate و deobfuscate چه بلایی سر برنامه بدبختم اومده. بین همه obfuscator ها اول Crypto obfuscator و بعدSmart Assembly از همه بهتر بود. Crypto حتی بهتر از SA بود چون de4dot نتونست حتی نام کلاس های تغییر داده شده توسط Crypto رو برگردونه. برخلاف SA که برگردوند. (البته نمیدونم شاید این برای کرکر فرقی نکنه)
    حالا سوال سوم این که : با توجه به مزیت خوب SA در کاهش حافظه و مزیت خوب Crypto در برنگشتن نام کلاس ها، من کدوم obfuscator رو انتخاب کنم؟

    نکته انحرافی 1 : عجب برنامه ایست این de4dot. خدا بگم نویسنده هاشو چه کار کنه
    نکته انحرافی 2 : برنامه های deobfuscator خیلی راحت string های کد شده رو بر می گردونن. آخه پس ما چه خاکی به سرمون کنیم؟
    نکته انحرافی 3 : بعد از کلی بدبختی برای obfuscate کردن برنامم باید برم سراغ protect کردن اون. خدا بگم شما اساتید کرک رو چه کار کنه
    نکته انحرافی 4 : تازه آخرش هم میگن اگه میخوای برنامت کرک نشه، کلا برنامه ننویس و از این حرفا


    ممنون میشم اگه راهنماییم کنین

  2. #2
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    ای بابا هیچکی مارو تحویل نگرفت.
    یک سخنی حرفی حدیثی تجربه ای چیزی.
    حالا جواب سوال هام به کنار. لااقل بگین این سایته که ادعا کرده بعد از تست obfuscator ها، به این نتیجه رسیده که Crypto از همه بهتره راست میگه یا داره برای اون تبلیغات میکنه
    http://www.theobfuscator.org/#conclusion

  3. #3
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    سوال اول : این گزینه در Smart Assembly دقیقا چه کار میکنه؟
    این گزینه مربوط میشه به بهینه سازی های SA و ربطی به امنیت مبهم ساز نداره، اگر جمله رو ترجمه کنید معنی آن مشخص است (کاهش حافظه اختصاص داده شده که استفاده نمی شود) سورس رو گذاشتم که شما بتونید در مورد خط به خط کد تحقیق کنید.

    عجب برنامه ایست این de4dot. خدا بگم نویسنده هاشو چه کار کنه
    مبهم سازهای عمومی در بد افزارها مورد استفاده قرار می گیرند برای همین ابزارهای برای از مبهم خارج کردن توسعه داده می شود که تجزیه و تحلیل بد افزار راحتتر شود، برای اینکه نرم افزار شما در مقابل مهندسی معکوس ایمن باشد باید هزینه کنید استفاده از مبهم سازی که خودش کرک شده مثل این هست که به در منزل قفل شکسته وصل کنید.

    using System;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    using System.Threading;


    internal static class MemoryOptimizerType
    {
    [DllImport("kernel32", EntryPoint = "SetProcessWorkingSetSize")]
    private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);

    public static void Initialize()
    {
    Thread thread = new Thread(OptimizeMemory);
    thread.IsBackground = true;
    thread.Start();
    }


    private static void OptimizeMemory()
    {
    IntPtr handle = Process.GetCurrentProcess().Handle;
    while(true)
    {
    Thread.Sleep(16384);


    GC.Collect();
    GC.WaitForPendingFinalizers();
    if (Environment.OSVersion.Platform == PlatformID.Win32NT)
    SetProcessWorkingSetSize(handle, -1, -1);
    }
    }
    }

  4. #4
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    بعد از چند بررسی چند تا مبهم ساز دیگه و تست اونها روی برنامم وقتی به .Net Reactor (نسخه 5) رسیدم خیلی بهتر از Crypto جواب داد:
    مزایا :
    حتی de4dot هم نتونست deobfuscate کنه. (البته تو نسخه های بعدیش احتمالا کار این رو هم میسازه)
    اما مزیت دیگه که تو این چند مبهم سازی که تست کردم ندیدم تبدیل فایل به Native هست. به طوری که وقتی فایل مبهم شده رو به Net Reflector و یکی دو تا Net Decompiler دیگه دادم همشون گفتن که فایل دات نت نیست و نتونستن نشونش بدن. به یه deobfuscator دیگه غیر از de4dot هم دادم. اون هم خطا داد که فایل دات نت نیست.

    اگه واقعا به نیتیو تبدیل کرده باشه و امکان مشاهده کدهای دات نت رو از بین برده باشه فوق العاده است چون اولین دغدغه ما از بین میره. حالا میریم سراغ پروتکت کردنش.
    استاد اگه میشه نظرتون رو راجع به این کار این مبهم ساز (نیتیو کردن) بگین. آیا با این وجود باز هم راهی برای مشاهده کدهای من می مونه؟

  5. #5

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    با اجازه اساتید، خیر فایل تبدیل به Native نمیشه فقط فایلتون رو انکریپت و درون یک لایه Native قرار میده (فایل خروجی Reactor رو با PE Explorer یا Resource Hacker یا ... باز کنید در قسمت RCData میتونید فایل انکریپت شده رو با نام "__" میتونید مشاهده کنید ) ، برای از بین بردن لایه Native میتونید دامپ بگیرید یا کد de4dot رو مطالعه کنید و ببینید چطوری کار میکنه .
    در ضمن Reactor 5 هم قابل deObfuscate کردن هستش ...
    موفق باشید...

  6. #6
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    نقل قول نوشته شده توسط Reza-HNA مشاهده تاپیک
    برای از بین بردن لایه Native میتونید دامپ بگیرید یا کد de4dot رو مطالعه کنید و ببینید چطوری کار میکنه .
    اگه ممکنه بگین با چه نرم افزاری دامپ بگیرم؟ من نمیدونم دامپرها دقیقا چه کار می کنن. یعنی منظورتون اینه که دامپر فایل exe منو میگیره و یه فایل exe دیگه به من میده که تو اون، لایه نیتیو برداشته شده و فایل میشه همون دات نت؟
    منظورتون از این که کد de4dot رو مطالعه کنم متوجه نشدم. (de4dot نتونست deobfuscate کنه)

    نقل قول نوشته شده توسط Reza-HNA مشاهده تاپیک
    در ضمن Reactor 5 هم قابل deObfuscate کردن هستش ...
    چطوری؟ با چه نرم افزاری؟ منظورتون با نرم افزارهای deobfuscate موجود است یا توسط یک کرکر ماهر؟
    آخرین ویرایش به وسیله mosafer_deltang : شنبه 10 مهر 1395 در 10:42 صبح

  7. #7

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    نقل قول نوشته شده توسط mosafer_deltang مشاهده تاپیک
    اگه ممکنه بگین با چه نرم افزاری دامپ بگیرم؟ من نمیدونم دامپرها دقیقا چه کار می کنن. یعنی منظورتون اینه که دامپر فایل exe منو میگیره و یه فایل exe دیگه به من میده که تو اون، لایه نیتیو برداشته شده و فایل میشه همون دات نت؟
    منظورتون از این که کد de4dot رو مطالعه کنم متوجه نشدم. (de4dot نتونست deobfuscate کنه)
    با نرم افزار MegaDumper میتونید دامپ بگیرید (نرم افزار های دیگه هم هستند یا حتی میشه برنامش رو نوشت ولی این مخصوص dot net هست ) ، در واقع Reactor میاد بعد از دیکریپت کردن مستقیما برنامه رو روی رم بارگزاری و اجرا میکنه ، کار دامپر هم بیرون کشیدن برنامه از روی رم و ذخیره کردنش روی هارد هستش که اینکار باعث میشه لایه نتیو از بین بره . که البته در مورد Reactor بعد از دامپ برنامه کار نمیکنه و باید فیکس بشه ، بهترین کار همون استفاده از de4dot هست.

    نقل قول نوشته شده توسط mosafer_deltang مشاهده تاپیک
    چطوری؟ با چه نرم افزاری؟ منظورتون با نرم افزارهای deobfuscate موجود است یا توسط یک کرکر ماهر؟
    محدود افرادی میدونند که de4dot از Reactor 5 هم پشتیبانی میکنه (البته نه به صورت معمول) ، زیاد با de4dot کار کرده باشید کامندهاشو کار کرده باشید و کمی سورسش رو هم مطالعه کرده باشید تازه میفهمید چقدر امکانات دیگه داره که میشه ازش استفاده کرد ، اکثر افراد فقط درگ دراپ میکنن ارور که داد ، فکر میکنن کار نمیکنه!
    به هر حال بستگی به تجربه کرکر داره ، اینو هم اضافه کنم بدون ابزارآلات deobfuscate کردن اینطور چیز ها ممکن نیست!
    آخرین ویرایش به وسیله Reza-HNA : شنبه 10 مهر 1395 در 11:51 صبح

  8. #8
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    ممنون به خاطر توضیحات خوب و کاملت

  9. #9
    کاربر تازه وارد آواتار mosafer_deltang
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    اینترنت
    پست
    70

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    من یه برنامه ی تستی رو با .Net Reactor نیتیو کردم بعد با MegaDumper دامپ گرفتم. طبق گفته های جناب Reza-HNA، لایه نیتیو از بین رفت و برنامه ی دامپ شده با NET Reflector باز شد.
    اما برنامه خودم رو حتی قبل از مبهم سازی وقتی در MegaDumper روی پروسسش راست کلیک می کنم و بعد .NET Dump می زنم این خطا رو میده:
    Failed to open selected process
    این خطا رو همه جا سرچ کردم چیزی نیافتیدم!
    اگه ممکنه بگین این پیام چیه؟ چطوری دامپ بگیرم از برنامم؟
    ممنون

  10. #10

    نقل قول: گزینه ی "reduce unused allocated memory" در SmartAssembly چه کاری انجام می دهد؟

    ممکنه برنامتون با دسترسی ادمین اجرا شده باشه که دامپر نمیتونه بهش دسترسی پیدا کنه ، اگر اینطوره دامپر رو به صورت ادمین اجرا کنید .
    گاهی هم به خاطر استفاده از یکسری کدها یا کتابخانه های غیر معمول کد IL تولید شده کد خاصی تو شرایط خاصی تولید میشه که دامپ گرفتن یا ... رو با مشکل روبه رو میکنه که البته کار خیلی پیچیده ای نیست و قابل حل هست .

تاپیک های مشابه

  1. سوال: quotes در سورس ها
    نوشته شده توسط ŋµxXle در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: دوشنبه 25 خرداد 1388, 20:00 عصر
  2. سوال: نیاز به درک "پدیده گرسنگی" در زمانبندیهای سیستم عامل دارم
    نوشته شده توسط Jason.Bourne در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 1
    آخرین پست: جمعه 20 دی 1387, 17:35 عصر
  3. Out of memory exception در لود کردن ریپورت ها
    نوشته شده توسط EHprogramer در بخش گزارش سازی با Crystal Report
    پاسخ: 0
    آخرین پست: سه شنبه 27 فروردین 1387, 21:12 عصر
  4. تشخیص "," در یک رشته
    نوشته شده توسط مهدی رحیم زاده در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 25 آذر 1386, 12:08 عصر
  5. How to Release Allocated Memory?
    نوشته شده توسط Taha_u در بخش C#‎‎
    پاسخ: 4
    آخرین پست: چهارشنبه 02 آبان 1386, 18:18 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •