NOP
নির্দেশের ঠিকানাগুলি সারিবদ্ধ করার জন্য প্রায়শই সময় ব্যবহৃত হয়। বাফার ওভারফ্লো বা ফর্ম্যাট স্ট্রিং দুর্বলতা কাজে লাগাতে শেলকোড লেখার সময় এটি সাধারণত দেখা যায় ।
বলুন আপনার কাছে 100 বাইট ফরোয়ার্ডের তুলনামূলক ঝাঁপ রয়েছে এবং কোডটিতে কিছু পরিবর্তন করুন ifications সম্ভাবনাগুলি হ'ল আপনার পরিবর্তনগুলি জাম্প টার্গেটের ঠিকানায় বিভ্রান্ত হয় এবং যেমন আপনাকে পূর্বোক্ত আপেক্ষিক জাম্পও পরিবর্তন করতে হবে। এখানে, আপনি NOP
লক্ষ্য ঠিকানা এগিয়ে ধাক্কা গুলি যোগ করতে পারেন । আপনার যদি NOP
লক্ষ্য ঠিকানা এবং জাম্প নির্দেশের মধ্যে একাধিক গুলি থাকে NOP
তবে লক্ষ্য ঠিকানাটি পিছনে পিছনে টানতে আপনি গুলি সরাতে পারেন ।
আপনি যদি কোনও এসেম্বলারের সাথে কাজ করছেন যা লেবেল সমর্থন করে তবে এই সমস্যা হবে না। আপনি সহজেই করতে পারেন JXX someLabel
(যেখানে জেএক্সএক্স কিছু শর্তসাপূর্ণ লাফ) এবং এসেম্বেবলার someLabel
সেই লেবেলের ঠিকানার সাথে প্রতিস্থাপন করবে । তবে, আপনি যদি সহজেই এসেম্বলড মেশিন কোডটি (আসল ওপকোডগুলি) হাত দ্বারা সংশোধন করেন (যেমন শেলকোড লেখার সাথে এটি কখনও কখনও ঘটে) তবে আপনাকে নিজেও লাফের নির্দেশটি পরিবর্তন করতে হবে। হয় আপনি এটি সংশোধন করতে পারেন, বা তারপরে NOP
গুলি ব্যবহার করে লক্ষ্য কোড ঠিকানাটি সরিয়ে নিন ।
NOP
নির্দেশের জন্য আরেকটি ব্যবহারের ক্ষেত্রে হ'ল এনওপি স্লেজ নামে পরিচিত । সংক্ষেপে ধারণাটি হ'ল নির্দেশের বিশাল পরিমাণে অ্যারে তৈরি করা যা কোনও পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে না (যেমন suchNOP
বা ইনক্রিমেন্টিং এবং তারপরে একটি রেজিস্টার হ্রাস) তবে নির্দেশিকা নির্দেশকটি বাড়িয়ে দিন। এটি উদাহরণস্বরূপ কার্যকর যখন কোনও কোডের নির্দিষ্ট অংশে ঝাঁপিয়ে পড়তে চায় যা ঠিকানা জানা যায় না। কৌশলটি হ'ল উল্লিখিত এনওপি স্লেজকে টার্গেট কোডের সামনে রাখবে এবং তারপরে স্লেডের কোথাও লাফিয়ে। যা হয় তা কার্যকরভাবে অ্যারে থেকে কার্যকর হয় যার কোনও পার্শ্ব-প্রতিক্রিয়া নেই এবং এটি কোডের পছন্দসই অংশটিকে আঘাত না করা অবধি নির্দেশ-প্রতি-নির্দেশকে অনুসরণ করে। এই কৌশলটি সাধারণত পূর্বোক্ত বাফার ওভারফ্লো শোষণে এবং বিশেষত ASLR এর মতো সুরক্ষা ব্যবস্থার বিরুদ্ধে লড়াই করতে ব্যবহৃত হয় ।
তবুও NOP
নির্দেশের জন্য আরেকটি বিশেষ ব্যবহার হ'ল যখন কোনও একটি প্রোগ্রামের কোড পরিবর্তন করে। উদাহরণস্বরূপ, আপনি শর্তসাপেক্ষ জাম্পগুলির অংশগুলি NOP
এস এর সাথে প্রতিস্থাপন করতে পারেন এবং শর্তটি এড়ানোতে পারেন । সফ্টওয়্যারটির অনুলিপি " ক্র্যাকিং " করার সময় এটি প্রায়শই ব্যবহৃত পদ্ধতি used সরলতমতম সময়ে এটি কোড if(genuineCopy) ...
লাইন জন্য সমাবেশ কোড কনস্ট্রাক্ট অপসারণ এবং NOP
এস এবং .. এর সাথে নির্দেশাবলী প্রতিস্থাপন সম্পর্কে ! কোনও চেক তৈরি হয় না এবং খাঁটি অনুলিপি কাজ করে!
নোট করুন যে সংক্ষেপে শেলকোড এবং ক্র্যাকিংয়ের দুটি উদাহরণ একই কাজ করে; অপারেশনের আপেক্ষিক ঠিকানাগুলি আপডেট না করে বিদ্যমান কোডটি সংশোধন করুন যা আপেক্ষিক ঠিকানার উপর নির্ভর করে।