2009-10-10 11 views

उत्तर

56

आप फ़ंक्शन नाम देखने के लिए Dependency Walker का उपयोग कर सकते हैं। आप फ़ंक्शन के पैरामीटर केवल तभी देख सकते हैं जब इसे सजाया गया हो। एफएक्यू से निम्नलिखित पढ़ें:

मैं पैरामीटर को कैसे देख सकता हूं और फ़ंक्शन के प्रकार लौटा सकता हूं? अधिकांश कार्यों के लिए, यह जानकारी मॉड्यूल में मौजूद नहीं है। विंडोज़ 'मॉड्यूल फ़ाइल प्रारूप प्रत्येक फंक्शन की पहचान करने के लिए केवल एक पाठ स्ट्रिंग प्रदान करता है। पैरामीटर, पैरामीटर प्रकार, या रिटर्न प्रकार की संख्या सूचीबद्ध करने के लिए कोई संरचित तरीका नहीं है। हालांकि, कुछ भाषाएं फ़ंक्शन "सजावट" या "मैंगलिंग" नामक कुछ करती हैं, जो पाठ स्ट्रिंग में एन्कोडिंग जानकारी की प्रक्रिया है। उदाहरण के लिए, सरल सजावट के साथ एन्कोड किए गए इंट फू (int, int) जैसे फ़ंक्शन को _Foo @ 8 के रूप में निर्यात किया जा सकता है। 8 पैरामीटर द्वारा उपयोग किए गए बाइट्स की संख्या को संदर्भित करता है। यदि सी ++ सजावट का उपयोग किया जाता है, तो फ़ंक्शन को Foo @@ YGHHH @ Z के रूप में निर्यात किया जाएगा, जिसे फ़ंक्शन के मूल प्रोटोटाइप पर सीधे डीकोड किया जा सकता है: int Foo (int, int)। निर्भरता वॉकर Undecorate C++ फ़ंक्शंस कमांड का उपयोग कर सी ++ अनावश्यकता का समर्थन करता है।

+0

संपादित करने के लिए स्वतंत्र महसूस करें, लेकिन जब मैं कोई DLL खोलने का प्रयास करता हूं, तो यह लॉग विंडो में दिखाता है: त्रुटि: कम से कम एक मॉड्यूल में एक अनुपयुक्त रूप से निर्भर मॉड्यूल में अनुपलब्ध निर्यात फ़ंक्शन के कारण एक अनसुलझा आयात होता है। त्रुटि: विभिन्न CPU प्रकारों वाले मॉड्यूल पाए गए। चेतावनी: कम से कम एक देरी-लोड निर्भरता मॉड्यूल नहीं मिला था। चेतावनी: देरी-लोड निर्भर मॉड्यूल में अनुपलब्ध निर्यात फ़ंक्शन के कारण कम से कम एक मॉड्यूल में एक अनसुलझा आयात होता है। –

+0

मैं विंडोज 7 एक्स 64 फ़ाइनल का उपयोग कर रहा हूं। –

+3

@Alon: ठीक है, आपका एप्लिकेशन शांत गड़बड़ है :) पहली त्रुटि इंगित करती है कि आपके कुछ डीएल 32 बिट सिस्टम के लिए संकलित किए गए हैं और कुछ 64 बिट के लिए संकलित हैं। आप एक ही प्रक्रिया में उसी सीपीयू आर्किटेक्चर के साथ केवल डीएल लोड कर सकते हैं। जब तक एप्लिकेशन उन्हें संभालने में सक्षम होता है तब तक आप दो अन्य त्रुटियों के साथ रह सकते हैं। –

2

इसकी पैरामीटर सूची के बारे में निश्चित नहीं है, लेकिन following TotalCommander plugin बहुत उपयोगी है।

+8

मैं नहीं यकीन है कि लोगों को यह जानकर यह वास्तव में क्या है बिना एक द्विआधारी डाउनलोड करने के लिए चाहते हैं। प्लगइन पेज यहां है: http://physio-a.univ-tours.fr/tcplugins/ – RedGlyph

+0

@RedGlyph मेरा उत्तर – Restuta

8

आप स्रोत कोड और API दस्तावेज़ नहीं है, तो, मशीन कोड तुम सब IDA Pro की तरह कुछ का उपयोग कर dll पुस्तकालय एकत्रित न करने की जरूरत नहीं है, है, एक और विकल्प PE Explorer के परीक्षण संस्करण का उपयोग करें।

पीई एक्सप्लोरर डिस्सेबलर प्रदान करता है। पैरामीटर को समझने का केवल एक ही तरीका है: डिससेबलर चलाएं और डिस्सेप्लर आउटपुट पढ़ें। दुर्भाग्यवश, रिवर्स इंजीनियरिंग के इस कार्य को इंटरफ़ेस स्वचालित नहीं किया जा सकता है।

पीई एक्सप्लोरर 39 विभिन्न पुस्तकालयों के लिए विवरण के साथ आता है, कोर Windows® ऑपरेटिंग सिस्टम पुस्तकालयों (जैसे। Kernel32, GDI32, USER32, Shell32, WSOCK32), कुंजी ग्राफिक्स पुस्तकालय (DDRAW, OPENGL32) इत्यादि शामिल है। दृश्य स्टूडियो कमांड प्रॉम्प्ट से

alt text http://www.heaventools.com/img/tour2-2.gif

+0

यह निर्सॉफ्ट डीएलएल निर्यात व्यूअर से अलग कैसे है? – Pacerier

60

DUMPBIN:

C: \ Users \ एंड्रयू \ src2011 \ क्रिप्टोग्राफी \ cspsdk> DUMPBIN/निर्यात csp.dll

Microsoft (R) Coff/पीई डुपर संस्करण 10.00.30319.01 कॉपीराइट (सी) माइक्रोसॉफ्ट कॉर्पोरेशन। सर्वाधिकार सुरक्षित।

फ़ाइल प्रकार फ़ाइल csp.dll का डंप: DLL

धारा CSP.dll

00000000 characteristics 
3B1D0B77 time date stamp Tue Jun 05 12:40:23 2001 
    0.00 version 
     1 ordinal base 
     25 number of functions 
     25 number of names 

ordinal hint RVA  name 

     1 0 00001470 CPAcquireContext 
     2 1 000014B0 CPCreateHash 
     3 2 00001520 CPDecrypt 
     4 3 000014B0 CPDeriveKey 
     5 4 00001590 CPDestroyHash 
     6 5 00001590 CPDestroyKey 
     7 6 00001560 CPEncrypt 
     8 7 00001520 CPExportKey 
     9 8 00001490 CPGenKey 
    10 9 000015B0 CPGenRandom 
    11 A 000014D0 CPGetHashParam 
    12 B 000014D0 CPGetKeyParam 
    13 C 00001500 CPGetProvParam 
    14 D 000015C0 CPGetUserKey 
    15 E 00001580 CPHashData 
    16 F 000014F0 CPHashSessionKey 
    17 10 00001540 CPImportKey 
    18 11 00001590 CPReleaseContext 
    19 12 00001580 CPSetHashParam 
    20 13 00001580 CPSetKeyParam 
    21 14 000014F0 CPSetProvParam 
    22 15 00001520 CPSignHash 
    23 16 000015A0 CPVerifySignature 
    24 17 00001060 DllRegisterServer 
    25 18 00001000 DllUnregisterServer 

सारांश

1000 .data 
    1000 .rdata 
    1000 .reloc 
    1000 .rsrc 
    1000 .text 
+6

गलती से 'डंपबिन/निर्यात' निष्पादित न करने के लिए सावधान रहें (अंत में 'गायब है), यह एक पूरी तरह से अलग आदेश है। –

+1

मैं डंपबिन के बारे में भूल जाता हूं और हर छह महीने या तो इस जवाब को देखना चाहता हूं। धन्यवाद! – tofutim

17

DLL Export Viewer निम्नलिखित निर्यात होता है NirSoft द्वारा कर सकते हैं डीएलएल में निर्यात किए गए कार्यों को प्रदर्शित करने के लिए इस्तेमाल किया जाए।

This utility displays the list of all exported functions and their virtual memory addresses for the specified DLL files. You can easily copy the memory address of the desired function, paste it into your debugger, and set a breakpoint for this memory address. When this function is called, the debugger will stop in the beginning of this function.

enter image description here

+1

निर्सॉफ्ट का आवेदन नामहीन कार्यों को प्रदर्शित नहीं करता है :-( – TCS

+0

@MagnusLindhe मैं इस ऐप का उपयोग पता कॉपी करता हूं और इसे ब्रेकपॉइंट के रूप में सेट करता हूं, लेकिन जब मैं इसे विजुअल स्टूडियो (डीबग मोड, विन 32) के साथ डीबग करता हूं तो यह रोक नहीं देता है समारोह को बुलाया जाता है। मैंने यह कोशिश करने के लिए पता और सापेक्ष पते दोनों का उपयोग किया। वे काम नहीं करते हैं। मैं क्या गलत कर रहा हूं? शायद आप जानते हैं? मुझे इस पर अधिक जानकारी नहीं मिल रही है। –

+0

डीएलएल बटन के लिए ब्राउज़ करें मेरे लिए टूटा हुआ पूरा हो गया है, जो भी डीएलएस में कोई भी फ़ंक्शन नहीं दिखाता है। मैं विंडोज 10 (64 बिट) – Owl

संबंधित मुद्दे