x86 16 বিট বাইনারি
এই ( 1 2 ) সারণী, নাসম এবং এনডিএসসমের সাহায্যে ম্যানুয়ালি নির্মিত। এটি সর্বদা ক্র্যাশ বা অসীম লুপ ছাড়াই ফিরে আসবে, কারণ কোনও বাইট জাম্প বা স্ট্যাক পরিবর্তন করে না এবং এটি একটি একক বাইট দিয়ে শেষ করতে এনওপিগুলিতে পূর্ণ হয়ret
নির্দেশের ।
বেশিরভাগ ক্ষেত্রে এটি আউটপুট FOO
বা এটির একটি স্ট্রস্ট্রিং করবে। যদি AX
ভাঙ্গা হয় তবে এটি একটি এলোমেলো 10 নম্বর কল করবে (এটি আমার কোনও পরীক্ষায় কার্সার ঝলকানোর গতি পরিবর্তন করেছে), তবে এটি সাধারণত ক্র্যাশ হয় না।
চেষ্টা করার জন্য, একটি ফাইলে হেক্সডাম্প রেখে ব্যবহার করুন xxd -r foo.hex > foo.com
, তারপরে একটি ডস পরিবেশে চালান (আমি ডসবক্স ব্যবহার করেছি)।
এই ফাইলটির একটি হেক্সাস ডাম্প এখানে রয়েছে:
0000000: b846 0d90 90fe c490 9090 bb05 0090 9043 .F.............C
0000010: 43cd 1090 b84f 0d90 90fe c490 9090 bb05 C....O..........
0000020: 0090 9043 43cd 1090 b84f 0d90 90fe c490 ...CC....O......
0000030: 9090 bb05 0090 9043 43cd 1090 9090 c3 .......CC......
এবং কিছু আকর্ষণীয় বিচ্ছিন্ন অফসেটগুলি:
+0
00000000 B8420D mov ax,0xd42
00000003 90 nop
00000004 90 nop
00000005 FEC4 inc ah
00000007 90 nop
00000008 90 nop
00000009 90 nop
0000000A BB0500 mov bx,0x5
0000000D 90 nop
0000000E 90 nop
0000000F 43 inc bx
00000010 43 inc bx
00000011 CD10 int 0x10
00000013 90 nop
00000014 B84F0D mov ax,0xd4f
00000017 90 nop
00000018 90 nop
00000019 FEC4 inc ah
0000001B 90 nop
0000001C 90 nop
0000001D 90 nop
0000001E BB0500 mov bx,0x5
00000021 90 nop
00000022 90 nop
00000023 43 inc bx
00000024 43 inc bx
00000025 CD10 int 0x10
00000027 90 nop
00000028 B84F0D mov ax,0xd4f
0000002B 90 nop
0000002C 90 nop
0000002D FEC4 inc ah
0000002F 90 nop
00000030 90 nop
00000031 90 nop
00000032 BB0500 mov bx,0x5
00000035 90 nop
00000036 90 nop
00000037 43 inc bx
00000038 43 inc bx
00000039 CD10 int 0x10
0000003B 90 nop
0000003C 90 nop
0000003D 90 nop
0000003E C3 ret
(নীচের উদাহরণগুলির জন্য, বাইনারি বাকীটি এখনও কার্যকর আছে)
+1 টি
00000000 42 inc dx
00000001 0D9090 or ax,0x9090
00000004 FEC4 inc ah
00000006 90 nop
+2
00000001 0D9090 or ax,0x9090
00000004 FEC4 inc ah
00000006 90 nop
+6
00000000 C4909090 les dx,[bx+si-0x6f70]
00000004 BB0500 mov bx,0x5
00000007 90 nop
00000008 90 nop
00000009 43 inc bx
0000000A 43 inc bx
0000000B CD10 int 0x10
+11
00000000 050090 add ax,0x9000
00000003 90 nop
00000004 43 inc bx
00000005 43 inc bx
00000006 CD10 int 0x10
+12
00000000 00909043 add [bx+si+0x4390],dl
00000004 43 inc bx
00000005 CD10 int 0x10
: +18
00000000 1090B84F adc [bx+si+0x4fb8],dl
00000004 0D9090 or ax,0x9090
00000007 FEC4 inc ah
00000009 90 nop
(অন্যান্য অফসেটগুলি কেবল উপরের পুনরাবৃত্তি)
+58
00000000 10909090 adc [bx+si-0x6f70],dl
00000004 C3 ret