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

نام تاپیک: محافظت از فایل بر روی هادر دیسک در دلفی

  1. #1

    Thumbs up محافظت از فایل بر روی هادر دیسک در دلفی

    سلام به بزرگان برنامه نویس و دوستان گرامی .
    من در حال انجام پروژه ای هستم که در طول فرایند طراحی به مشکلی بر خوردم که از شما تقاضای کمک در این مورد دارم. نرم افزاری که در حال طراحی می باشد بعد از نصب بر روی سیستم کاربر ، شامل تنها یک فایل EXE ویک فایل Paradox است و در زمان اجرا صفحه ای باز می شود جهت Registration و کاربر در این فرم 10 تا Account قادر است برای خود تعریف کند و این حساب ها در داخل جدول Paradox ذخیره می شوند و بعد از تولید Activation Code و تماس با ما کد Authorization را در اختیار وی قرار میدهیم تا به اصطلاح یکی از 10 Accountایجاد شده فعال شود. خوب . فرض کنیم هر 10 حساب فعال شده هستند ، حال کاربر جهت استفاده از نرم افزار و ورود به آن یکی از این 10 حساب را انتخاب و دکمه ورود را می زند. از قبل و در زمان طراحی نرم افزار 2 تا فایل در داخل Application به صورت Resource ذخیره شده اند یک فایل DLL و یک فایل EXE . هر کدام از آن 10 حساب هم توسط کاربر برای خود یک مسیر خاص را انتخاب می کنند. و هنگام اجرا 2 تا فایل داخل Resource به مسیر آن حساب می روند و هنگام خاتمه برنامه از آن مسیر پاک می شوند. خلاصه میکنم، قرض کنیم حسابی که کاربر انتخاب می کند به صورت :
    Account Number = 123456
    Account Path = C:\Program Files\Babylon

    بنابر این باید DLL و EXE را از Resource خارج کرده و در مسیر بالا کپی کنیم و بعد از خاتمه از آن مسیر حذف کنیم. اصل قضیه محافظت از این 2 تا فایل است که نتوانند آنها را کپی و نهایتا Decompile بنابر این من ایده ی خودم رو برای محافظت از یک فایل در یک پوشه میگم و بعد مشکلاتم رو بیان میکنم . لازم به ذکر است متاسفانه این 2 تا فایل توسط برنامه های دیگری استفاده خواهند شد و نمیتوان به صورت کامل آن پوشه یا این 2 تا رو کاملا به صورت سیستمی قفل کرد ! بنابر این دست ما بسته است.


    1. عدم اجازه به کلیک راست کردن بر روی فایل
    2. چنانچه فرایند کپی به هر نحوی روی این فایل ها صورت گرفت بافر سیستم عامل خالی شود تا Paste در کار نباشد
    3. جلوگیری از Drag کردن فایل
    4. جلوگیری از SendTo


    س : چگونه نرم افزار متوجه میشود که دفعه قبل یک Exit موفق داشته و 2 تا فایل پاک شده اند ؟
    ج : یک فایل به هر اسم و پسوندی در یکی از کوچه پس کوچه های شاخه Windows میسازیم
    بر فرض مثال Aknowledge.abc
    در حین اجرای برنامه مقدار داخل فایل را 1 قرار میدهیم و در هنگام خروج پس از حذف 2 تا فایل مقدار فایل را صفر قرار میدهیم بنابر این :
    محتویات فایل Aknowledge.abc :
    0
    فایل های EXE و DLL از روی هارد پاک شده اند
    1 فایل های EXE و DLL روی هارد کپی و موجود هستن

    زمانی که برنامه اصلی اجرا می شود فایل Aknowledge.abc را نگاه می کند اگر مقدار آن صفر بود بنابر این خروجی موفق در اجرای قبلی داشتیم و فایل ها روی سیستم نیستند ولی اگه مقدار 1 داخل آن بود یعنی خروج قبلی به دالایل EndTask ، Restart و قطعی آنی برق و ... نا موفق بوده و فایل روی هارد است و باید به کاربر یک انتظار داده و یک Search کلی روی هارد دیسک انجام بدیم و هر جا کاملا مشابه این فایل ها را دیدیم آن را پاک کنیم. در ضمن برنامه ای که روی این 2 تا فایل قفل میکند از نوع سرویسش هم موجود است که مبادا طرف مارمولک باشد و اجرای برنامه را برای بار بعدی انجام ندهد .
    زیاد حرف زدم ببخشید.
    مشکلات من :

    1. من باید از عملیات کلیک راست و کپی گرفتن از فایل های موزد تهاجم با خبر شوم پس اگر ممکنه تابعی رو به من معرفی کنید که این امر را برای من نمایان کند همانند تابع FindNextChangeNotification و ...
    2. چگونه میتوان بعد از فعمیدن کپی گرفتن ، بافر را خالی کرد ؟ توابع کار با بافر چیست ؟ خواندن از و نوشتن در بافر ...
    3. Drag کردن چگونه صورت می گیرد ؟ آیا مثل همان پروسه ی اول کپی در بافر و بعد Paste است یا ... ؟
    4. لطفا Bug های این عملیات نگهداری از فایل رو به این روش شخصی برام بگید (جهت جلو گیری از تهاجم به آنها)



    واقعا شرمنده ...

  2. #2

    Unhappy نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    بازم سلام
    من پست زیر رو پیدا کردم
    http://www.barnamenevis.org/sh...47&postcount=4

    و به صورت زیر پیاده کردم :


    var
    hwndNextViewer:HWND;

    {$R *.dfm}

    Procedure TForm1.Button1Click(Sender: TObject);
    var
    fileName:LPTSTR;
    hd:HDROP;
    begin
    OpenClipboard (hwndNextViewer) ;
    if (hwndNextViewer>-1) then
    SendMessage (hwndNextViewer, WM_DRAWCLIPBOARD, 0, 0) ; // It is necessary

    hd:=GetClipboardData (CF_HDROP) ;
    Memo1.Lines.Add(IntToStr(DragQueryFile(hd,0,fileNa me, SizeOf(fileName))));
    Memo1.Lines.Add(fileName);
    CloseClipboard () ;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    hwndNextViewer := SetClipboardViewer (hwndNextViewer) ;
    end;



    فایلی که من از اون کپی گرفتم در مسیر زیر است :

    C:\Documents and Settings\Administrator\Desktop\DelphiNote.doc

    و با توجه به طول آن تعداد کاراکتر های آن درست برگردانده می شود اما آدرس فایل نه و خروجی Memo به صورت زیر در می آید :


    62
    님謁[1]ʜ

    جریان چیه ؟
    کجای کارم ایراد داره ؟
    آخرین ویرایش به وسیله Anis131313 : دوشنبه 07 دی 1388 در 18:09 عصر

  3. #3

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    واقعا کسی نیست جوابی به من بده ؟
    اگه سوالاتم رو بد یا اشتباه مطرح کردم بهم بگید تا تصحیح کنم.

  4. #4

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    خوب تا جای که من می بینم 5 را برای کپی کردن از یک فایل وجود داره :

    1. کلیک راست و انتخاب کپی
    2. Ctrl + C
    3. استفاده از منوی SendTo
    4. درگ (Drag) کردن فایل (که خود شامل کلیک چپ و راست میشه)
    5. استفاده از خط Command Dos در ویندوز

    در برنامه آپلود شده موارد 1 و 2 حل شد در این 2 مورد سیستم عامل از ClipBoard استفاده میکنه اما در 3 مورد بعدی دستور کپی در لحظه و بدون استفاده از بافر انجام میشه.

    ممنون میشم اگه دوستان را حلی برای 3 مورد بعدی دارند ارائه بدن.
    پیشنهاد من برای این 3 مورد استفاده از فکوس Focus سیستم عامل بر روی فایل مورد نظره...

    منتظرم ممنون ...


    Clipboard.rar

  5. #5

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    میتونید پیغام هایی که در زمان کپی فایل به ویندوز ارسال میشود رو هوک کنید .

  6. #6

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    نقل قول نوشته شده توسط SilverSoft مشاهده تاپیک
    میتونید پیغام هایی که در زمان کپی فایل به ویندوز ارسال میشود رو هوک کنید .
    سلام و ممنون از جوابتون دوست خوبم.
    راستش من چیز زیادی راجع به Hook کردن بلد نیستم اگه شما باهاش کار کردین و میدونید چطور میشه پیغام کپی رو هوک کرد ممنون میشم که اینجا یه لینک یا شبه کد برام بذارین.

  7. #7

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    بارها دربارش بحث شده ، همین چند وقت پیش یکی از کاربران دربارش سوال پرسید ، کلمه هوک یا Hook رو جست و جو کن .

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

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    سلام بعد علاوه بر hook کردن چون فایلتون EXE نیست کریپت هم بکنید

  9. #9

    Red face نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    نقل قول نوشته شده توسط hojjatcroos مشاهده تاپیک
    سلام بعد علاوه بر hook کردن چون فایلتون EXE نیست کریپت هم بکنید

    سلام
    مرسی

    برام بیشتر راجع به کریپت (Crypt) کردن میگین که بقیه شو خودم پیگیر بشم...
    مثل نام یه تابع یا اصطلاح انگلیسی

    چطوری از این عملیات میشه استفاده کرد ؟


    _________________________________________________

    یه سوال دیگه هم هست...
    آیا با هوک کردن توابع کپی ، عملیات کپی در CommandDos هم هوک خواهد شد ؟

  10. #10
    کاربر دائمی آواتار hojjatcroos
    تاریخ عضویت
    آبان 1387
    محل زندگی
    ایران
    پست
    286

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    شما با هوک کردن کنترلی بر توابع و پیغام های ویندوز دارید.
    اگر می خواهید فایل شما پروتکت باشد(کپی نشه،پاک نشه،جابجا نشه) می تونید هوک رو انتخاب کنید توابع زیر رو هوک کنید فایل شما به صورت کامل پروتکت میشه.(WIN XP)
    DeleteFileW
    CopyFileExW
    MoveFileWithProgressW
    MoveFileW
    MoveFileExW
    Eecrypt و Decrypt هم به این منظور هست که فایل شما رمزنگاری یا رمزگشایی بشه
    زمانی که برنامه می خواهد از فایل استفاده کنه فایل را در رم رمزگشایی کنید و بعد رمز گذاری

    آیا با هوک کردن توابع کپی ، عملیات کپی در CommandDos هم هوک خواهد شد ؟ بله

  11. #11

    نقل قول: محافظت از فایل بر روی هادر دیسک در دلفی

    نقل قول نوشته شده توسط hojjatcroos مشاهده تاپیک

    DeleteFileW
    CopyFileExW
    MoveFileWithProgressW
    MoveFileW
    MoveFileExW

    بسیار عالی . ممنون از شما دوست خوبم. من خودم در مورد نمونه ی هوک شده یکی از این توابع Search میزنم. ولی اگه شما یا هرکدام از دوستان کدی ساده رو داشتند ممنون می شم اینجا قرار بدین.

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

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