প্রকল্প সম্পর্কে

dearxan একটি লাইব্রেরি যা Arxan (বর্তমানে GuardIT) বাইনারিতে ঢোকানো চেকগুলির স্থির এবং রানটাইম বিশ্লেষণ ও প্যাচিংয়ের জন্য। README অনুযায়ী, এটি FromSoftware গেমগুলিতে Arxan সম্পূর্ণরূপে নিষ্ক্রিয় করতে পারে: প্যাচ প্রয়োগের পরে, কোনো Arxan কোড (যেমন অ্যান্টি-ডিবাগ এবং অখণ্ডতা পরীক্ষা) চলে না এবং এনক্রিপ্টেড ফাংশন ডিক্রিপ্ট থাকে। README একটি সীমাবদ্ধতা উল্লেখ করে: Arxan এন্ট্রি পয়েন্ট স্টাবগুলিকে এখনও চালাতে হবে। এই স্টাবগুলি অ্যান্টি-ডিবাগ পরীক্ষা করে না, তবে কিছু গেমে (যেমন Dark Souls Remastered) তারা অখণ্ডতা পরীক্ষা করে এবং পরিবর্তন শনাক্ত করলে গেম ক্র্যাশ করতে পারে। এটি neuter_arxan-এ পাস করা কলব্যাকে হুক স্থাপন করে প্রশমিত করা যায়। লেখক বলেছেন যে একবার এন্ট্রি পয়েন্ট স্টাবগুলি সম্পূর্ণভাবে রিভার্স ইঞ্জিনিয়ার করা হলে, এটি আর প্রয়োজন হবে না। README-তে তালিকাভুক্ত পরীক্ষিত গেম: - Dark Souls Remastered - Dark Souls II SOTFS - Dark Souls III - Elden Ring - Armored Core VI - Elden Ring: Nightreign ক্রেটটি শুধুমাত্র এই FromSoftware গেমগুলির সর্বশেষ সংস্করণে Arxan ভেরিয়েন্টের বিরুদ্ধে পরীক্ষিত এবং অন্যান্য ডেভেলপারদের ব্যবহৃত Arxan কনফিগারেশনের সাথে কাজ নাও করতে পারে। অবদান স্বাগত। বর্ণিত ব্যবহারের বিকল্প: - Rust থেকে disabler ফিচার সহ: Cargo.toml-এ dearxan যোগ করুন এবং dearxan::disabler::neuter_arxan একবার কল করুন, আদর্শভাবে গেমের এন্ট্রি পয়েন্ট চালানোর আগে। একটি কলব্যাক ফলাফল পায় এবং হুক ইনস্টল করার জন্য প্রস্তাবিত স্থান। - C++ থেকে: Releases থেকে স্ট্যাটিক লাইব্রেরি ডাউনলোড করুন, অন্তর্ভুক্ত Windows ইমপোর্ট লাইব্রেরির সাথে লিংক করুন, include/dearxan.h অন্তর্ভুক্ত করুন এবং dearxan::neuter_arxan কল করুন। ন্যূনতম সমর্থিত মান C++14, C++17+ সুপারিশকৃত। - C থেকে: একই লাইব্রেরি এবং হেডার, কলব্যাক সহ dearxan_neuter_arxan কল করুন। - অন্যান্য ভাষা থেকে: include/dearxan.h থেকে C বাইন্ডিং তৈরি করুন এবং dearxan_neuter_arxan কল করুন। README সতর্ক করে যে অনেক DLL ইনজেক্টর বা মড লঞ্চার প্রক্রিয়াটি তৈরি করার সময় সাসপেন্ড করে না বা গেমের এন্ট্রি পয়েন্টের আগে কোড চালাতে দেয় না। ক্রেটটি এই ধরনের লোডারকে সর্বোত্তম প্রচেষ্টার ভিত্তিতে সমর্থন করে, তবে এন্ট্রি পয়েন্টের আগে মড লোড করে এমন একটি ব্যবহার দৃঢ়ভাবে সুপারিশ করা হয়। me3-এর সাথে সামঞ্জস্যপূর্ণ Souls গেমগুলির জন্য, ক্রেটটি ইতিমধ্যে disable_arxan প্রোফাইল বিকল্পের মাধ্যমে সেই মড লোডারে সংহত, এবং মডটি ইতিমধ্যে me3-এর উপর নির্ভর করলে এটি ব্যবহার করার পরামর্শ দেওয়া হয়। কাস্টম প্যাচার লেখার জন্য (উদাহরণস্বরূপ ডিস্কে এক্সিকিউটেবল প্যাচ করা), README বলে যে আপনাকে dearxan::analysis::analyze_all_stubs বা সমতুল্য API দিয়ে Arxan স্টাব বিশ্লেষণ করতে হবে, ফলস্বরূপ StubInfo মান dearxan::patch::ArxanPatch::build_from_stubs-এ পাস করতে হবে এবং প্যাচগুলি ম্যানুয়ালি প্রয়োগ করতে হবে। নতুন স্টাব পাওয়া না যাওয়া পর্যন্ত এটি পুনরাবৃত্তি করতে হবে, কারণ কিছু গেমে প্রথম বিশ্লেষণ পাসে আবিষ্কৃত না হওয়া এনক্রিপ্টেড স্টাব থাকে। লাইভ এক্সিকিউটেবল ইমেজের জন্য, Arxan এন্ট্রি পয়েন্ট স্টাবটি আহ্বান করা হয়েছে তা গুরুত্বপূর্ণ; FromSoftware বাইনারিগুলি SteamStub-এও মোড়ানো হতে পারে। README Arxan বৈশিষ্ট্যগুলি বর্ণনা করে যার মধ্যে নির্দেশ মিউটেশন এবং কন্ট্রোল ফ্লো অস্পষ্টতা, সংবেদনশীল ফাংশনগুলির বিশ্রামে এনক্রিপশন এবং এক্সিকিউশন সময়ে ডিক্রিপশন, অ্যান্টি-ডিবাগ পরীক্ষা, এবং অখণ্ডতা পরীক্ষা যা বাফারে ফ্ল্যাগ লিখতে পারে, স্ট্যাক বা কন্ট্রোল ফ্লো দুর্নীতির মাধ্যমে গেম ক্র্যাশ করতে পারে, বা ফাংশন কোড মেরামত করতে পারে। Arxan লজিক নির্বিচারে গেম ফাংশনে ঢোকানো স্টাবগুলিতে থাকে; এগুলি কনটেক্সট সংরক্ষণ করে, Arxan লজিক চালায়, কনটেক্সট পুনরুদ্ধার করে এবং ফিরে যায়। ক্রেটটি এই স্টাবগুলি খুঁজে এবং তাদের কন্ট্রোল ফ্লো গ্রাফ পরিদর্শন করে Arxan নিষ্ক্রিয় করে। এটি আংশিক নির্দেশ ইমুলেশন এবং শাখায় প্রোগ্রাম অবস্থা ফর্ক ব্যবহার করে কন্ট্রোল ফ্লো অস্পষ্টতার মাধ্যমে কাজ করে, তারপর প্যাচ বের করতে স্টাব কাঠামো বিশ্লেষণ করে। এগুলি সাধারণত একটি ট্রাম্পোলিনে জাম্প হুক যা স্টাবের স্ট্যাক ঠিক করে, এবং কখনও কখনও ডিক্রিপ্টেড কোড অঞ্চল বের করে তাদের বিষয়বস্তু সরাসরি লেখা অন্তর্ভুক্ত। ফিচার ফ্ল্যাগ: - disabler (ডিফল্ট): neuter_arxan এর মাধ্যমে Arxan সম্পূর্ণরূপে নিষ্ক্রিয় করে এমন একটি প্যাচার সরবরাহ করে। - rayon (ডিফল্ট): rayon ব্যবহার করে স্টাব বিশ্লেষণ সমান্তরাল করে। - ffi: C ফাংশন dearxan_neuter_arxan রপ্তানি করে। - instrument_stubs: প্রতিটি স্টাবকে প্রথম কলের সময় একটি বার্তা লগ করতে যন্ত্র দিয়ে disabler-এর উপর নির্মিত; README সতর্ক করে যে এটি বর্তমানে Dark Souls Remastered ছাড়া অন্য গেমগুলির জন্য রেজিস্টার ক্লোবারিংয়ের কারণে ক্র্যাশ করে। - internal_api: dearxan::analysis::internal এর মাধ্যমে বেশিরভাগ অভ্যন্তরীণ বাইনারি বিশ্লেষণ API প্রকাশ করে; এগুলি স্থিতিশীল নয় এবং মাইনর সংস্করণগুলির মধ্যে ভাঙতে পারে। ক্রেডিটে dasaav-কে neuter_arxan-এর জন্য গ্লোবাল সিঙ্ক্রোনাইজেশন, Arxan কীভাবে ডিক্রিপ্ট করার জন্য মেমরি অঞ্চল সংরক্ষণ করে তা রিভার্স ইঞ্জিনিয়ারিংয়ে সাহায্য এবং এনক্রিপশন অ্যালগরিদম (32-রাউন্ড TEA) খুঁজে পাওয়ার জন্য উল্লেখ করা হয়েছে।