PDA

View Full Version : مخفی کردن کدها



elena
دوشنبه 04 دی 1391, 12:44 عصر
سلام،میشه کاری کرد تا سورس کد تو دلفی مخفی بشه؟:متفکر:یعنی کسی که به دلفی زیاد آشنایی نداره نتونه بفهمه چه کدهایی استفاده کردم .؟

یوسف زالی
دوشنبه 04 دی 1391, 13:42 عصر
سلام.
DLL - BPL - DCU - Component..
این ها بعضی از راهها هستند.
اما اگر منظورتون چیزی متنی هست فکر نمی کنم کاری بشه کرد.
می تونید اگر خیلی اعصاب دارید بعضی جاهای کد رو با ASM بنویسید.

elena
دوشنبه 04 دی 1391, 15:49 عصر
میشه واضحتر بگین،من میخوام کامپوننتهای adoconnection,adotable,dataset رو مخفی کنم ،امکانش هست؟

Felony
دوشنبه 04 دی 1391, 16:33 عصر
خیر ، همچین امکانی نیست .

یوسف زالی
دوشنبه 04 دی 1391, 16:34 عصر
برای این کار یک یونیت بساز که در اون توابعی مسئولیت ساخت این آبجکت ها و باقی کار ها رو دارن.
یونیت مورد نظر رو بعد از کامپایل (که به صورت DCU در میاد) می تونی حذف کنی.
اما:
1- نمی تونی از DCU به PAS برسی. بنابراین نمی تونی با نداشتن PAS تغییری در اون یونیت بدی.
2- در یونیت مورد نظر نباید یونیت هایی که فایل PAS دارند USE کرده باشی. در غیر اینصورت لازم می شه یک بار دیگه برنامه یونیت رو کامپایل کنه و اگه فایل PAS نداشته باشی ارور می ده.
3- DCU مورد نظر فقط در ورژن هایی قابل استفاده هست که باهاش کامپایل شده. وگرنه به بلای شماره 2 دچار می شی.

یکم به فلسفه کارتون سرک بکشیم، چرا اصلا همچین چیزی می خوای؟
به خاطر Connection String ؟

Emdad2001
دوشنبه 04 دی 1391, 17:05 عصر
آره سوال منم هست آیا راهی داره پسورد کانکشن استرینگ رو کسی نبینه حتی اگه به سورس دسترسی داشته باشه ؟

یوسف زالی
دوشنبه 04 دی 1391, 17:13 عصر
اگر به سورس دسترسی داشته باشه نه!
راهی نداره.
کافبه مثلا بنویسه
ShowMessage(YourADO.ConnectionString) // code

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

فکر می کنم تنها راهش همین باشه.

البته این راه هم ByPass می شه کرد. اما برای خیلی از برنامه نویس ها هم کار سختیه و برای تقریبا تمام کاربران نشدنی.

elena
دوشنبه 04 دی 1391, 18:33 عصر
برای این کار یک یونیت بساز که در اون توابعی مسئولیت ساخت این آبجکت ها و باقی کار ها رو دارن.
یونیت مورد نظر رو بعد از کامپایل (که به صورت DCU در میاد) می تونی حذف کنی.
اما:
1- نمی تونی از DCU به PAS برسی. بنابراین نمی تونی با نداشتن PAS تغییری در اون یونیت بدی.
2- در یونیت مورد نظر نباید یونیت هایی که فایل PAS دارند USE کرده باشی. در غیر اینصورت لازم می شه یک بار دیگه برنامه یونیت رو کامپایل کنه و اگه فایل PAS نداشته باشی ارور می ده.
3- DCU مورد نظر فقط در ورژن هایی قابل استفاده هست که باهاش کامپایل شده. وگرنه به بلای شماره 2 دچار می شی.

یکم به فلسفه کارتون سرک بکشیم، چرا اصلا همچین چیزی می خوای؟
به خاطر Connection String ؟ممنون از راهنماییتون،حالا بماند سرک نکشید:لبخند: