সেরা জাভা অবসেক্টর? [বন্ধ]


106

আমি একটি সুরক্ষা সফ্টওয়্যার বিকাশ করছি এবং আমার জাভা কোডটি অস্পষ্ট করতে চাই যাতে ইঞ্জিনিয়ারের বিপরীত হওয়া অসম্ভব হয়ে যায়। সবচেয়ে নির্ভরযোগ্য জাভা ওফুসকেটর কী?


10
@ সিনাস "ইঞ্জিনিয়ারকে রিভার্স করা অসম্ভব হয়ে উঠলেন" - খুব সম্ভবত, সেরা চেষ্টা করেছেন এবং ব্যর্থ
পিঁপড়া

211
আমার কিছু সহকর্মী ছিল যারা কিছু ভারী ওফস্যাক্ট কোড তৈরি করেছিল। তবে তাদের উদ্দেশ্য ছিল না।
স্টিভ ম্যাকলিউড

7
It was once said that if you had an infinate amount of monkeys on typewiters and an infinate amount of time, they would write all of the great works of Shakespeare.- দিলবার্ট
পিঁপড়া

7
বিপরীত প্রকৌশল এড়ানো অসম্ভব।
মেনিমেথ

11
@ মনমেন্টঃ আপনার বিশেষ অ্যাপ্লিকেশনটির জন্য বিপরীত প্রকৌশলটিকে ব্যয়বহুলভাবে ব্যয় করা যথেষ্ট।
দিমিত্রি লেস্কোভ

উত্তর:


98

প্রথমত, আপনাকে সত্যই মনে রাখতে হবে যে কোনও কিছুর বিপরীত প্রকৃতি কখনও অসম্ভব। সবকিছু হ্যাকযোগ্য। স্মার্ট আইডিই ব্যবহার করে একটি স্মার্ট বিকাশকারী ইতিমধ্যে যথেষ্ট পরিমাণে পেতে পারেন।

ভাল, আপনি এখানে একটি তালিকা পেতে পারেন । প্রোগার্ড বেশ ভাল। আমি নিজে এটি ব্যবহার করেছি, তবে কেবল জাভা কোডটি "মাইনাইফাই" করতে।


1
@ বালুসসি: তাহলে জাভা কোডটি অবলম্বন করতে আপনি কোন সরঞ্জামটি ব্যবহার করেন? আপনি নিজের জাভা কোডটি অবলম্বন করেন, তাই না?
থিনহ্ব্বিক

@ তিনহ্ববিক অবরুদ্ধকরণ দরকারী স্ট্যাকের চিহ্নগুলি পাওয়া শক্ত করে তোলে।
থরবজর্ন রাভন অ্যান্ডারসন

@ থরবজরআরভনআন্দারসন: সম্মত হন। আইএমও, অবহেলা স্ট্যাকের চিহ্নগুলি বেশিরভাগ অকেজো হয়ে যায়। সেক্ষেত্রে আমি লগ লগের সাথে কিছু কৌশল ব্যবহার করছি, যা সাহায্য করতে পারে।
থিনহ্ব্বিক

2
@ থিনহ্ববিক প্রগার্ড মুছে ফেলা স্ট্যাকের ট্রেসগুলি মূল কোডটিতে অনুবাদ করার জন্য একটি মানচিত্র তৈরি করে। অন্যথায়, যেমনটি আপনি বলেছিলেন, স্ট্যাকের চিহ্নগুলি অকেজো হয়ে যাবে (তবে যিনি যাই হোক না কেন ব্যতিক্রম হন ... ;-))
ম্যাথিউ

@ ম্যাথিউ: স্ট্যাক ট্রেসকে মূল কোডে ব্যাক করা স্বয়ংক্রিয়ভাবে অনুবাদ করা কি সম্ভব? এটি আমার জন্য দুর্দান্ত এবং নতুন হবে। আমি কেবল জানি কোডটি বিশাল হলে ম্যানুয়ালি ফিরে অনুবাদ করা কঠিন হতে পারে।
থিনহ্ব্বিক

33

যদি কোনও কম্পিউটার এটি চালাতে পারে তবে উপযুক্ত অনুপ্রাণিত মানুষ এটিকে বিপরীতে ইঞ্জিনিয়ার করতে পারে।


3
কত লোক অবচিত কোড পড়তে পারে এবং যুক্তিটি বুঝতে পারে? আমার ইঞ্জিনিয়ারের প্রচুর বন্ধু আছে এবং তারা তা করতে পারে না কেবল জন ন্যাশ এটি করতে পারে;)
কোডম্যান্যঘা

5
@ কোডডমন্যাঘা যদি তারা যথেষ্ট অনুপ্রাণিত হয় তবে তারা এটি শিখবে। এটা কঠিন নয়।
থরবজর্ন রাভন অ্যান্ডারসন

1
গাণিতিক অর্থে, এটির বিপরীত ইঞ্জিনিয়ার ছাড়া কোনওভাবেই চালানো সম্ভব। হোমোর্ফিক এনক্রিপশনটি এটি সম্পর্কে, তবে সাসের বিপরীতে কম্পিউটার সফ্টওয়্যারটিতে এটি ব্যবহারিকভাবে ব্যবহারযোগ্য করে তোলার জন্য বেশ কয়েকটি প্রতিবন্ধকতা সমাধান করা দরকার। আমরা সেখানে আস্তে আস্তে চলছি। সম্পূর্ণ হোমোর্ফিক এনক্রিপশন এবং অমিত সাহাই এট আল দ্বারা "গাণিতিক জিগস পাজল" তে জেন্ট্রির সেমিনাল কাজ। সেই দিকে বিশাল লাফিয়ে উঠল। একটি মাত্র অনুপস্থিত উপাদান রয়েছে (যা আমি "বাধা ফাংশন" বলি) যা পুরো স্কিমটিকে সম্ভাব্য করে তোলে। এখন যা অসম্ভব তা ভবিষ্যতে সম্ভব হবে।
ওগগ্র্রে

30

আপনার অ্যাপ্লিকেশনগুলির বিপরীত প্রকৌশলকে আরও ব্যয়বহুল করার জন্য আরও তিনটি উপায় বনাম ওফসকেশনের আলোচনার জন্য এবং আপনার সরঞ্জামগুলির এবং আরও পড়ার উপকরণগুলির সংকলনের জন্য ওবফাসকেটর এবং এর বাইরে [সংরক্ষণাগার] মাধ্যমে আমার নিবন্ধটি দেখুন Java


1
এটি আসলে আমার প্রয়োজন। আমি আমার প্রকল্পগুলির জন্য পিএইচপি আপত্তিদার লিখতে চাই। যুক্তি সর্বত্র একই। ধন্যবাদ ...
কোডডমন্যাঘ

1
জাভা অবলম্বন এবং সফ্টওয়্যার সংগ্রহ সম্পর্কে দুর্দান্ত এবং বিস্তৃত নিবন্ধ।
m3nda

15

আমি মনে করি যে প্রোগার্ড সেরা। এটি আপনার আইডিইর সাথে সংহত করা সম্ভব (উদাহরণস্বরূপ নেটবিয়ানস)। তবে বিবেচনা করুন যে আপনি যদি নিজের কোডটি অবলম্বন করেন তবে আপনার লগগুলিতে সমস্যাগুলি ট্র্যাক করা কঠিন হতে পারে ..


6
"1 এর জন্য বিবেচনা করুন যে আপনি যদি নিজের কোডটি অবলম্বন করেন তবে আপনার লগগুলিতে সমস্যাগুলি ট্র্যাক করা কঠিন হতে পারে"। ঠিক যখন আপনি ভেবেছিলেন যে ডিবাগ করা যথেষ্ট কঠিন ...
অ্যাডাম পেইন্টার

7
নাম এবং লাইন নম্বর তথ্য পরিবর্তন করে এমন একটি ভাল অবতরণকারী একটি লগ তৈরি করতে হবে যা দিয়ে প্রক্রিয়াটি বিপরীত করা যায়। কমপক্ষে স্ট্যাকের চিহ্নগুলি অপ্রচলিত বাইনারিগুলির জন্য কার্যকর থাকে।
জোছিম সউর 12

3
প্রোগার্ড ডিবাগিংয়ের জন্য এ জাতীয় বিপরীত ফাইল তৈরি করে। :-)
মালাক্স

11

এখানে অন্য কোথাও যেমন বলা হয়েছে, অগ্রগতি ভাল, তবে যা জানা যায় না তা এটির জন্য এখানে একটি তৃতীয় পক্ষের মাভেন প্লাগইন রয়েছে http://pyx4me.com/pyx4me-maven-plugins/proguard-maven-plugin/ ... আমি উভয়কে এক সাথে ব্যবহার করেছি এবং তারা খুব ভাল।



7

এটি সত্য যে কোনও কিছু কোড প্রকৌশলীকে বিপরীত করা সর্বদা সম্ভব, ঠিক যেমন কোনও ঘরটিকে যাতে সুরক্ষিত করা অসম্ভব যাতে কেউ এ থেকে চুরি করতে না পারে। যদিও এটি আমাকে দরজা লক করা থেকে বিরত রাখে না। আসলে, আমি জাভা জগতে নেই, আমি । নেট জন্য বিটহেলমেট ব্যবহার করি ।


7
আপনাকে নেট থেকে ফিরিয়ে আনতে +1 করুন This এই উত্তরটি সহায়ক নয়।
হ্যালোওয়েবমাস্টার

6

আমি আমার আগের কোম্পানিতে ক্লাসমাস্টারের সাথে কাজ করতাম এবং এটি সত্যই ভাল কাজ করে এবং বিল্ড সিস্টেমের সাথে বেশ ভাল সংহত করতে পারে ( মাভেন সাপোর্টটি দুর্দান্ত)। তবে এটি নিখরচায় নয়।


6

আমাদের জারগুলি এনক্রিপ্ট করার চেয়ে আরও ভাগ্য ভাল হয়েছিল, বরং তা অবরুদ্ধ হওয়ার চেয়ে বেশি। আমরা ক্লাসগার্ড ব্যবহার করি


7
আপনি যদি ভ্লাদিমির রাউবতসভের "ক্র্যাকিং জাভা বাইট-কোড এনক্রিপশন" ( javaworld.com/javaworld/javaqa/2003-05/01-qa-0509-jcrypt.html ) না পড়ে থাকেন তবে আপনি এখনই এটি করতে ইচ্ছুক হতে পারেন।
দিমিত্রি লেস্কোভ

6

সমাধানটি নিরাপদ কিনা তা আমি নিশ্চিতভাবে জানি না তবে ক্লাসগার্ড সমাধান সম্পর্কে নিবন্ধটি এবং মন্তব্যটি পড়তে আগ্রহী: http://www.javaworld.com/commune/?q=node/1604# মন্তব্য -12296


এবং অন্য একটি বিকল্প যা ডিফাইন ক্লাসের পরিবর্তে স্থানীয় কোডও ব্যবহার করে তা হ'ল জারক্রিপ্ট
রেনাটো

ক্লাসগার্ড কীভাবে ক্র্যাক করবেন সে বিষয়ে একটি নিবন্ধ : setrst.blogspot.com/2010/04/classguard-unguarded.html । আমি এখনও জানি না এটি এখনও সর্বশেষতম সংস্করণে কাজ করে কিনা।
রেনাটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.