PDA

View Full Version : (جستجو در DLL)



tami_1369
پنج شنبه 16 تیر 1384, 08:33 صبح
-چطور میشه procedure ها و function های موجود در یک فایلی مثل DLL.* شناخت که از اونا بشه در برناممون بکار برد؟
مثال : شناخت بیشتر شماها از وجود عملکردهای موجود در فایل هایی سیستمی چون Shell32.DLL و استفاده از آنها در برنامه هایتان.
:flower:

vcldeveloper
شنبه 18 تیر 1384, 04:30 صبح
این سوال همین یک هفته پیش جواب داده شد.
بطور خلاصه: اگه نویسنده DLL راهنمایی برای استفاده از DLL (یا Header اون رو) در اختیار شما نزاره، نمی تونید از پارامترهای توابع مطلع بشید - در نتیجه نمی تونید ازشون استفاده کنید.


شناخت بیشتر شماها از وجود عملکردهای موجود در فایل هایی سیستمی چون Shell32.DLL و استفاده از آنها در برنامه هایتان.
از طریق Header این فایل --> Shell32.h

MM_Mofidi
شنبه 18 تیر 1384, 13:55 عصر
آقای کشاورز یادم یک سری برنامه داشتیم که dll ها و ocx ها را جستجو میکردند(به چه صورت؟) و لیست توابع و ثوابت آنرا ارائه میدادند یک همچین کاری را هم MS ole viewer انجام میدهد

Inprise
شنبه 18 تیر 1384, 14:48 عصر
COM Library ها به دلیل ساختار استاندارد و مشخص ، از قاعدهء ذکر شده مستثنی هستند .

MM_Mofidi
شنبه 18 تیر 1384, 15:13 عصر
استاد Inprise پس یک توضیحی راجع به
http://www.codeproject.com/dll/inside_a_maze_of_dlls.asp
بدهید.
ممنون

vcldeveloper
یک شنبه 19 تیر 1384, 02:37 صبح
آقای مفیدی، لینک بالا سورسی هست که فقط لیست توابع موجود در یک DLL رو نمایش میده، خبری از پارامترها و خروجی توابع نیست! چطور میشه با تابعی که نه پارامترهاش مشخصه و نه خروجیش کار کرد؟
هدف از اون سورس کد هم فقط پیدا کردن یک تابع دلخواه در داخل DLLهای موجود در سیستم هست.

Inprise
یک شنبه 19 تیر 1384, 03:13 صبح
نه تنها پیدا کردن توابع اکسپورت شده و نشده یک کتابخانه ممکنه ، که کسب اطلاعات در مورد آرگومانها و نحوهء کارکرد اونها هم مقدوره . لیکن این دو ربطی به کاربردی بودن DLL ای بدون هدر ندارند ؛ با احتمالی بسیار ضعیف و در شرایط کاملا" خاص ممکنه بشه با Reversing توابع ، آرگومانهای صحیح رو حدس زد و حتی از اونها استفاده کرد ، و چون این شرایط خاص ، اغلب اتفاق نمی افتند ، همانطور که قبلا" گفته شد میشه با تقریب خوبی مطمئن بود استفاده از یک DLL بدون هدر عملی نیست . بهتره کاربران فروم بیاموزند قبل از ورود به مباحث فنی ، میشه از سیستم جستجوی فروم به نحو احسن استفاده کرد .

MM_Mofidi
یک شنبه 19 تیر 1384, 10:48 صبح
بله گشتم ولی هیچ مبحثی که توضیح کاملتری از مواردی که اینجا ذکر شده را پیدا نکردم.
ضمنا شما میفرمایید با با Reversing توابع توابع میشه آرگومانهای صحیح رو حدس زد و از ائنها استفاده کرد.
این یعنی چی؟
بالا خره میشه یا نمیشه. اسم توابع که مشکلی نیست مسئله پارامترهای ورودی و خروجی است

Inprise
یک شنبه 19 تیر 1384, 19:57 عصر
قبلا" دو بار به تفصیل در این مورد نوشته ام . بسته به Binary Representation آرگومانها ، کامپایلر ، آپتیمایزیشن انجام شده یا نشده و نوع آن ، روش استخراج توابع و ...فاکتورهائی از این دست "ممکنه" در شرایط خاصی بشه حدسهای موفقی از ورودی-خروجی توابع داشت که کاربردی هم باشند . موارد موفقی از این به اصطلاح Reversing رو میشه روی پیاده سازی SMB مایکروسافت تحت لینوکس دید . لیکن این اتفاقی نیست که همیشه بیفته ایضا" فرآیند ساده و قابل اتکائی نیست . در واقع این روند میتونه همونقدر مشکل باشه که بازیابی سورس از باینری ؛ فلذا میشه با خیال راحت روش حساب نکرد و اگر DLL ای دارای هدر نیست ، عطاش رو به لقاش بخشید .

tami_1369
دوشنبه 20 تیر 1384, 05:07 صبح
این سوال همین یک هفته پیش جواب داده شد.
بطور خلاصه: اگه نویسنده DLL راهنمایی برای استفاده از DLL (یا Header اون رو) در اختیار شما نزاره، نمی تونید از پارامترهای توابع مطلع بشید - در نتیجه نمی تونید ازشون استفاده کنید.


از طریق Header این فایل --> Shell32.h

سلام.ببخشید این Header که میگید کجاست؟
راستی اگه میشه آدرس بحث قبلی رو بدید.