سلام.
من یه سوال داشتم.
ممکنه نرم افزاری بنویسیم بعدش کد های نرم افزار مثل توابع و کلاس هایی که ساختیم رو با کرک پیدا کنن؟
منظورم این نیست که با مهندسی معکوس حدس بزنن. یعنی که کاملا بتونه کد رو ببینه.
سلام.
من یه سوال داشتم.
ممکنه نرم افزاری بنویسیم بعدش کد های نرم افزار مثل توابع و کلاس هایی که ساختیم رو با کرک پیدا کنن؟
منظورم این نیست که با مهندسی معکوس حدس بزنن. یعنی که کاملا بتونه کد رو ببینه.
كرك نياز نداره. نرم افزارهاي زيادي هست( معروف به Decompiler) كه به راحتي كدهاي فايل EXE نشون ميده. حتي كدهاي كتابخانه هاي مايكروسافتو ميتوني ببيني. يه نرم افزارهايي هم به اسم obfuscator هست كه كد تغيير ميدن تا خوانايي كد كاهش پيدا كنه ولي در كل راه كلي وجود نداره و به راحتي ميشه كدهارو ديد.
زبان خاصی وجود نداره که نرم افزارای ساخته شدش این مشکلو نداشته باشن؟
زبان هاي جاوا و دات نت مثل سي شارپ به يك زبان مياني تبديل ميشن و مستقيم به زبان ماشين تبديل نميشن بنابراين كدشو ميشه ديد. زبانهايي مثل c و C++ فك كنم به زيان اسمبلي يا ماشين تبدديل بشن.
اصولا هیچ چیزی وجود نداره که نشه رفلکتش کرد .
ولی شما با همینobfuscate ها مثه smart assembler روو سورست کار کن . (smart assembler رو دانلود کن . )
بهت قول میدم کسی از کدت سر در نیاره (هر چند راهی برای دور زدن این هم هست . ولی خیلی نیستن اونایی که بلدن ) :دی
شما گفتی C++ رو نمی شه کرک کرد.میشه من اون کد محرمانه رو تو سی پلاس پلاس بنویسم بعد به عنوان DLL توی #C ازش رفرنس بگیرم استفاده کنم؟ .
سلام
RedGate.Reflector تو تبدیل exe به سورس حرف نداره و کارش رو عالی انجام میده و شما میتونی از این استفاده کنی تا بفهمی هنوز کسی میتونه سورس کد شما رو ببینه یا نه
و باید اضافه کنم که توی سی شارپ روش هایی وجود داره که کد هات رو کاملا میشکنه تا کسی نفهمه چی به چی شده و حتی یه برنامه دیدم که با سی شارپ نوشته شده بود و این نرم افزار اصلا سورسش رو نشون نداد چون کاملا قفل شده بود
اگه توی گوگل به انگلیسی سرچ کنی راه حل های زیادی وجود داره
با سپاس Spaceman
میشه طرز کار با Smart Assembler رو بگین؟
یا اینکه یه تاپیک مفید در رابطه باهاش معرفی کنید.
بخششید یه سوال دیگه.
من یه فایل dll بسازم چی؟
این فایل که دیگه exe نیست که با decompiler شناسایی بشه.
بازش هم کا می کنم یه مشت چرت و پرته. فایل dll هم قابل لو رفتنه؟
سلام
بله
dll رو هم میشه بازش کرد و کدهاش رو خوند
با سپاس Spaceman
شما در هر صورت نمیتونید کاری کنید که دسترسی به سورس غیر ممکن بشه میتونید اونو سخت کنید...
وگرنه تا الان دیگه هیچ برنامه ی محبوبی کرک نمیشد چون غیر ممکن بود ...
از یه پروتکتور خوب استفاده کنید ...
ای بابا!
اعصاب من خرد شد دیگه.
شما ها چطوری با خیال راحت برنامه های امنیتی می نویسید؟ من هر جوری حساب کنم نمی تونم این برنامه رو با این اوضاع بنویسم.
باید یه الگرویتمی طراحی کنم که اگه بهش دسترسی هم داشته باشن باز نشه کاری کرد.
فهمیدم چی کار کنم.
الگوریتم کار که کامل شد صد برابرش سیا بازی می کنم. کاری می کنم که نرم افزار یه مگی بشه 10 مگ!
هفت جد طرفو میارم جلو چشاش( البته به شکلی که نرم افزار کند نشه )
شما میتونی چنین کاری انجام بدی ولی این کار بر خلاف مهندسی نرم افزار هست
;)
بهترین راه راهی هست که گوگل پیش گرفته
برنامه هاش رو طبق استاندارد ها مینویسه ولی با کلی از این نرم افزار های تبدیل به سورس شکسته میشکونتش که برا فهمیدنش باید کلی وقت بزاری تا شاید بتونی بفهمی
در کل منظورم اینه شما کد هات رو با تبدیل های بسیار به اسمبلی برسون و بعد اون کد های اسمبلی رو بشکون به بخش های مختلف تو در تو و درهم
اینجوری کسی که میخواد برنامت رو هک کنه باید یه ادم بی نهایت بیکار باشه و چندین ماه براش وقت بزاره تا شاید بتونه یه کاری بکنه
سورس کد های ویندوز ماکروسافت هم از همین روش ها هستن که کسی دسترسی به اون سورس کد های فوق محرمانه ویندوز نمیتونه پیدا کنه
با سپاس Spaceman
نه برادر من!
منظور من این بود که الگوریتم زاید می نویسم. اونقدر هم تو در تو می کنم که الگوریتم زاید از اصل کاری تشخیص داده نشه. بعدش یه تکنیک های کوچولو دارم که اعصاب خواننده رو خرد می کنه( سیستم goto ساخته ی Edwards bison)
شما چه روشی پیشنهاد می کنید؟تست کنید دوست عزیز ولی جواب نخواهد داد
این مدل روشها رو من حدود 5 سال پیش امحتان کردم ؛ اگر جستجو کنید فک کنم تاپیکهاش رو بتونید پیدا کنید
کل نرم افزار حدود 300 خطه! اما مراحل رمزنگاریش به حدی مهمه که اگه لو بره پول یه عده بی گناه میره هوا
واسه همین لو نرفتن کار واسم اهمیت داره
از پروتکتورها استفاده کنید ؛ چون حداقل توسعه دهنده یه پروتکتور تجربیات بیشتری نسبت به شما داره و این میتونه امنیت برنامه شما رو تا حدی تامین کنه
بهترین و قویترین پروتکتوری که میتونید استفاده کنید یکی EXE Cryptor هست و یکی Themida. وقتی با این پروتکتورها نرم افزارتان را رمزنگاری میکنید دیگه امکان مشاهده کدها و دستیابی به سورس نرم افزار و کرک کردن نرم افزار در حالت عادی وجود نداره. اما باز هم کرکرهای خیلی قوی میتونند این فایل Encrypt شده شما رو Decrypt کنند اما کار خیلی سختی هست و از دست هر کسی بر نمیاد و شما میتونید مطمئن باشید که 99% دزدان نرم افزاری نمیتونند نرم افزار رو کرک کنند یا به کدها دسترسی پیدا کنند. اما اون 1% باقی مانده را دیگه هیچ کاری نمیشه کرد. شما روی ماشینتون هم دزدگیر بزارید میتونید تا درصد بالایی امکان سرقت رو پایین بیارید اما هیچ وقت به 100% نمیرسید.
ضمنا اون الگوریتم زائد هم اگر برای ساخت کدفعالسازی استفاده بشه تا حدی میتونه کار رو پیچیده کنه اما نه خیلی زیاد. ضمن اینکه کار رو برای ساخت کیجن میتونه پیچیده تر کنه اما نوشتن پچ براش هیچ کاری نداره و براحتی پچ میشه. بهترین راه این هست که به جای نوشتن الگوریتم زائد الگوریتم اصلی رو هر چه میتونید قویتر و پیچیده تر بنویسید و بعد با یکی از همون 2 پروتکتوری که معرفی کردم Encrypt کنید.
آخرین ویرایش به وسیله connector : دوشنبه 12 خرداد 1393 در 16:23 عصر
اصلا قضیه کد فعال سازی نبود. بحث در مورد ساخت فایلی بود که ت
توش اطلاعات به صورت رمزی هستن.
باشه سعی می کنم الگوریتم رمز نگاری ام رو قوی کنم.
از این نرم افزار ها هم استفاده می کنم.
دستتون درد نکنه
اگه از چند تا شون با هم استفاده کنم چی؟ بهتر نیس؟
معمولا" ناسازگاری به وجود میاره و ممکن هست برنامتون روی یه سیستم کار کنه و روی دیگری نه بنابراین سعی کنید از یه پروتکتور و البته از بهترین اونها استفاده کنید
نمیشه چند تارو با هم استفاده کرد ، منم دوستان TheMida , .NETReactor رو بهم پیشنهاد کردن
اسمارت اسمبلی هم خیلی خوب هست و امنیت بالایی دارد. دات نت رفلکتور هم نتونست بازش بکنه.
نمیتونی قسمت دیکدر و اون الگوریتم های کدگذاری که داخل برنامه ات استفاده شده را تحت وب کنید و به شکل یک وب سرویس ازش استفاده کنید ؟
این روش که گفتم به نظرم بهترین روش است که فقط احتمال لو رفتن از سمت هاستینگ وجود دارد یا نفوذ به هاست که در دسترس بودنش خیلی کمتر از حالت کامل آفلاین است .
اسمارت اسمبلی یه جور کدهایی تولید میکنه که اگه احیانا کاربر تونست اونها رو ببینه گیج میشه و نمیتونه تشخیص بده کدها چی هستن.این نرم افزار رفرنس های برنامه و دی ال ال ها رو یه جوری تغییر میده که من که دفعه اول نگاه کردم فکر کردم برنامه من نیست. شما احتمالا با گزین های موجود در اسمارت اسمبلی برنامه تون رو زیاد امن نکردید. کدهاشوی برنامه رو میشه با نرم افزار های رفلکتور به دست آورد ولی به هیچ وجه نمیشه حتی یک ذره از اون رو خوند. اگه شما روشی برای این کار دارید ممنون میشم اینجا بزارید ما هم استفاده کنیم.
آخرین ویرایش به وسیله gjmkdyttyhujk : چهارشنبه 14 خرداد 1393 در 11:18 صبح
مثلا یک تابع داریم که ورودی آن یک رشته یا آرایه ای از رشته ها است . حالا به جای اینکه این تابع را کد های برنامه قرار بدیم میذاریم روی یک برنامه تحت وب ( با هر زبانی امکانش هست ولی چون با سی شارپ کار میکنیم با همون asp این کار را انجام میدیم ) . بعد نیاز به یک وب سرویس داریم که ورودی را از برنامه میگیره ، عملیات را تحت وب انجام میده و نتیجه را به برنامه بر میگردونه . ( دقیقا مثل وب سرویس های ارسال پیامک ) .
[QUOTE=gjmkdyttyhujk;2035820]درسته همینطور که خودتون میگید فقط سخت میشه ولی 0 نمیشه . اگر برنامه توجیه اقتصادی داشته باشد افرادی هستند که تمام این کد ها را کارکتر به کارکتر بررسی کنن .
به نظر شما سورس ما قوی تر هست یا سورس نرم افزار هایی مثل مایا ، 3d max یا فوتوشاپ ؟ چرا اونها وقتی ارائه میشن در کمتر از 1 ماه کرک میشن ؟
ولی وب سرویس این دسترسی را یکم سخت میکنه ( ولی 0 شدن در کار نیست ! )
والا اگه مسئله کرک شدنه که در هر صورت میشه ... چون همون وب سرویس هم طرف میاد یه برنامه مینویسه این وسط کار یعنی برنامه اطلاعات رو بفرسته به این برنامه و برنامه بفرسته به سرور ... خب این برنامه میتونه به برنامه ی نصب شده بگه که لاینسنس درسته و برنامه فعال شه ... یا کلا بیان از تو برنامه ی اصلی این بخش رو حذف کنن ... چون هرچی هم استفاده کنی اخرش یه شرط که بیشتر نیست ... چک کن برنامه فعاله یا نه ... همین ...
اما اگه بحث این باشه که الگوریتم لو نره وب سرویس امن ترین چیزه ... چون خیلی دسترسی بهش سخته و اگه از یه فایروال خوب استفاده کنه ... تغریبا دست رسی غیر ممکن میشه ... شاید یه درصد باقی بمونه ... که میشه از اونها چشم پوشی کرد چون همیشه هست ...
درسته. کاملا درست می فرمایید.قسمت activation code هر نرم افزار فکر نکنم کدهای زیادی داشته باشه. مثلا نهایت 500 خط کد. اگه کسی بیاد یک ماه اونم هر روز 7-8 ساعتی بیاد بشینه روش کار کنه. به نظرم میشه. ولی فعال سازی با اینترنت نرم افزار میتونه جلوی این کار رو بگیره. خیلی ممنون از شما.
یک سوال داشتم، شما نرم افزارهای معروفی رو میشناسید که کرک نشده باشند؟