PDA

View Full Version : برنامه رمز گذاری



lonely1372
چهارشنبه 23 مرداد 1392, 14:27 عصر
سلام به همه دوستان و اساتید
میخوام شروع کنم یه برنامه کاربردی واسه استفاده شخصی (فعلا البته) بنویسم
میخوام راهنماییم کنید به چه چیز هایی نیاز دارمو . از کجاش باید شروع کنم
حالا برسیم به شرح برنامه :

میخوام برنامه یه قسمت دریافت فایل داشته باشه یا آدرس فایل بعد یه تعداد رمز یا هرچیزی مشابه دریافت کنه فایل رو رمزگذاری کنه و به صورت یه فایل exe تحویل بده که رمز بخواد اگه رمز درست بود فایل رو باز کنه و اگه رمز اشتباه وارد شد بعد از سه دفعه فایل فایل حذف بشه ...

قسمت مهمش اینه که فایل خروجی به صورت یه تک فایل Exe باشه


با تشکر ...

aliagamon
چهارشنبه 23 مرداد 1392, 15:08 عصر
خوب اگه بخوای میتونی یه چیز ساده بنویسی مثلا یه برنامه رو تو یه ارایه بایت باز کنید
و بعد میتونین یک سری از کد هارو به اون اضافه کنید (کاملا بی معنی) و موقع decode کردن اون هارو پاک کنید و برنامه رو دوباره به یه فایل خروجی تبدیل کنید(تو یه فایل exe ذخیره کنین ).
و یه راه واسه کد کردن اینه که بیای و بایت هارو چنتا چنتا با هم جمع بزنین(که decode کردنش خیلی سخته ).
در نهایت هم واسه ساختن تنها یک فایل exe خروجی براین این کار میتونی اینطوری تعریف کنی موقع کد کردن که کامپایلر داشته باشه که خروجی رو تو یه ارایه تو برنامه نهایی ذخیره کنه
اگه نفهمیدین بگین بیشتر توضیح بدم(شاید بد توضیح داده باشم چون خیلی پیچیده هست این قضیه)

lonely1372
چهارشنبه 23 مرداد 1392, 15:36 عصر
اگه بیشتر توضیح بدین خیلی ممنون میشم
چون هم خیلی علاقه دارم به این مبحث هم تقریبا مبتدی ام و اینکارا رو واسه اولین باره رفتم سمتش

aliagamon
پنج شنبه 24 مرداد 1392, 07:37 صبح
کد کردن که یکم پیچیده هست میتونه بمونه واسه اخر کار ...
شما الان درواقع باید یک جور کامپایلر بسازید که توانایی اینو داشته باشه که یه سورس اماده از قبل داشته باشه و تنها مقادیر ارایه byte اونو عوض کنه ....
و این کامپایلر در برنامه اصلی شما وجود داشته باشه که شما بتونید با خواندن فایل مورد نظر اونو بریزین تو byte و در سورس کد درون کامپایلر داخلیتون قرار بدین...
در نهایت کامپایلر را فعال کنید تا یک خروجی exe بگیرین...
سورسی که کامپایلر داخلی کامپایل میکند درواقع یک برنامه ساده است که byte هارو در فایل خروجی می نویسد....
برای پسورد گذاشتن هم میتونید یک متغییر پسورد درون سورس کامپایلر داخلی قرار بدین که اگر null نبود موقع نوشتن بایت ها بپرسد...
نوشتن کامپایلر خیلی هم سخت نیست کمی تلاش کنین مطمئنا به نتایج خوبی میرسید برای مثال از CSharpCodeProvider و ICodeCompiler استفاده کنید اگر اشتباه نکنم تو سایت codeproject هم یه نمونه کامپایلر سی شارپ گذاشته بود....
این بخش کار رو انجام بدین بقیه کار خیلی سخت نیست(اینم خیلی سخت نیست)...
تنها شما باید اون بایت هارو مبهم کنید که کسی نتونه با یه decompiler بایت هارو در بیاره و دستی بنویسه...
که این مرحله میتونه دو بخش باشه یا برنامه نوشتن بایت هارو مبهم کنید یا بایت هارو مبهم کنید(encode)....
که البته مبهم کردن سخت نیست شما باید بتواندی یک کلاس برای decode کردن هم بنویسید وگرنه یک سری کد بی معنی خواهید داشت....
کد گذاری کمی پیچیده هست من پیشنهاد میکنم مرحله اولو که انجام دادین بیاین سراغ این بخش...

lonely1372
پنج شنبه 24 مرداد 1392, 11:29 صبح
خیلی ممنون لطف کردید
حالا باهاش ور میرم اگه مشکل داشتم مزاحمتون میشم :)