PDA

View Full Version : طریقه کد گذاری بر روی فایل dll



ali_behshahr
چهارشنبه 15 دی 1389, 19:52 عصر
سلام بر شما مهندسین عزیز
من یه فایل dll نوشتم می خوام روش کد بزارم که هر کس نتونه ازش استفاده کنه

abbas.oveissi
چهارشنبه 15 دی 1389, 21:06 عصر
سلام بر شما مهندسین عزیز
من یه فایل dll نوشتم می خوام روش کد بزارم که هر کس نتونه ازش استفاده کنه

میتونی توی Constructor یه ورودی تعریف کنی ازش به عنوان key استفاده کنی،وقتی کسی میخواد یک شیء از کلاس های توی DLL درست کنه،مجبوره key رو وارد کنه ، حالا میتونی توی متد ها چک کنی ببینی این Key رو درست وارد کرده یا نه،اگه درست بود که هیچی،اگرم اشتباه بود،متد رو اجرا نکنه .

پ.ن : این راه الان به ذهن من رسید،احتمال داره راه های بهتری هم وجود داشته باشه :متفکر:

georgiaro
چهارشنبه 15 دی 1389, 23:23 عصر
اگه منظورتون روشیه که dll قفل و غیر قابل ویرایش برای دیگران بشه میتونی از جفت کلید ها استفاده کنی .
اگه همینو میخواستی بگو تا روششو بگم.

ali_behshahr
پنج شنبه 16 دی 1389, 08:55 صبح
عباس جان میشه یک مثال بزنی

ali_behshahr
پنج شنبه 16 دی 1389, 08:58 صبح
میشه مثال بزنید مرسی

abbas.oveissi
پنج شنبه 16 دی 1389, 12:45 عصر
عباس جان میشه یک مثال بزنی

من الان یه مثال با این روشی که گفتم درست کردم و برات ضمیمه کردم . برنامه وقتی میخواد از کلاس داخل dll استفاده کنه داخل constructor یدونه key وارد میکنه که در تمام متد های برنامه این key با main_key ( که شما وارد میکنی تا هرکسی از dll استفاده نکنه ) یکی باشه .

کدهای داخل dll :



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;



namespace class_with_key
{
public class class_with_key
{
public string key;
private const string main_key="abbasoveissi";

public class_with_key(string key)
{
this.key = key;
}

public void print(string text,string key)
{
if (!main_key.Equals(key))
{
//اشتباه هست،اینجا بنویس key هر کاری میخوای بکنی وقتی
return;
}
Console.WriteLine(text);
}

public void sum(int a,int b,string key)
{
if (!main_key.Equals(key))
{
//اشتباه هست،اینجا بنویس key هر کاری میخوای بکنی وقتی
return;
}

Console.WriteLine("sum : {0}", Convert.ToString(a + b));
}
}
}

Hossenbor
پنج شنبه 16 دی 1389, 15:03 عصر
سلام ایا با این روش دسترسی توابع و فیلدهاهم محدود میشه یا نه و یک چیز دیگه اون مقدار ثابت با کرک هم عوض نمیشه

abasfar
پنج شنبه 16 دی 1389, 15:11 عصر
ددوست عزیز کرک کاران دو ثانیه نمیکشه که کدتو رو بدست میارن

water_lily_2012
پنج شنبه 16 دی 1389, 15:19 عصر
شما یک کار بهتری نیز می تونید انجام بدید که امنیت خیلی بهتری داره. اول فایل DLL خود را به صورت رمز در بیارید. و فقط هنگامی که نیاز به اون دارید اون را از حالت رمز خارج کرده و در یکی از پوشه های ویندوز مثلا temp اجرا کنید. و از توابع استفاده کرده و دوباره اون را پاک کنید. در این صورت یکی اینکه هیچ کس نمی دونه فایل dll شما در کجا هست و دومی اینکه اصل اون رمز هست.
بای

abbas.oveissi
پنج شنبه 16 دی 1389, 15:28 عصر
ددوست عزیز کرک کاران دو ثانیه نمیکشه که کدتو رو بدست میارن

خب تا اونجایی که من میدونم چیزی نیس که جلوی کرک کردن رو بطور 100% بگیره،این روش برای اینه که آدم معمولی نتونه از DLL استفاده کنه نه یه آدم که کرک کردن بلد هست . حداقل باید سعی کرد دایره افرادی که میتونن از DLL بی اجازه استفاده میکنند رو کم کرد،هرچی الگوریتم قوی تر باشه عده کمتری میتونن ازش استفاده کنن :لبخند: این راهی هم که من گفتم ، فکر کنم راحت ترین راه موجوده.احتمالا باید کلی راه دیگه هم باشه،کسی اگه چیزه دیگه بلده بگه خب ما هم بدونیم.



سلام ایا با این روش دسترسی توابع و فیلدهاهم محدود میشه یا نه و یک چیز دیگه اون مقدار ثابت با کرک هم عوض نمیشه

دسترسی منظورت چیه؟؟خب با این روش نمیتونه از متد استفاده کنه .
برای فیلد ها هم میشه توی GET و SET یه شرط گذاشت که چک کنه مقدار key و main_key یکی هست یا نه
من اصلا هیچ اطلاعاتی در مورد کرک ندارم ( البته هر برنامه نویس حداقل حتما باید یکمی بلد باشه ) :ناراحت: از دوستانی که کرک بلدن باید پرسید .

abasfar
پنج شنبه 16 دی 1389, 15:30 عصر
دوست عزیز باز با مانیتور کردن توابع میشه فایل را پیدا کرد وهمچنین بادید dll را decode کرد خوب اون الگریتم دست کرکر است کارش خیلی راحتر میشه

sonixax
پنج شنبه 16 دی 1389, 22:59 عصر
من یه برنامه ای دیده بودم که فایل EXE رو بر میداشت کد میکرد و یه EXE جدید تحویل میداد بعدش روی یک آدرس نا معلوم و رندم از حافظه دیکدش میکرد و اجراش میکرد - اینطوری کسی به الگوریتم کدگذاری شما دسترسی نداره .
ولی یادتون باشه حرفه ای ترین برنامه نویس های دنیا مثل جان کارمک از دست آماتور ترین کرکر ها در امان نیستند و برنامه هاشون کرک میشه .
بهترین راه برای در امان موندن از دست کرکر ها به نظر من قانون کپی رایت هست که توی ایران خبری ازش نیست .

Hossenbor
دوشنبه 04 بهمن 1389, 20:12 عصر
منظور شما smartassembly یا intelilock اسمارت اسمبلی رو تایید میکنم چیزه خوبیه یک روش هم دارم اونم فشرده سازی البته زیاد در این زمینه نمیدونم فقط در حد یک نظره و یک نظر دوم دیگه میتونی فایل رو رمز گذاری کنی و نظریه سومم یادم رفت باشه بعدن میگم

Nima NT
دوشنبه 04 بهمن 1389, 20:16 عصر
شاید این برنامه (http://www.hefaz-security.ir) بتونه کمکتون کنه....