PDA

View Full Version : چکار کنیم که کسی فایل jar ما را کرک نکند؟



hsaleh120
دوشنبه 19 فروردین 1387, 07:20 صبح
آقا من مباحث مربوط به کرک کردن را خوندم حالا می خوام بدونم روشی هرچند کوچک وجود داره که کسی محتویات فایل jar ما را کرک نکند و اطلاعات بدست آورد

راستی از اضافه شدن پست قبلی هم شرمنده :ناراحت:
چون یه چندتا غلط داشت پاکش کردم

saeedIRHA
دوشنبه 19 فروردین 1387, 13:29 عصر
اینو بخون:
http://forum.java.sun.com/thread.jspa?threadID=5271073&tstart=60

handinux
دوشنبه 19 فروردین 1387, 21:47 عصر
شما می بایست ابتدا از decompile شدن کلاسهایتان جلوگیری نمایید.می توانید با خیال راحت برنامه تان را بنویسید و نگران نباشید.تقریبا هیچ کس نمی تواند فایل شما را crack کند. البته یک جاوا کار حرفه ای از عهده این کار بر می آید که او هم وقت خود را برای این کار بی ارزش تلف نمیکند.برای اطلاعات بیشتر گوگل کنید و پیشنهاد می کنم احیانا توانستید ! چیزی پیدا کنید به صورت عمومی منتشر نکنید.موفق باشید

hsaleh120
سه شنبه 20 فروردین 1387, 06:51 صبح
منظور از decompile شدن کلاس چیست؟؟؟؟؟؟؟؟؟؟

anubis_ir
سه شنبه 20 فروردین 1387, 09:36 صبح
http://www.google.com/search?q=java+jad

javaphantom
سه شنبه 20 فروردین 1387, 11:14 صبح
آقا من مباحث مربوط به کرک کردن را خوندم حالا می خوام بدونم روشی هرچند کوچک وجود داره که کسی محتویات فایل jar ما را کرک نکند و اطلاعات بدست آورد

راستی از اضافه شدن پست قبلی هم شرمنده :ناراحت:
چون یه چندتا غلط داشت پاکش کردم

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

khlless
چهارشنبه 21 فروردین 1387, 22:39 عصر
سلام
بهتره یک بار برنامه را obfuscate کنی.

saeedIRHA
پنج شنبه 22 فروردین 1387, 03:02 صبح
سلام
بهتره یک بار برنامه را obfuscate کنی.

بهتر هست اصلاً اگر حفظ کد برات خیلی مهم هست با جاوا ننویسیش

javaphantom
پنج شنبه 22 فروردین 1387, 13:24 عصر
بهتر هست اصلاً اگر حفظ کد برات خیلی مهم هست با جاوا ننویسیش

به نظر شما جاوا با داشتن یک محیط اجرایی runtime که بسیار دقیق عمل می کنه و فقط فایلهای bytecode های جاوایی رو می شناسه تضمین کنند یک محیط سالم و امن نیست؟
چه زبان دیگری رو می تونی معرفی کنی. که در ضمن خاصیت جاوا رو هم داشته باشه؟

بزرگترین شرکتهای دنیا همگی بصورت open source دارن کار می کنند. از kernel سیستم عامل گرفته تا همین jdk جاوا همه بصورت متن باز وجود دارد. اگر قرار بر این بود که امنیت وجود ندارد چون این محصولات هم بصورت متن باز هستند پس من به شما و کسانی دیگری که بر این عقیده هستند پیشنهاد می کنم که همگی یک گروه بشین یک email به این شرکتها بزنین و بگین که کار شما بی ارزش هست و امنیت نداره چون شما به قول استاد کرک شده خدایی هستید.
اما قبل از اینکه همچین کار تیمی رو انجام بدین خواهش می کنم یک در مورد JVM و بعد چرا open source یکم در internet یا کتاب یا هرجا که گیرتون می یاد مطالعه کنید

handinux
پنج شنبه 22 فروردین 1387, 17:04 عصر
به نظر شما جاوا با داشتن یک محیط اجرایی runtime که بسیار دقیق عمل می کنه و فقط فایلهای bytecode های جاوایی رو می شناسه تضمین کنند یک محیط سالم و امن نیست؟
بزرگترین شرکتهای دنیا همگی بصورت open source دارن کار می کنند. از kernel سیستم عامل گرفته تا همین jdk جاوا همه بصورت متن باز وجود دارد


دلبندم! طوری حرف می زنی که انگار فقط خودت می دانی Open Source یعنی چه و فقط خودت با جاوا کار کردی! و مزایای آنها را می دانی!
OpenSource یک مزیت است و جاوا یک تکنولوژی فوق العاده که هر دو زندگی بشریت را بهبود دادند.
اما حقیقت این است که کدهای جاوا خیلی سریعتر از زبانهای دیگر لو می رود و decpmpile میشود.این یک مشکل است! اگر می توانی آنرا از پایه حل کنی بسم الله! اگر نمیتوانی ، دفاع بی مورد از یک نقص آشکار فایده ای نه برای تو نه برای هیچ کس دیگر ندارد.
در ضمن اگر دوستان مایل باشند طی یک مثال عملی این نقص را نشان بدهم.

javaphantom
پنج شنبه 22 فروردین 1387, 17:42 عصر
دلبندم! طوری حرف می زنی که انگار فقط خودت می دانی Open Source یعنی چه و فقط خودت با جاوا کار کردی! و مزایای آنها را می دانی!
OpenSource یک مزیت است و جاوا یک تکنولوژی فوق العاده که هر دو زندگی بشریت را بهبود دادند.
اما حقیقت این است که کدهای جاوا خیلی سریعتر از زبانهای دیگر لو می رود و decpmpile میشود.این یک مشکل است! اگر می توانی آنرا از پایه حل کنی بسم الله! اگر نمیتوانی ، دفاع بی مورد از یک نقص آشکار فایده ای نه برای تو نه برای هیچ کس دیگر ندارد.
در ضمن اگر دوستان مایل باشند طی یک مثال عملی این نقص را نشان بدهم.


فکر کنم اون بارهم به شما همین جواب را دادم. شما email بزن به sun با همون مثال عملیتون بعد بهشون بگو مشکل دارین.
چیزی که از پایه درست است نیازی به حل کردن آن نیست. این نقص آشکارم که شما دارید ازش صحبت می کنید نشاندهنده هوش سرشار و بالای شماست چون عقب موندهایی که توی sun کار می کنند نفهمیدن.
و من مطمعنم که شما هیچ چیز در مورد jvm یا کلا معماری virtual machine نمی دونید و هدف از ساختن و ایجاد این ماشین سخت این ماشین.
همه جای دنیا قانون داره طبق قانون open source در صورتی که شما code برنامه من رو برداری و روی آن تغییر ایجاد نکنی و به نام خودت ثبت کنی شما محکوم هستی و من می تونم از شما شکایت کنم.
از همه مهمتر شما فکر می کنی اگر یک برنامه برای من بنویسی من به همین راحتی از شما قبول می کنم. نه عزیز جون گذشت اون زمانی که یک کلاس کامپیوتر باز شد بود ۴ نفر می رفتن اون تو بعدش می شدن کد زن. من تا نفهم که شما اون تو برای خودت چیکارا کردی و با این هوش سرشارت چه جوری فکر کردی از برنامه شما من استقبال نمی کنم. یا حداقل من نمی کنم.
این مثال رو زدم که دونستن محتوای کد یک برنامه امروزه زیاد مهم نیست مگر اینکه بخوای تغییرات یا باگیری صورت بگیره. در صورتی که برنامه شما هم در جایی دارای ضعف باشه یا کاستی که از لحاظ امنیتی ایجاد مشکل کنه مطمعن باش اگر من فهمیدم هزارن نفر دیگر هم هستند که این مسئله رو بفهمن و خوبی open source هم همینه که رفع باگ به سرعت صورت می گیره بعدش بقیه درستش نکنن خودت که می دونی کجا ضعف داری درستش کن. تازه این مشکل هم از لحاظ امنیتی قابل حل می باشه. تمام برنامه های دنیا چه از لحاظ سیستم عامل یا کاربردی یک نسخه آزمایشی وارد بازار می کنند حتی اون ماکروسافت عمو بیلی عزیز هم این کار رو انجام می ده. همین vista بزرگ برو ببین چه محصولی شده. به به به . خودش از خجالت داره میمره. تازه با این همه پنهان کاری و جنگولک بازی اینطور می زنن لت و پارش می کنند. ببین اگر کد بده بیرون چی می شه.
شما مثالهای عملیتو همونطور که گفتم برای خود سان بفرست بلاخره همه جا باید یک جوری نشون بدیم ایرونی هستیم. دنیا داره با این زبان بزرگترین پروزهای سازمان اینترنتی رو انجام می ده اون وقت می خوای ثابت کنی که مشکل داره.
آره اصلا شما درست می گی.

saeedIRHA
پنج شنبه 22 فروردین 1387, 20:50 عصر
به نظر شما جاوا با داشتن یک محیط اجرایی runtime که بسیار دقیق عمل می کنه و فقط فایلهای bytecode های جاوایی رو می شناسه تضمین کنند یک محیط سالم و امن نیست؟
چه زبان دیگری رو می تونی معرفی کنی. که در ضمن خاصیت جاوا رو هم داشته باشه؟

بزرگترین شرکتهای دنیا همگی بصورت open source دارن کار می کنند. از kernel سیستم عامل گرفته تا همین jdk جاوا همه بصورت متن باز وجود دارد. اگر قرار بر این بود که امنیت وجود ندارد چون این محصولات هم بصورت متن باز هستند پس من به شما و کسانی دیگری که بر این عقیده هستند پیشنهاد می کنم که همگی یک گروه بشین یک email به این شرکتها بزنین و بگین که کار شما بی ارزش هست و امنیت نداره چون شما به قول استاد کرک شده خدایی هستید.
اما قبل از اینکه همچین کار تیمی رو انجام بدین خواهش می کنم یک در مورد JVM و بعد چرا open source یکم در internet یا کتاب یا هرجا که گیرتون می یاد مطالعه کنید

اینجا بحث چیزه دیگری هست و مسئله سر حفظ کردن کد جاوا در مقابل Decompilation
و مهندسی معکوس برنامه هست اینو اول بگم که از گمراهی درت بیارم!!!
بعدش شما چند تا شرکت دنیا رو میشناسی که برنامه های اساسیش و بنیادیش رو به
صورت Open Source ارائه کنه ؟؟
تمام شرکت های دنیا رو که میبینی انقدر میگن Open Source-Open Source یک شاخه ای از هزاران زیر مجموعهشون رو بهش اشاره میکنن پس انقدر سادلوح نباش, اگر بیشتر تو دوست داشتی بگو نام ببرم ولی به عنوان مثال :
اراکل رو نام میبرم که جاوا هم توش نقش اساسی بازی میکنه.

از امنیت جاوا این منظور نیست که ممکنه مثلاً وسط برنامه یهو Jvm-Overrun کنه
(گرچه که کرده و من خودم هم از کسانی بودم که باگ رو ریپورت کردم)
بعضاً شما که برنامه های بقول خودت بزرگ رو زیاد دیدی باید بدونی که در
کشور های که برنامه نوییسی معنی داره یک چیزی هست به نام License
و وقتی License وجود داشته بشه شما ممکنه بتونی برنامه رو Decompile کنی اما به هر حال, تولید کننده نرم افزار از لحاظ قانونی Protect شده هست!
پس سعی نکن با پست های جهت دار جنجال تو Forum راه بندازی اینجا همه با هم
رفیق هستن نه دشمن!!!

javaphantom
پنج شنبه 22 فروردین 1387, 21:00 عصر
من قبول کردم که جاوا مزخرفه و حرفهای شما رو کاملا قبول دارم و از همه خواندگان غذرخواهی می کنم.

saeedIRHA
جمعه 23 فروردین 1387, 03:17 صبح
من قبول کردم که جاوا مزخرفه و حرفهای شما رو کاملا قبول دارم و از همه خواندگان غذرخواهی می کنم.

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

با تشکر

handinux
جمعه 23 فروردین 1387, 16:43 عصر
زنده باد جاوا و اپن سورس!

fkohantorabi
جمعه 06 اردیبهشت 1387, 23:09 عصر
زنده باد جاوا و اپن سورس!

من خیلی نشنیدم که این مساله که می شود کد جاوا رو بدست آورد مشکل خاصی باشه به خاطر اینکه تو خیلی پروژه ها کد روی سرور هست و مواردی هم که سمت کلاینت می رود معمولا با کپی رایت و بقیه قوانین مربوط به جرایم الکترونیکی حمایت می شود. از لحاظ امنیت هم معمولا باید خیلی بیشتر از این حد که یک کد بنویسی باید خودت رو گارد کنی. من یک بار در یک پروژه Online Gaming کار میکردم و 100% امنیت در سطح سخت افزار انجام می شد.

یک بار هم شنیدم که یکی گفت یک سری jvm هست که بایت کد رو encode می کنه و بعد زمان اجرا decode میکنه ولی من واقعا نمی دونم که این تا چه حد قابل اعتماد هستش. من یک دوست دارم که در بخش امنیت RIM کار می کنه و روزی چندتا از wormهایی که با تکنیک مشابه کار می کنند رو detect میکنه و پاک میکنه.

فرزاد-

handinux
شنبه 07 اردیبهشت 1387, 16:28 عصر
کاملا درست است.امنیت در سمت سرور مهیاست و خیلی بیشتر از دیگر زبانها.اما درسمت کلایت و خصوصا در کشوری که کپی رایت معنی ندارد کمی مشکل ساز است.این تبدیل به یک پاشنه آشیل شده و جاوا از آن رنج می برد.من نمی دانم بعضی ها چه اصراری دارند که یک تکنولوژی فاقد هر گونه عیب و نقصی است.من یک علاقه مند به جاوا هستم و با عصبیت خاصی به آن نگاه می کنم اما چه می شود کرد که واسطه ی JVM و عدم تبدیل به کد ماشین واقعی این مشکل را به وجود آورده .خب به نظر من اینجا امنیت فدای Portability شده.

mazdadoost
دوشنبه 16 اردیبهشت 1387, 17:58 عصر
به نظر میرسه یه برنامه رو در سطوح مختلفی میشه کرک کرد بعضی از این سطوح :
1-به اصطلاح Decompile کردن:تو این سطح کد برنامه لو میره.اینطوری میشه برنامرو کپی کرد و یکی مثل اون ساخت.معمولان رقیبان یک نرم افزار از این تکنیک ایتفاده میکنن تا امکانات برنامه رقیبو تو برنامه خودشون پیاده کنن.یا کراکر هایی که می خوان مکانیزم قفل یه برنامه از قبیل محودیت زمانی.نگ اسکرین . محدودیت اجرا .و ... بفهمن و با حذف این مکانیزم ها و کامپایل مجدد برنامه یه برنامه کرک شده بسازن.به لحاظ تئوری با اومدن obfuscator ها میشه کاری کرد که کد برنامه برای مهندسی معکوس سخت شه.به الاوه obfuscator های جدید فقط کرد رو برای نا محرمان نا خوانا نمی کنن بلکه کار هایی مثل String Encryption
.Control Flow Obfuscation.Enhanced Overload Induction. و ....رو اجام می دن.این در همه کد های تولید شده در زبان های مختلف هست.
2-کرک فایل به ضورت باینری : تو این روش اصولا شکل اجرای برنامهدر حافظه یا ترتیب اجرای دتورات برنامه در cpu کنترل میشه.همه برنامه ها در نهایت به Operation Code های باینری یک سیستم تبدیل میشن چه جاوا و چه سی!این جا اصولا همه چیز باید برای cpu مفهوم باشه.حتی اگه کد کامپایل شده رو کد کنیم باز موقع اجرا باید دکدش کنیم!بعضی تکنولوژی های قفل گذاری مکانیز های برای قفل گذاری و کد کردن حین اجرا دارن .

.....فهرست روش ها واقعا زیاده اما یک مسئله حتمیه چه کد های Native در c یا دلفی و چه کد های java i همگی رو میشه کراک کرد به انحای مختلف.بیشتر نرم افزار ها هم به c , c++ و ... نوشته میشن!!
و توسط شرکت های بزرگ : Adobe-Micosoft-Corel Sun.....خود jre هم در نهایت باید به صورت Native برای هر سیستمی به زبانی مثل c و یا c++ و Implement شه.جالبیه مصله اینجاست که کامپایلر جاوا رو مشیه با یه آرگومان استاندارد طوری کرد که خودش فایل کلاس رو دکامپایل کنه.
پس : در دنیای امروز فرق بین فایل کامپایل شده کلاس شما که obfuscate شده با یه فایل EXE کامپایلر c کامپایل شده چیزی نسیت جز اینکه مقداری تکرار میکنم مقداری آسان تر کرک میشه.که البته با بزرگ شدن جوامع کراک این مقدار کم حتی برای برنامه هایی که با تکنولوژی های لایسنسینگ قوی قفل گذاری شدن و کد های برنامه هم obfuscate شدن چیزیه در حد یه پک مشروب بیشتر.
امیدوارم استفاده کرده باشید.

asadsheidaharzand
یک شنبه 15 اردیبهشت 1392, 17:06 عصر
ببخشید من یه سوال داشتم چطوری میشه یه برنامه جار رو کرک کرد ؟؟