PDA

View Full Version : استفاده از ++C یا ... در #C



regbyte
شنبه 03 شهریور 1386, 19:08 عصر
با سلام
بدلیل اینکه کدهای NET. توسط نرم افزار های Reflector قابل بازخوانی هستند، و به نرم افزار هایی مثل Dotfuscator دسترسی ندارم، می خواستم یک قسمت از نرم افزارم را که مثلا یک رشته می گیرد و یک رشته برمی گرداند، را بصورت یک DLL در یک زبان دیگر بنوسم و از آن استفاده کنم.
آیا می توانم از ++C در Net. استفاده کنم (از MFC یا ...)
یا راه دیگری وجود دارد؟
لطفا یک مثال کوچیک.

quack
شنبه 03 شهریور 1386, 22:02 عصر
DLL را با هر زبانی که خواستی بنویس بعد در منوی Project گزینه add Reference را کلیک کن
اونجا میتونی DLL خودتو اضافه کنی
اگه می خوای پسوردت را اونجا بزاری طرف مقابلت هم میتونه با کپی کردن کدهای دات نت به همون روشی که خودت رشته را خواندی اون هم از DLL بخونه !!!!

regbyte
یک شنبه 04 شهریور 1386, 10:09 صبح
با تشکر
آیا راهی برای این مشکل وجود دارد؟
میشه راهنمایی کنید.

quack
یک شنبه 04 شهریور 1386, 19:39 عصر
اگه برنامت دیتابیسه یوزر رو در خود دیتابیست تعریف کن

mehdi.mousavi
یک شنبه 04 شهریور 1386, 20:00 عصر
با سلام
بدلیل اینکه کدهای NET. توسط نرم افزار های Reflector قابل بازخوانی هستند، و به نرم افزار هایی مثل Dotfuscator دسترسی ندارم، می خواستم یک قسمت از نرم افزارم را که مثلا یک رشته می گیرد و یک رشته برمی گرداند، را بصورت یک DLL در یک زبان دیگر بنوسم و از آن استفاده کنم.
آیا می توانم از ++C در Net. استفاده کنم (از MFC یا ...)
یا راه دیگری وجود دارد؟
لطفا یک مثال کوچیک.


سلام.
کدهایی که می نویسید یا از DOTNET استفاده میکنن یا نمیکنن. تو حالت اول به کد میگن Managed و تو حالت دوم میگن Native یا Unmanaged. (اگر چه به نظرم Unmanaged کلمه بسیار نامناسبی برای کدهای Native هستش). این اهمیت نداره که شما کد Managed رو تو چه زبونی بنویسید، چون همه اونها کد IL تولید می کنن و در نتیجه قابل باز شدن هستن. در نتیجه استفاده از C++ در DOTNET هم بهتون کمکی نمیکنه.

اما اینکه بخواهید از MFC یا Win32 استفاده کنید، یه مساله دیگه هستش. اگر با استفاده از دو تکنولوژی اخیر یاد شده، DLL خودتون رو بسازید، باید نکات بسیاری رو در موردش رعایت کنید و الا اونها هم قابل Decode شدن هستن و تمام زحماتتون از بین میره. مساله فقط زمان هست.

پاورقی 1:
با استفاده از کلاس SecureString می تونید یه String رو بصورت محافظت شده در برنامه نگهدارید.

پاورقی 2:
اگر کد Managed تولید می کنید، مطمئن بشید که از یکی از Obfuscater های خوب استفاده می کنید تا این مساله رو حل کنید. بیاد داشته باشید که در بعضی مواقع، حتی نیازی نیست که مهاجم String شما رو Decode کنه. کافیه شرط شما رو by pass کنه، و همه چی تمومه.