সাধারণ সফটওয়্যার যা আপনি সফ্টওয়্যার বিকাশ করতে ব্যবহার করেন :)
সাধারণত Undocumented API ফাংশনগুলি হ'ল কেবল, নথিভুক্ত , এবং সত্যই সাবধানতার সাথে গোপনীয় গোপনীয়তা নয়।
ভবিষ্যতের প্রুফ এপিআই ডিজাইন করা শক্ত - আপনি সহজেই এপিআইতে স্টাফ যুক্ত করতে পারেন তবে কিছু অপসারণ করা (কিছু ক্লায়েন্টকে না ভেঙে) সত্যিই শক্ত। সুতরাং, এপিআই-তে কোনও কিছু যুক্ত করার সময় আপনি খুব সাবধান হন। এ কারণেই এপিআইতে কিছু অতিরিক্ত ক্রিয়াকলাপ (পরীক্ষার জন্য, উন্নয়নে, একটি দ্রুত হ্যাক?) থাকতে পারে, যা নথিভুক্ত নয় এবং পরবর্তী সংস্করণে সেখানে কাজ করার বা থাকার কোনও গ্যারান্টি নেই।
আপনি কীভাবে সংকলক, লঙ্কার, লাইব্রেরি এবং ডিবাগারগুলি (সিস্টেম প্রোগ্রামিং স্টাফ) কাজ করেন তা জেনে এই অননুমোদিত ফাংশনগুলি কিছুটা সহজেই পাওয়া যায়। লক্ষ্য আর্কিটেকচারের সমাবেশের ভাষা জানার ক্ষতি হবে না। যদি আপনার আইডিই / সংকলক কার্যক্ষম এক্সিকিউটেবলগুলি তৈরি করতে পারে তবে আপনি এটি "ম্যানুয়ালি" করতেও পারেন এবং সেই পথে চোখ খোলা রেখে আপনি কিছু গোপন বৈশিষ্ট্য আবিষ্কার করতে পারেন :)
ইউনিক্স পরিবেশে উদাহরণ: এমন একটি দৃশ্য যেখানে আমাদের কেবল প্রিন্টফ ফাংশনের জন্য ডকুমেন্টেশন রয়েছে এবং এটি জানতে চাই যে অন্য কোনও প্রিন্টফ- মত ফাংশন রয়েছে কিনা । চিন্তার প্রশিক্ষণ এমন কিছু হতে পারে:
1. শিরোনাম-ফাইলগুলি পরীক্ষা করুন
$ grep printf /usr/include/stdio.h | head -5
extern int fprintf (FILE *__restrict __stream,
extern int printf (__const char *__restrict __format, ...);
extern int sprintf (char *__restrict __s,
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
extern int vprintf (__const char *__restrict __format, _G_va_list __arg);
2. লাইব্রেরি পরীক্ষা করুন
$ nm /usr/lib/libc.a | grep printf | head -5
U __asprintf
U __fwprintf
U __asprintf
U __fwprintf
U __printf_fp
৩. লাইব্রেরির কার্য বিচ্ছিন্ন করুন
$ objdump -S /usr/lib/libc.a | grep -A 10 '_fwprintf' | head
00000000 <__fwprintf>:
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 8d 45 10 lea 0x10(%ebp),%eax
6: 83 ec 0c sub $0xc,%esp
9: 89 44 24 08 mov %eax,0x8(%esp)
d: 8b 45 0c mov 0xc(%ebp),%eax
10: 89 44 24 04 mov %eax,0x4(%esp)
14: 8b 45 08 mov 0x8(%ebp),%eax
17: 89 04 24 mov %eax,(%esp)
বা এরকম কিছু ...