अनिर्दिष्ट कार्यों की खोज कैसे की जाती है? [बन्द है]


11


मुझे हमेशा आश्चर्य होता है कि आप अनिर्दिष्ट / निजी एपीआई कैसे पाते हैं ?

उदाहरण के लिए Apple undocumented / निजी एपीआई, प्ले स्टेशन , विंडोज फोन 7 , Win32 कर्नेल , विंडोज एपीआई , हिडन कॉलबैक , आदि ...

निजी और अनिर्दिष्ट कार्यों के बारे में जानने के लिए हैकर्स कौन से टूल का उपयोग करते हैं?

मैं निजी एपीआई और रिवर्स इंजीनियरिंग तकनीकों में लोगों के अनुभवों के बारे में कहां पढ़ सकता हूं जो उन रहस्यों को प्रकट करते हैं जिन्हें आम तौर पर एपीआई प्रलेखन में समझाया जाता है?

धन्यवाद,

जवाबों:


7

ऐसे कुछ तरीके हैं जिनके बारे में मैं सोच सकता हूँ:

  1. प्रतिबिंब। यहां आपको एक ऑब्जेक्ट मिलता है और इसे अपने बारे में जानकारी प्रकट करने के लिए कहता है, जैसे विधियाँ, गुण आदि। सही विकल्पों के साथ (भाषा के आधार पर) आप ऐसी जानकारी को प्रकट कर सकते हैं जो "सार्वजनिक" नहीं है।

  2. Decompilation। यह बाइनरी बनाने के लिए उपयोग किए जाने वाले स्रोत का पुनर्जनन (एक संस्करण) करता है। फिर से यह एपीआई के गैर सार्वजनिक भागों को प्रकट कर सकता है।

आप सूची में "दुर्घटना से" भी जोड़ सकते हैं। एक गलत कॉल / कमांड जो काम करती है, या एक मदद स्क्रीन जो बहुत अधिक जानकारी का खुलासा करती है।


2
आप गलती से सूची में जोड़ सकते हैं । हां, यह अक्सर कम होता है, लेकिन ऐसा होता है;) विशेषकर जब एपीआई मालिक दुर्घटना को भड़काते हैं।

1
@ पियरे - अच्छी बात है।
ChrisF

इसके अलावा, साझा पुस्तकालय हस्ताक्षर। यह विघटन से संबंधित है, लेकिन एक .dll / .dylib / .so फ़ाइल में निर्यात किए गए कार्य आधिकारिक टूल (विजुअल स्टूडियो में निर्भरता एक्सप्लोरर, यूनिक्स में एनएम) के साथ ब्राउज़ करने योग्य हैं
क्रिस डोलन

4

सामान्य उपकरण जो आप सॉफ़्टवेयर विकसित करने के लिए उपयोग करते हैं :)

आमतौर पर अनिर्दिष्ट एपीआई फ़ंक्शंस बस वही होती हैं, जो अनडॉस्क्राइब्ड है , और वास्तव में ध्यान से छिपे हुए रहस्य नहीं हैं।

भविष्य के सबूत एपीआई को डिजाइन करना कठिन है - आप आसानी से एपीआई में सामान जोड़ सकते हैं, लेकिन कुछ भी (कुछ ग्राहकों को तोड़े बिना) निकालना वास्तव में कठिन है। इसलिए, एपीआई में कुछ भी जोड़ने पर आपको बहुत सावधानी बरतनी चाहिए। यही कारण है कि एपीआई में कुछ अतिरिक्त कार्य (परीक्षण के लिए, विकास में, एक त्वरित हैक?) हो सकते हैं, जो दस्तावेज नहीं हैं और अगले संस्करण में काम करने या होने की कोई गारंटी नहीं है।

ये अनैच्छिक कार्य कुछ आसानी से मिल सकते हैं, आपको पता है कि कंपाइलर, लिंकर्स, लाइब्रेरी और डीबगर्स कैसे काम करते हैं (सिस्टम प्रोग्रामिंग सिस्टम)। लक्ष्य वास्तुकला की विधानसभा भाषा जानने से चोट नहीं पहुंचेगी। यदि आपका आईडीई / कंपाइलर कार्यशील निष्पादन योग्य बना सकता है, तो आप "मैन्युअल रूप से" भी कर सकते हैं, और उस रास्ते पर आंखें खोलकर आप कुछ छिपी हुई विशेषताओं का पता लगा सकते हैं :)

यूनिक्स पर्यावरण में उदाहरण: एक परिदृश्य जहां हमारे पास केवल प्रिंटफ फ़ंक्शन के लिए दस्तावेज हैं और यह जानना चाहते हैं कि क्या कुछ अन्य प्रिंट -प्रकार के फ़ंक्शन हैं। विचार की ट्रेन कुछ इस तरह जा सकती है:

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

3. लाइब्रेरी फंक्शन डिसाइड करें

    $ 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)

या कुछ इस तरह का...


2

अस्वीकरण: मुझे क्रिसएफ का जवाब पसंद है। यह दृष्टिकोण के एक जोड़े को छोड़ देता है, मुझे लगता है। यदि इसे टिप्पणियों में उत्तर में रखा गया है कि वे कैसे कवर किए गए हैं, तो मैं अपना उत्तर हटा दूंगा।

यह विघटन के तहत गिर सकता है:

अन्य अनिर्दिष्ट एपीआई ढूँढना एक विक्रेता आपूर्ति उपकरण डिबगिंग के माध्यम से भी हो सकता है जो आप चाहते हैं और इंटरलेक्ट कॉल को ट्रैक करना चाहते हैं। इस तरह, आप अंदाजा लगा सकते हैं कि किस प्रकार का डेटा कहां भेजा जाता है।

अन्य "कस्टम" टूल को तब इन अहानिकर एपीआई के साथ अजगर और CTYPES या रूबी के साथ खेलने के लिए लिखा जा सकता है, जब तक कि यह ठीक वैसा ही न हो, जब तक आपको पता न चले कि यह क्रैश के लिए क्या कर रहा है। इस विषय को आरोन पोर्टनॉय ने कम से कम गहराई में कवर किया है: http://pentest.cryptocity.net/reverse-engineering/ और सम्मेलनों में उनकी कुछ अन्य वार्ताएं (मुझे याद है कि वे इसके बारे में सीधे ब्राजील में एक वार्ता में बोलते हैं। )। यह आरई से संबंधित है, लेकिन मुझे नहीं लगता कि यह बिल्कुल सामान्य आरई है। नोट: pentest.cryptocity.net पर वीडियो सिर्फ इस विषय नहीं हैं। वे अन्य क्षेत्रों को अधिक गहराई से कवर करते हैं, यह बस पर स्पर्श किया जाता है। मुझे लगता है कि यह अक्सर ऐसा होता है कि परीक्षक "सटीक कदम हमारे रहस्यों को दूर कर रहे हैं" के रूप में पहरा देते हैं।

किसी भी प्रतिक्रिया की सराहना के लिए धन्यवाद।

संपादित करें: एक उपकरण जो इसके लिए उपयोगी साबित हो सकता है, वह यह है कि विंडोज़ की ओर न्यूनतम रूप से यहां कवर किया गया है: http://breakingcode.wordpress.com/2010/08/24/winappdbg-1-4-is-out/
मोटी जावा के लिए अपहरण कस्टम नेटवर्क सेवाओं के ग्राहकों को यहाँ कवर किया गया है:
http://www.securitytube.net/JavaSnoop-How-to-hack-anything-written-in-Java-video.aspx

वह अंतिम केवल न्यूनतम रूप से प्रासंगिक है, लेकिन जहां प्रश्नकर्ता आखिरकार जा रहा है, उसके लिए प्रासंगिक साबित हो सकता है। एपीआई का उपयोग कर आप जो भी करने के लिए खुद नहीं है ... जो भी हो।


अधिक / अलग जानकारी की आपूर्ति की तुलना में अपना स्वयं का उत्तर जोड़ना अच्छा है - यह एक स्टैक एक्सचेंज के बारे में सब कुछ है।
ChrisF

@ChrisF स्पष्टीकरण के लिए धन्यवाद। यह सिर्फ ऐसा लग रहा था कि इसे उलट कर कवर किया गया हो। मैंने सोचा कि यह किसी अन्य संभावित विधि के अधिक विशिष्ट संकेतन को सहन कर सकता है / पलटने का अधिक विशिष्ट सबसेट (उल्टा एमएसडीएन में संदर्भित नहीं किए गए प्रतीकों की खोज को कवर कर सकता है)।
रोबॉटहैंस

-2

हैकिंग काफी रोमांटिक लगता है, औद्योगिक जासूसी, लीक, रिश्वत, चोरी और सादे भाग्य नहीं है। मैं हालांकि उन्हें बाहर नहीं गिना जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.