প্রকল্প সম্পর্কে
obfus.h হল একটি ম্যাক্রো-অনলি লাইব্রেরি, যা C অ্যাপ্লিকেশন কম্পাইল-টাইমে অবফাস্কেট করার জন্য তৈরি এবং বিশেষভাবে Windows x86 ও x64-এ Tiny C Compiler (tcc)-এর জন্য ডিজাইন করা হয়েছে। এটি একটি একক হেডার হিসেবে বিতরণ করা হয়, যা আপনি আপনার সোর্সে ইনক্লুড করেন; কম্পাইলেশনের সময় অবফাস্কেশন স্বয়ংক্রিয়ভাবে প্রয়োগ হয়। লেখক উল্লেখ করেছেন যে এটি tcc-এর প্রায় সব সংস্করণ সমর্থন করে, tcc 0.9.27 ব্যবহারের পরামর্শ দেন এবং জানান যে Visual C, GCC ও Clang সমর্থিত নয়।
নথিভুক্ত বৈশিষ্ট্যসমূহ:
- ফাংশন কল অবফাস্কেশন, যাতে কলগুলো কম পঠনযোগ্য হয়।
- অ্যান্টি-ডিবাগিং ব্যবস্থা, যা রানটাইম বিশ্লেষণ বাধাগ্রস্ত করার উদ্দেশ্যে তৈরি; অনেক মৌলিক MSVCRT ফাংশনের কল দ্বারা সুরক্ষা ট্রিগার হয় এবং গুরুত্বপূর্ণ স্থানে একটি ANTI_DEBUG; কনস্ট্রাক্ট স্থাপন করা যায়।
- কন্ট্রোল-ফ্লো কোড মিউটেশন, যা শর্ত ও লুপ পুনর্গঠন করে; একটি CFLOW_V2 অপশন আরও শক্তিশালী (এবং ধীর) ভ্যারিয়েন্ট প্রদান করে।
- HIDE_STRING(str) এর মাধ্যমে স্ট্রিং হাইডিং, যা স্ট্রিংগুলো স্ট্যাটিকভাবে ঘোষণা না করে রানটাইমে mov ইনস্ট্রাকশনের মাধ্যমে স্ট্যাকে একত্রিত করে। README-তে সতর্ক করা হয়েছে যে কিছু ডিকম্পাইলার স্ট্যাটিক অপটিমাইজেশনের কারণে সেগুলো এখনও প্রকাশ করতে পারে।
- অ্যান্টি-ডিকম্পাইলেশন টেকনিক, যা ডিকম্পাইলার আউটপুট দৃশ্যগতভাবে ভাঙার উদ্দেশ্যে তৈরি।
- বিভিন্ন প্যাকার ও প্রোটেক্টরের ফেক সিগনেচার, যা রিভার্স ইঞ্জিনিয়ারদের বিভ্রান্ত করতে ব্যবহৃত হয়।
- একটি ম্যাথ ভার্চুয়াল মেশিন (VIRT দিয়ে সক্রিয়), যা VM_ADD, VM_SUB, VM_MUL, VM_DIV, VM_MOD, তুলনামূলক ম্যাক্রো যেমন VM_EQU/VM_NEQ/VM_LSS/VM_GTR/VM_LEQ/VM_GEQ, ডাবল ভ্যারিয়েন্ট এবং VM_IF/VM_ELSE_IF/VM_ELSE লজিক্যাল কনস্ট্রাক্ট প্রদান করে। README-তে সতর্ক করা হয়েছে যে ভার্চুয়ালাইজেশন অপটিমাইজেশনকে প্রভাবিত করতে পারে এবং শুধুমাত্র প্রয়োজনীয় স্থানে ব্যবহার করা উচিত, এবং কিছু ডাবল তুলনামূলক অপারেশন সমর্থিত নয়।
কনফিগারেশন VIRT, CFLOW_V2, ANTIDEBUG_V2, FAKE_SIGNS-এর মতো ডিফাইন এবং NO_OBF, NO_CFLOW, NO_ANTIDEBUG নিষ্ক্রিয়কারী ফ্ল্যাগের মাধ্যমে বা কম্পাইলার আর্গুমেন্টের মাধ্যমে করা হয় (উদাহরণস্বরূপ tcc app.c -w -D NO_CFLOW -D ANTIDEBUG_V2 -D FAKE_SIGNS -D VIRT)। README-তে অবফাস্কেশনের সময় উৎপন্ন অনেক সতর্কবার্তা দমন করতে -w দিয়ে কম্পাইল করার পরামর্শ দেওয়া হয়েছে।
ব্যবহার হল একটি মাত্র #include "obfus.h" লাইন। একটি Windows ব্যাচ স্ক্রিপ্ট (include-updater/obfh-update.cmd) git ছাড়াই রিপোজিটরি থেকে সর্বশেষ হেডার আনতে পারে, যা বিল্ডের আগে স্বয়ংক্রিয় নিরাপত্তা আপডেটের জন্য উপযোগী। README-তে কমিউনিটি নিরাপত্তা বিশ্লেষণের লিংক রয়েছে, যার মধ্যে সুরক্ষা ব্যবস্থার একটি ব্ল্যাক-বক্স বিশ্লেষণ (যার ফলাফল লেখকের মতে প্যাচ করা হয়েছে), একটি পূর্ববর্তী প্রজন্ম ব্যবহার করে একটি CTF রাইট-আপ এবং ObfusHunter, যা obfus.h দ্বারা সুরক্ষিত ফাইল স্ক্যান করার একটি ইউটিলিটি। লেখক বলেছেন যে সুরক্ষিত প্রোগ্রাম লজিক পুনরুদ্ধার প্রায় অসম্ভব, তবে জোর দিয়ে বলেছেন যে শুধুমাত্র অবফাস্কেশন সম্পূর্ণ সুরক্ষার নিশ্চয়তা দেয় না এবং অভ্যন্তরীণ নিরাপত্তা ব্যবস্থা এখনও তৈরি ও রক্ষণাবেক্ষণ করা উচিত।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.