কেন "সি: \ প্রোগ্রাম" নামক একটি প্রোগ্রাম অন্যান্য প্রোগ্রামগুলিকে প্রভাবিত করতে পারে?


16

আজ নীল রঙের একটি ফাইল রুটটিতে Programউপস্থিত হয়েছিল C:\এবং সিস্টেমে লগ ইন করার সময় একটি পপআপ একটি বার্তা দেখায়:

ফাইলের নাম সতর্কতা

আপনার কম্পিউটারে "সি: \ প্রোগ্রাম" নামে একটি ফাইল বা ফোল্ডার রয়েছে যা নির্দিষ্ট অ্যাপ্লিকেশনগুলি সঠিকভাবে কাজ না করার কারণ হতে পারে। এটি "সি: \ প্রোগ্রাম 1" এ নামকরণ করলে সমস্যার সমাধান হবে। আপনি কি এখনই নাম পরিবর্তন করতে চান?

বার্তাটি স্ব-ব্যাখ্যা দেওয়ার সময় আমি ভাবছি কেন এই ফাইলটির এত বড় প্রভাব থাকতে পারে? প্রকৃতপক্ষে, কিছু প্রোগ্রাম (সম্ভবত সমস্ত, আমি পরীক্ষা করে দেখিনি) C:\Program Files...এগুলি শুরু করে নি। আমি বুঝতে পারি যে এই জাতীয় ফাইলটি কীভাবে তৈরি করা যেতে পারে (উদাহরণস্বরূপ, ফোল্ডারে লেখার চেষ্টা করছেন C:\Program Files\Something...তবে উদ্ধৃতি ব্যতীত) তবে আমি কীভাবে বুঝতে পারি এটি কীভাবে অন্যান্য প্রোগ্রামগুলিকে প্রভাবিত করতে পারে।


1
আপনি কি নিশ্চিত যে এটি একটি উইন্ডোজ দ্বারা উত্পাদিত বার্তা ছিল?
রামহাউন্ড

1
ইয়াপ, প্রসেস এক্সপ্লোরার থেকে ডাবল চেক করা হয়েছে, এটি এক্সপ্লোরার
এক্সেক্স

2
স্কেচি লাগছে, Program Files* সাধারণ গ্রাহক ছাড়া কোনও প্রোগ্রাম (একটি নির্বাচিত কয়েকজনের বাইরে) ইনস্টল করা উচিত নয় । তবে আমি মনে করব এটি কারণ অনুসন্ধানের সাথে খারাপ মিলের বদলে এটি খুঁজে পেতে পারে Program Files
নারদওয়ালার

উত্তর:


27

উইন 32 এপিআই-তে দীর্ঘকালীন জ্ঞাত দুর্বলতার কারণে এর এত বড় প্রভাব রয়েছে।

প্রোগ্রামগুলি CreateProcess()কলের মাধ্যমে উইন 32 এ ছড়িয়ে পড়ে । এটি বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে। ইউনিক্স, লিনাক্স, বা ওএস / ২ ব্যাকগ্রাউন্ড থেকে আসা লোকেরা সাধারণত এটিকে প্রোগ্রামের (ইমেজ ফাইল) স্পোন করতে এবং কমান্ড লেজকে নতুন প্রক্রিয়াতে স্থান দেওয়ার জন্য দুটি পৃথক যুক্তি গ্রহণ করার কথা ভাবেন কারণ ফাইলের নাম এবং আর্গুমেন্ট ভেক্টর / কমান্ড টেইল এই অপারেটিং সিস্টেমগুলির এপিআইগুলিতে দুটি পৃথক জিনিস। তবে বাস্তবে সিস্টেম কলটি একটি বিকল্প স্ট্রিমের সাথে প্রোগ্রামের নাম এবং আর্গুমেন্টগুলি একসাথে ছাঁটাই করা যেতে পারে। CreateProcess()কমান্ড লেজ থেকে প্রোগ্রাম ফাইলের নাম আলাদা করার চেষ্টা করবে।

সমস্যাটি হ'ল এটি প্রতিটি ক্রমাগত স্থানের অক্ষরটিতে ক্রমান্বয়ে স্ট্রিনকে দু'ভাগে বিভক্ত করে, যতক্ষণ না বাম-হাতের অংশটি কোনও ফাইল বা ডিরেক্টরিটির সাথে মেলে না। অনেক উইন 32 প্রোগ্রাম C:\Program Files\Contoso\TakeOver.exe StackExchange.comসিস্টেম কলের মতো স্ট্রিংগুলি পাস করার চেষ্টা করবে । এটি সঠিক প্রোগ্রামটি চালাবে - C:\Program Files\Contoso\TakeOver.exe- ডান কমান্ড লেজ সহ - StackExchange.com- এমন অবধি যে কোনও স্পষ্টতই বিপজ্জনক ব্যক্তি উপস্থিত হয় এবং C:\Programআপনার মতো একটি ফাইল তৈরি করে ।

এই মুহুর্তে, সিস্টেম কলটি C:\Programকমান্ড লেজের সাহায্যে প্রোগ্রামের চিত্র ফাইলটি চালানোর চেষ্টা করে Files\Contoso\TakeOver.exe StackExchange.comC:\Programআসলে যদি একটি এক্সিকিউটেবল প্রোগ্রামের চিত্র হয় তবে স্বর্গ আপনাকে সহায়তা করে ।

এটি একটি সাধারণ দুর্বলতা এবং এটি কোনও প্রোগ্রামের ফাইলসনামের সাথে প্রয়োগ করে যে কোনও প্রোগ্রামের সাথে একত্রিত করে ফাঁকা স্থান রয়েছে যা অন্য প্রোগ্রামগুলিকে স্প্যান করতে ওয়ান বিগ স্ট্রিং ব্যবহার করে। তবে এর দ্বারা যে সাধারণ ঘটনাটি সবচেয়ে বেশি সংঘটিত হয়েছে তা হ'ল C:\Program Files\ওয়ান বিগ স্ট্রিং এপ্রোচ ব্যবহার করে এমন অনেকগুলি প্রোগ্রাম এবং অধীনে উইন 32 প্রোগ্রাম is

উইন 32 এপিআই পরিবর্তন করতে অনেক দেরি হয়েছে। এক দশক আগে অনেক দেরি হয়ে গেছে। এবং মাইক্রোসফ্ট অন্যান্য লোকদের দ্বারা লিখিত সমস্ত প্রোগ্রামগুলিকে পরিবর্তন করতে পারে না যা দুটি পরিবর্তে একটি বড় স্ট্রিং পাস করে CreateProcess()। সুতরাং মাইক্রোসফ্ট ব্যবহারকারী লগনে উইন্ডোজ চেক করে তোলে C:\Programএবং আপনি যে সতর্কতাটি দেখেন তা প্রদর্শন করে।

এবং, যেমন আপনি দেখতে পাচ্ছেন, মাইক্রোসফ্টের উইন 32 ডকোতে একটি বড় "সিকিউরিটি" সতর্কতা রয়েছে যা বিকাশকারীদের ওয়ান বিগ স্ট্রিং পদ্ধতির ব্যবহার করে প্রোগ্রাম না লিখতে বলেছে , যা বেশ কয়েক বছর ধরে রয়েছে।

আরও পড়া


6
দুর্দান্ত উত্তর! আমি বিকাশকারী হিসাবে, পরবর্তী কাজটি আমি স্পষ্টতই একটি ডামি তৈরি করব যা এর C:\Program.exeসমস্ত কমান্ড লাইনের পরামিতিগুলিতে লগ করে। আমরা এটি ব্যবহার করব!
কনরাড কোকোসা

1
সুতরাং এই কেন এক্সপি থেকে ডিফল্ট নিরাপত্তা সেটিংস অ প্রশাসক দ্বারা রুট ফাইল তৈরি করার অনুমতি নেই।
কিনোকিজুফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.