এটা তুচ্ছ!
কেবল কেট এবং ক্রাইটের উত্স কোডটি দেখুন:
diff --git a/kate/main.cpp b/kwrite/main.cpp
"মূল" ফাংশনের শুরুতে কোডের প্রথম লাইনে আপনি খুঁজে পাবেন:
/**
* Check whether we are running as root
**/
if (getuid() == 0) // uid = user id = 0 ==> means if you are user 0 (aka root)
{
std::cout << "Executing Kate as root is not possible. To edit files as root use:" << std::endl;
std::cout << "SUDO_EDITOR=kate sudoedit <file>" << std::endl;
return 0;
}
ডলফিন আলাদা নয়, কেবল libkdeinit5_dolphin.so এ ঘটে।
সুতরাং রুট হিসাবে চালানো তুচ্ছ, আমাদের কেবলমাত্র uid = 0 চেকটি বাদ দেওয়া উচিত।
আমরা যেভাবে এটি করি তা হ'ল পারমা-প্যাচিং কেট, কুইরাইট এবং ডলফিন।
সুতরাং, আমরা প্রথম যে কাজটি করি তা হ'ল বাইনারি সামগ্রীটি একটি পাঠ্য-ফাইলে ডাম্প করা:
objdump -Crd /usr/bin/kate >> ~/kate.txt
objdump -Crd /usr/bin/kwrite >> ~/kwrite.txt
এখন আপনি ফাইলটির সাথে এটি দেখতে পারেন gedit ~/kate.txt
এবং যদি আপনি গিগুইড অনুসন্ধান করেন তবে আপনি এর মতো কিছু পাবেন:
2a985: 31 c0 xor %eax,%eax
2a987: 89 bc 24 dc 00 00 00 mov %edi,0xdc(%rsp)
2a98e: e8 ed ce ff ff callq 27880 <getuid@plt>
2a993: 85 c0 test %eax,%eax
2a995: 0f 84 e9 1e 00 00 je 2c884 <__cxa_finalize@plt+0x1f5c>
এখন, বাম দিকে, আপনি মেমরি ঠিকানাটি খুঁজে পান, কোলনের পরে (:) আপনি বাইনারি নির্দেশ কোড (হেক্স) এবং তার ডানদিকে দেখতে পাবেন, আপনি সেই কোডটির বিচ্ছিন্নতা দেখতে পাচ্ছেন (ওরফে যার অর্থ) ।
এখন, আপনি দেখুন, এটি getuid কল, যদি এটি শূন্য হয় পরীক্ষা করে এবং if-বিবৃতিতে লাফ দেয়, অর্থাত্ যদি ফেরতের মান শূন্যের সমান হয় (জে: ঝাঁপ দাও সমান)।
এখন আমরা ইফের মধ্যে ঝাঁপ দিতে চাই না, সুতরাং আমরা কেবল সেই ছাঁটাইটি সেখানে সরিয়ে ফেলব। তবে কেবল সেই বকাবালি সরানোই 6 বাইট দ্বারা অ্যাড্রেস পরিবর্তন করবে, প্রোগ্রামটিতে যে কোনও আপেক্ষিক জাম্প ট্র্যাশ করবে এবং ফলস্বরূপ, প্রোগ্রামটি। সুতরাং পরিবর্তে আপনি শুধু লাফ বিবৃতির সমগ্র দৈর্ঘ্য NOP সঙ্গে (সংক্ষেপে প্রতিস্থাপন এন ণ অপ নির্দেশাবলী eration), ওরফে 0x90 নির্দেশ কোড / হেক্স হবে।
সুতরাং আপনাকে সেখানে প্রতি লাফ বাইট 0x90 দিয়ে প্রতিস্থাপন করতে হবে যেখানে আপনার আগে যেখানে ছিল
0f 84 e9 1e 00 00
তোমার থাকবে
90 90 90 90 90 90
এটি কেবলমাত্র একটি হেক্স-সম্পাদক দিয়ে করা যায়।
সুতরাং আমরা একটি ইনস্টল করুন:
sudo apt-get install wxhexeditor
এখন হেক্স সম্পাদকে আপনি 0f 84 e9 1e 00 00 অনুসন্ধান করেছেন এবং এটি 90 90 90 90 90 90 90 দিয়ে প্রতিস্থাপন করুন 0 যদি 0f 84 ই 9 1e 00 00 এর কেবলমাত্র একটি উপস্থিতি আছে এবং সেখানে থাকে তবে এটি তুচ্ছ সহজ। কেবলমাত্র হেক্সের বাইটগুলি 90 90 90 90 90 90 এ পরিবর্তন করুন এবং সংরক্ষণ করুন। সম্পন্ন হয়েছে। কেট বা কুরাইট এখন খুলবে, আপনি রুট হন বা না হন।
আপনি যদি ডলফিনের সাথেও একই কাজ করেন তবে আপনি বুঝতে পারবেন যে objdump -Crd /usr/bin/dolhin
খুব ছোট একটি বিচ্ছিন্নতা উত্পাদন করবে।
আপনি যদি চালনা করেন তবে ldd /usr/bin/dolphin
দেখতে পাবেন ডলফিন ভাগ করে নেওয়া লাইব্রেরি libkdeinit5_dolphin.so
linux-vdso.so.1 (0x00007ffc2fdf0000) libkdeinit5_dolphin.so => /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so (0x00007fb54e76c000)
সুতরাং আপনি libkdeinit5_dolphin.so এজেডডাম্প করুন:
objdump -Crd /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so >> ~/libkdeinit5_dolphin.txt
এখন অবজেক্টটি খুলুন: gedit ~/libkdeinit5_dolphin.txt
সন্ধানের জন্য অনুসন্ধান করুন এবং আপনি দেখতে পাবেন যে অনুসন্ধানের ফলাফলগুলির মধ্যে একটি হ'ল:
41f95: 31 c0 xor %eax,%eax
41f97: 89 7c 24 5c mov %edi,0x5c(%rsp)
41f9b: e8 50 b6 ff ff callq 3d5f0 <getuid@plt>
41fa0: 85 c0 test %eax,%eax
41fa2: 0f 84 58 1a 00 00 je 43a00 <kdemain@@Base+0x1a90>
41fa8: 48 8d 84 24 a0 00 00 lea 0xa0(%rsp),%rax
এটি দুর্দান্ত, আপনি দেখুন, কেট এবং ক্রাইটের মতো আরও বোকা।
এখন /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
আপনার হেক্স-সম্পাদকটিতে খুলুন , এটি অনুসন্ধান করুন 0f 84 58 1a 00 00
এবং এর সাথে প্রতিস্থাপন করুন 90 90 90 90 90 90
।
হিট সেভ, এবং সম্পন্ন।
ডলফিন এখন মূল হিসাবে চালায়।
দ্রষ্টব্য: কেবলমাত্র আপনি চ ***** আপ করার ক্ষেত্রে, আপনি যে ফাইলগুলি সংশোধন করেছেন তার ব্যাকআপ কপি তৈরি করার জন্য ভাল ধারণা।
এছাড়াও, আপনি কেবল কেট, কুইরাইট এবং ডলফিনের উত্সটি ডাউনলোড করতে পারেন, উত্স কোড থেকে সেই ক্র্যাপটি সরিয়ে, সংকলন এবং ইনস্টল করতে পারেন। তবে যেহেতু মূup় কামেক সিস্টেমটি আইকনগুলির মতো কিছু বোকা বোকা জন্য কিছু ক্র্যাপ ক্রেপ টেম্পলেট অনুপস্থিত, সম্ভবত রেপো সরবরাহকৃত চক্রটি পুরানো তাই এটি কাজ করে না। খুব খারাপ, খুব সহজ হত যদি এটি কেবল কাজ করে, এটি না।
তবে আমি যেমন বর্ণনা করেছি ঠিক তেমন এক্সিকিউটেবলদের প্যাচিং দ্রুততর, সুতরাং যে কেহই কেয়ার করে।
আপনি দেখুন, এটি সরল নয়, এটি তুচ্ছ।
PS:
এখন, যে কোনও সময় কেট, কুইরাইট বা ডলফিন অ্যাপের মাধ্যমে আপডেট করা হয়, আপনার পরিবর্তনগুলি ওভাররাইট করা হবে। এগুলি পুনরায় প্রয়োগ করতে হবে। আমি আপনার প্যাচ-প্রক্রিয়াটি স্বয়ংক্রিয়রূপে সক্ষম হাতের চেয়ে আরও বেশি, এবং আপনার প্রোগ্রামিং অফ জিওয়েস ছেড়ে যাব;)
এটি কি খাঁটি বাশে করা যায়?
এছাড়াও, যদি আপনি একই ক্রাপের জন্য ভিএলসি প্যাচ করতে চান তবে আপনি সেড দিয়ে এটি করতে পারেন:
sed -i 's/geteuid/getppid/' /usr/bin/vlc
কেবলমাত্র সেড-স্টেটমেন্টটি কোনও স্ক্রিপ্টে রেখে দিন, তাই আপনি যদি অফলাইনে থাকেন এবং কোনও ইন্টারনেট অ্যাক্সেস নেই আপনার যদি প্রয়োজন হয় তবে আপনি পুনরায় আবেদন করতে পারবেন।
ভিএলসি-তে কিছু দেখার / শোনার সময় কেট, কুইরাইট এবং ডলফিন সহ - মূল হিসাবে - শুভ হ্যাকিং k
পিএস 2: দু:
খজনক রুট চেকগুলি কেডিএ ভি 19.04-তে ডোডোর পথে চলেছে।
কে বলেছিল n বিবর্তন একটি খারাপ জিনিস was
অগ্রগতি - চিয়ার্স!