voldemort مدیر انجمن
تاريخ عضويت: 4 شنبه 24 تير 1383 تعداد ارسالها: 392 محل سكونت: تهران
2 شنبه 26 بهمن 1383 - 19:32 |
|
|
کاری که شما می خواید انجام بدید روش مستقیم و دقیقی نداره.
فایلهای DLL معمولا اسامی توابع داخل خودشون را بعنوان Type Library بصورت Resource دارن. بنابراین در اینطور موارد با استفاده از از بعضی Resourcer ها می تونید اسامی این توابع رو استخراج کنید. خیلی راحت می تونیم نتیجه بگیریم که Dll هایی که ساختار اونها به این شکل نیست را نمی تونیم با استفاده از Resource ها به توابع اونها دسترسی پیدا کنیم. به عنوان مثال Dll هایی که با استفاده از Visual Basic مس سازید جزو این نوع Dll ها هستن. اگه یه Dll ساخته شده با VB را با این برنامه ها باز کنید فقط لیست یه سری توابع رو می بینید که خود سیستم عامل توانایی اجرای اونها را داره و از این توابع برای دسترسی به توابع اصلی استفاده می کنه.
دو سه سال پیش یه نرم افزار عجیب و غریب دیدم که علاوه بر لیست کردن نام توابع درون Dll ها توانایی جابجا کردن توابع داخل اونها را هم داشت. اسم این نرم افزار Function Replacer بود که می تونید با یه سرچ کوچولو پیداش کنید.
یه چیزی می گم یه کم بخندیم. به کسی نگید ولی شما خیلی راحت با باز کردن یه فایل Dll داخل ویرایشگر متنی و بررسی متون اجق وجق می تونید لیست توابع را پیدا کنید! به همین راحتی.
تا حالا من هیچ راهی به جز روش سعی و خطا برای پیدا کردن Prototype توابع موجود در Dll ها پیدا نکردم. روش سعی و خطا هم بستگی به خلاقیت خودتون داره! (به عنوان مثال: هر وقت که خطایی در موتور Unreal بوجود بیاد در گزارش خطایی که برای اون خطا ساخته میشه ضمن نام تابعی که خطا در اون اتفاق افتاده، Prototype اون تابع را هم در گزارش خطا ذکر می کنه). اگه کسی در این زمینه اطلاعاتی داره به ما هم بگه. |
_________________ First they ignore you;then they laugh at you ;then they fight you ;then you win |
|