PDA

View Full Version : سوال: خطر DeCode شدن در Qt بیشتر است یا ++Visual C



AliRezaBeytari
یک شنبه 16 شهریور 1393, 09:36 صبح
سلام دوستان.
به نظر شما خطر DeCode شدن برنامه های نوشته شده توسط Qt بیشتر هست یا ++Visual C ؟؟!!!
و چرا ؟؟!!!

ممنونم.

کامبیز اسدزاده
یک شنبه 16 شهریور 1393, 10:36 صبح
سلام دوستان.
به نظر شما خطر DeCode شدن برنامه های نوشته شده توسط Qt بیشتر هست یا ++Visual C ؟؟!!!
و چرا ؟؟!!!

ممنونم.

همچین عنوانی نوشتی فکر کردم دیکد کردی C++‎‎‎ رو...
دوست من Visual C++‎‎‎ سه سوته دیکد میشه چون دقیقا مثل دات نت هستش و من خودم شخصا در عرض 1 دقیقه هر کدی رو که در VC++‎‎‎ نوشته بودم کشیدم بیرون و این عادیه که در رابطه با C#‎‎‎ و VB.NET هم همینطوره سریعا دیکد و کرک میشوند برای همین همه نرم افزار های ایرانی رو با یه قفل سخت افزاری مثل فلش میدن بیرون :قهقهه:

در رابطه با C++‎‎‎ شما اگه واقعا Native برنامه نویسی کنید خطر دیکد شدنش تقریبا صفر هست مگر اینکه راه نفوزی یه جایی گذاشته باشی که اونم بر میگرده به ضعف برنامه نویسی خود شما بنابراین در همین کیوت دیکد شدن سخته مثل دات نت نیست و دیگر کتابخانه های C++‎‎‎ هم همینطوره.

AliRezaBeytari
یک شنبه 16 شهریور 1393, 10:42 صبح
خیلی ممنون از پاسخ شما.
شما میگید که ++Visual C به راحتی DeCode میشه ، پس من برای نوشتن برنامه های ++C از چه کامپایلری استفاده کنم تا این خطر بسیار کم بشه ؟؟!!!

کامبیز اسدزاده
یک شنبه 16 شهریور 1393, 11:03 صبح
خیلی ممنون از پاسخ شما.
شما میگید که ++Visual C به راحتی DeCode میشه ، پس من برای نوشتن برنامه های ++C از چه کامپایلری استفاده کنم تا این خطر بسیار کم بشه ؟؟!!!
کامپایلر مهم نیست دوست من مهمترین اصلی که مهمه سبک برنامه نویسی هست.
برنامه هایی که به صورت استاندارد در C++ نوشته میشوند Native هستند در این حالت شما چه از کامپایلر GCC و یا از MSVC استفاده کنید فرقی به حال دیکد شدنش نخواهد کرد.
شما در همین C++ کد نویسی کنید و با هر کامپایلری کامپایلش کنید خروجی و کیفیت کار همان خواهد بود.

برای اینکه خیال شما راحت بشه بیخیال Visual C++ در محیط دات نت بشید. منظورم C++ CLR هستش.

AliRezaBeytari
یک شنبه 16 شهریور 1393, 11:20 صبح
کامپایلر مهم نیست دوست من مهمترین اصلی که مهمه سبک برنامه نویسی هست.
برنامه هایی که به صورت استاندارد در C++‎ نوشته میشوند Native هستند در این حالت شما چه از کامپایلر GCC و یا از MSVC استفاده کنید فرقی به حال دیکد شدنش نخواهد کرد.
شما در همین C++‎ کد نویسی کنید و با هر کامپایلری کامپایلش کنید خروجی و کیفیت کار همان خواهد بود.

برای اینکه خیال شما راحت بشه بیخیال Visual C++‎ در محیط دات نت بشید. منظورم C++‎ CLR هستش.

نه ، اشتباه نکنید.
من به هیچ عنوان در ++C از توابع .NET استفاده نمیکنم.
من پروژه هام رو از نوع Win32 Console Application درست میکنم و از APIهای ویندوز استفاده میکنم.

کامبیز اسدزاده
یک شنبه 16 شهریور 1393, 11:23 صبح
نه ، اشتباه نکنید.
من به هیچ عنوان در ++C از توابع .NET استفاده نمیکنم.
من پروژه هام رو از نوع Win32 Console Application درست میکنم و از APIهای ویندوز استفاده میکنم.

این روش هم Native هست ولی بهترین روش اینه Empty Project رو انتخاب کنید و از کتابخانه های استاندارد و Corss Platform استفاده کنید روشی که شما میرید مختص ویندوز هست.

موفق باشید.

kernel.programmer
یک شنبه 16 شهریور 1393, 13:01 عصر
شما به هر زبانی برنامه تونو بنوسی برنامتون به قول شما دیکد میشن فرقی هم نداره، اگه می خوای از برنامه محافظت کنی بهتره از یک پروتکتور استفاده کنی


[QUOTEدر رابطه با C++‎‎‎‎ شما اگه واقعا Native برنامه نویسی کنید خطر دیکد شدنش تقریبا صفر هست [/QUOTE]

نمیدونم چطوری به این نتیجه رسیدین ولی .... اینو چک کنید.

https://www.hex-rays.com/products/decompiler/index.shtml

حامد مصافی
یک شنبه 16 شهریور 1393, 15:36 عصر
مقایسه Qt با ++VC درست نیست. باید یک کامپایلر را با ++VC مقایسه کنید. فرض می‌کنیم سوال شما محدود به سیستم‌عامل ویندوز است. در این حالت کیوت از کامپایلر‌های ++VC و ++g استفاده می‌کند. که در حالت اول مقایسه‌ای نداریم. در حالت دوم هم خطر به دست آوردن سورس از روی خروجی با هر دو کامپایلر یکسان و چیزی در حدود صفر است.

hosseinam1370
یک شنبه 16 شهریور 1393, 16:25 عصر
الان برای دیکد کردن ، نیاز به فایل exe دارید؟حالا در ویندوز و میگم.

کدی که نوشتم تو حالت کنسوی و وقتی ران کردمش ، فایل exe رو منظورم هست.

با تشکر.

AliRezaBeytari
یک شنبه 16 شهریور 1393, 18:32 عصر
مقایسه Qt با ++VC درست نیست. باید یک کامپایلر را با ++VC مقایسه کنید. فرض می‌کنیم سوال شما محدود به سیستم‌عامل ویندوز است. در این حالت کیوت از کامپایلر‌های ++VC و ++g استفاده می‌کند. که در حالت اول مقایسه‌ای نداریم. در حالت دوم هم خطر به دست آوردن سورس از روی خروجی با هر دو کامپایلر یکسان و چیزی در حدود صفر است.

من الآن پروسه کارم رو توضیح میدم :

1. نرم افزار Visual Studio 2012 رو باز میکنم.
2. از منو File » New » Project یک پروژه ++C از نوع Win32 Console Application درست میکنم.
3. برنامه رو از نوع Empty Project درست میکنم.
4. یه فایل main.cpp درون پوشه Source برنامه درست میکنم.
5. درون فایل main.cpp این کدها رو مینویسم :

#include <iostream>
using namespace std;

int main()
{
cout << "Hello World !" << endl;
return 0;
}

6. برنامه رو Save و Compile میکنم و در پوشه Release فایل EXE برنامه ساخته میشه.

[میدونم خیلی کلیشه ای توضیح دادم و شما خودتون یه پا استادید ، اما دیگه میخوام خیالم راحت باشه.]

حالا من میخوام بدونم این برنامه من قابل DeCode شدن هست یا خیر ؟؟!!!
خیلی ممنونم.

احسان!
یک شنبه 16 شهریور 1393, 19:06 عصر
[QUOTE=AliRezaBeytari;2097909]من الآن پروسه کارم رو توضیح میدم : 1. نرم افزار Visual Studio 2012 رو باز میکنم. 2. از منو File » New » Project یک پروژه ++C از نوع Win32 Console Application درست میکنم. 3. برنامه رو از نوع Empty Project درست میکنم. 4. یه فایل main.cpp درون پوشه Source برنامه درست میکنم. 5. درون فایل main.cpp این کدها رو مینویسم : [CPP] #include using namespace std; int main() { cout این همون کد native ای تولید میکنه که دوستان گفتن.(احتمال نزدیک به صفر و... )

omid_kma
یک شنبه 16 شهریور 1393, 19:20 عصر
کد ++C شاید decode شدنش از بقیه زبان ها سخت تر باشه ولی بازهم احتمال decode شدن هست
این کدی که گذاشتید چیز خاصی نداره به هر مبتدی هم بدید میفهمه چکار می کنه
دموی همون نرم افزاری که یک نفر دیگه توی ۲ پست بالاتر گذاشت رو ببینید (البته ۶۰۰ یورو هم قیمتش هست! )
کد یک برنامه خیلی پیچیده تر از چیزی که نوشتید رو در میاره
http://www.ccso.com/files/hexraysdemo.swf

ولی خب این برنامه ها هیچ وقت نمی تونن چیزی که واقعا بوده رو استخراج کنن چون زمان کامپایل کد چیز هایی مثل اسم متغیر ها اسم توابع ,کلاس ها یا ثابت هااز بین میرن خیلی از قسمت های کد هم optimize یا inline میشن
decode کردن یک کد پیچیده ++C از نوشتن اون کد از صفر بمراتب سخت تر هست و عملا غیر ممکن

#target
یک شنبه 16 شهریور 1393, 21:03 عصر
بگید منظورتون از دیکد کردن چیه ؟ بدست آوردن کد اصلی که برنامه نویس نوشته بدون حتی یک واو جا انداختن . که نه !
تحلیل برنامه این که برنامه داره چکار انجام میده (و بازنویسی کد و احیانا کامپایل مجدد) . بله میشه در هر دو

AliRezaBeytari
یک شنبه 16 شهریور 1393, 21:25 عصر
کد ++C شاید decode شدنش از بقیه زبان ها سخت تر باشه ولی بازهم احتمال decode شدن هست
این کدی که گذاشتید چیز خاصی نداره به هر مبتدی هم بدید میفهمه چکار می کنه
دموی همون نرم افزاری که یک نفر دیگه توی ۲ پست بالاتر گذاشت رو ببینید (البته ۶۰۰ یورو هم قیمتش هست! )
کد یک برنامه خیلی پیچیده تر از چیزی که نوشتید رو در میاره
http://www.ccso.com/files/hexraysdemo.swf

ولی خب این برنامه ها هیچ وقت نمی تونن چیزی که واقعا بوده رو استخراج کنن چون زمان کامپایل کد چیز هایی مثل اسم متغیر ها اسم توابع ,کلاس ها یا ثابت هااز بین میرن خیلی از قسمت های کد هم optimize یا inline میشن
decode کردن یک کد پیچیده ++C از نوشتن اون کد از صفر بمراتب سخت تر هست و عملا غیر ممکن

دوست عزیز ، من هم میدونم این برنامه خیلی سادست.
من فقط این رو به صورت نمونه قرار دادم. میخواستم بدونم اگر اینطوری برنامه نویسی کنم پس احتمال DeCode خیلی میاد پایین.