এক্সএক্সডি থেকে কিছু আউটপুট নেওয়া এবং এটিকে হাতের দ্বারা ব্যবহারযোগ্য শেলকোডে রূপান্তর করা কোনও মজাদার নয়, সুতরাং আপনার কাজটি প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে চালিত করা।
বিধি
আপনার জমাটি কোনও ফাংশন, ল্যাম্বদা, স্ক্রিপ্ট বা এগুলির কোনও যুক্তিসঙ্গত সমতুল্য হতে পারে। আপনি ফলাফল মুদ্রণ করতে পারেন, বা যদি আপনার জমাটি কোনও ফাংশন / ল্যাম্বদা হয় তবে আপনি এটিও ফিরিয়ে দিতে পারেন।
আপনি প্রোগ্রাম তিন আর্গুমেন্ট নিতে হবে, প্রথমে একটি ফাইলের নাম ছাড়া অন্য কোন যুক্তি, ভালো সঙ্গে xxd যাও আউটপুট দৌড়ে ধারণকারী একটি স্ট্রিং হচ্ছে: xxd some_file
। প্রথম যুক্তিটি কেমন হবে তার উদাহরণ এখানে:
00000000: 31c0 b046 31db 31c9 cd80 eb16 5b31 c088 1..F1.1.....[1..
00000010: 4307 895b 0889 430c b00b 8d4b 088d 530c C..[..C....K..S.
00000020: cd80 e8e5 ffff ff2f 6269 6e2f 7368 4e58 ......./bin/shNX
00000030: 5858 5859 5959 59 XXXYYYY
আপনার বাইটস (সেই পরে প্রথম 8 টি কলাম :
) সমেত মধ্যবর্তী বিভাগটি গ্রহণ করা উচিত এবং যে কোনও সাদা জায়গা সরিয়ে শেলকোডে পরিণত করতে হবে, তারপরে \x
প্রতিটি বাইটের আগে একটি রেখে putting
উপরের ইনপুটটির জন্য আউটপুটটি কী হওয়া উচিত তা এখানে (অন্য কোনও যুক্তি উপেক্ষা করে):
\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16\x5b\x31\xc0\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x4e\x58\x58\x58\x58\x59\x59\x59\x59
আপনি ধরে নিতে পারেন প্রথম আর্গুমেন্টটি সর্বদা একটি বৈধ xxd আউটপুট হবে, ফাইল নাম ছাড়া অন্য কোনও যুক্তি ছাড়াই চলে।
আপনার আউটপুটটিও একটি স্ট্রিং হওয়া উচিত যেখানে ব্যাকস্ল্যাশগুলি আক্ষরিক ব্যাকস্ল্যাশ হয়, এস্কেপ অক্ষর হিসাবে ব্যবহৃত হয় না। সুতরাং যখন আমি "\ x65" বলি, তখন আমি বাইট 0x65 বা এমনকি "এ" অক্ষরের কথা বলছি না। কোডে এটি "\ x65" স্ট্রিংটি হবে।
দ্বিতীয় আর্গুমেন্টটি xxd আউটপুটে শেলকোড শুরু হওয়া উচিত এবং তৃতীয়টি কোথায় শেষ হওয়া উচিত তা নির্দিষ্ট করে। যদি তৃতীয় যুক্তিটি হয় তবে -1
এটি এক্সএক্সডি আউটপুট শেষে শেষ হবে। দ্বিতীয় এবং তৃতীয় যুক্তিটি সর্বদা অ-নেতিবাচক থাকবে, তৃতীয়টি বাদ দিলে-1
এখানে কিছু পরীক্ষার মামলা রয়েছে:
তর্ক 1:
00000000: 31c0 b046 31db 31c9 cd80 eb16 5b31 c088 1..F1.1.....[1..
00000010: 4307 895b 0889 430c b00b 8d4b 088d 530c C..[..C....K..S.
00000020: cd80 e8e5 ffff ff2f 6269 6e2f 7368 4e58 ......./bin/shNX
00000030: 5858 5859 5959 59 XXXYYYY
আর্গুমেন্ট 2 7
:, তর্ক 3: e
(এটি উভয় স্ট্রিং হেক্সাডেসিমাল সংখ্যার প্রতিনিধিত্ব করে)
আউটপুট: \xc9\xcd\x80\xeb\x16\x5b\x31\xc0
তর্ক 1:
00000000: 31c0 b046 31db 31c9 cd80 eb16 5b31 c088 1..F1.1.....[1..
00000010: 4307 895b 0889 430c b00b 8d4b 088d 530c C..[..C....K..S.
00000020: cd80 e8e5 ffff ff2f 6269 6e2f 7368 4e58 ......./bin/shNX
00000030: 5858 5859 5959 59 XXXYYYY
যুক্তি 2 0
:, তর্ক 3:2e
আউটপুট: \x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16\x5b\x31\xc0\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x4e
তর্ক 1:
00000000: 31c0 b046 31db 31c9 cd80 eb16 5b31 c088 1..F1.1.....[1..
00000010: 4307 895b 0889 430c b00b 8d4b 088d 530c C..[..C....K..S.
00000020: cd80 e8e5 ffff ff2f 6269 6e2f 7368 4e58 ......./bin/shNX
00000030: 5858 5859 5959 59 XXXYYYY
যুক্তি 2 a
:, তর্ক 3:-1
আউটপুট: \xeb\x16\x5b\x31\xc0\x88\x43\x07\x89\x5b\x08\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x8d\x53\x0c\xcd\x80\xe8\xe5\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x4e\x58\x58\x58\x58\x59\x59\x59\x59
সর্বনিম্ন বাইটস সহ কোডটি জয়ী হয়। বিজয়ী ১৫ ই আগস্ট, ২০১ 2016 এ সাত দিনের মধ্যে ঘোষণা করা হবে (তবে তারপরে জমা দেওয়া এখনও প্রশংসাযোগ্য)।
হালনাগাদ
~
পরিবর্তে \x7e
। এবং আমরা কি \t
পরিবর্তে ফিরে আসতে পারি \x09
?
7
শূন্য-ভিত্তিক সূচকের মতো দেখায় এবং e
এটি একটি ভিত্তিক সূচক ( e-7=7
তবে আপনার আউটপুটে 8 টি হেক্স কোড রয়েছে), বা আমি কি কিছু উপেক্ষা করছি?