-چطور میشه procedure ها و function های موجود در یک فایلی مثل DLL.* شناخت که از اونا بشه در برناممون بکار برد؟
مثال : شناخت بیشتر شماها از وجود عملکردهای موجود در فایل هایی سیستمی چون Shell32.DLL و استفاده از آنها در برنامه هایتان.
:flower:
Printable View
-چطور میشه procedure ها و function های موجود در یک فایلی مثل DLL.* شناخت که از اونا بشه در برناممون بکار برد؟
مثال : شناخت بیشتر شماها از وجود عملکردهای موجود در فایل هایی سیستمی چون Shell32.DLL و استفاده از آنها در برنامه هایتان.
:flower:
این سوال همین یک هفته پیش جواب داده شد.
بطور خلاصه: اگه نویسنده DLL راهنمایی برای استفاده از DLL (یا Header اون رو) در اختیار شما نزاره، نمی تونید از پارامترهای توابع مطلع بشید - در نتیجه نمی تونید ازشون استفاده کنید.
از طریق Header این فایل --> Shell32.hنقل قول:
شناخت بیشتر شماها از وجود عملکردهای موجود در فایل هایی سیستمی چون Shell32.DLL و استفاده از آنها در برنامه هایتان.
آقای کشاورز یادم یک سری برنامه داشتیم که dll ها و ocx ها را جستجو میکردند(به چه صورت؟) و لیست توابع و ثوابت آنرا ارائه میدادند یک همچین کاری را هم MS ole viewer انجام میدهد
COM Library ها به دلیل ساختار استاندارد و مشخص ، از قاعدهء ذکر شده مستثنی هستند .
استاد Inprise پس یک توضیحی راجع به
http://www.codeproject.com/dll/insid...ze_of_dlls.asp
بدهید.
ممنون
آقای مفیدی، لینک بالا سورسی هست که فقط لیست توابع موجود در یک DLL رو نمایش میده، خبری از پارامترها و خروجی توابع نیست! چطور میشه با تابعی که نه پارامترهاش مشخصه و نه خروجیش کار کرد؟
هدف از اون سورس کد هم فقط پیدا کردن یک تابع دلخواه در داخل DLLهای موجود در سیستم هست.
نه تنها پیدا کردن توابع اکسپورت شده و نشده یک کتابخانه ممکنه ، که کسب اطلاعات در مورد آرگومانها و نحوهء کارکرد اونها هم مقدوره . لیکن این دو ربطی به کاربردی بودن DLL ای بدون هدر ندارند ؛ با احتمالی بسیار ضعیف و در شرایط کاملا" خاص ممکنه بشه با Reversing توابع ، آرگومانهای صحیح رو حدس زد و حتی از اونها استفاده کرد ، و چون این شرایط خاص ، اغلب اتفاق نمی افتند ، همانطور که قبلا" گفته شد میشه با تقریب خوبی مطمئن بود استفاده از یک DLL بدون هدر عملی نیست . بهتره کاربران فروم بیاموزند قبل از ورود به مباحث فنی ، میشه از سیستم جستجوی فروم به نحو احسن استفاده کرد .
بله گشتم ولی هیچ مبحثی که توضیح کاملتری از مواردی که اینجا ذکر شده را پیدا نکردم.
ضمنا شما میفرمایید با با Reversing توابع توابع میشه آرگومانهای صحیح رو حدس زد و از ائنها استفاده کرد.
این یعنی چی؟
بالا خره میشه یا نمیشه. اسم توابع که مشکلی نیست مسئله پارامترهای ورودی و خروجی است
قبلا" دو بار به تفصیل در این مورد نوشته ام . بسته به Binary Representation آرگومانها ، کامپایلر ، آپتیمایزیشن انجام شده یا نشده و نوع آن ، روش استخراج توابع و ...فاکتورهائی از این دست "ممکنه" در شرایط خاصی بشه حدسهای موفقی از ورودی-خروجی توابع داشت که کاربردی هم باشند . موارد موفقی از این به اصطلاح Reversing رو میشه روی پیاده سازی SMB مایکروسافت تحت لینوکس دید . لیکن این اتفاقی نیست که همیشه بیفته ایضا" فرآیند ساده و قابل اتکائی نیست . در واقع این روند میتونه همونقدر مشکل باشه که بازیابی سورس از باینری ؛ فلذا میشه با خیال راحت روش حساب نکرد و اگر DLL ای دارای هدر نیست ، عطاش رو به لقاش بخشید .
سلام.ببخشید این Header که میگید کجاست؟نقل قول:
نوشته شده توسط علی کشاورز
راستی اگه میشه آدرس بحث قبلی رو بدید.