PDA

View Full Version : فراخوان DLL در دلفی



mydelphi
یک شنبه 28 آذر 1395, 19:36 عصر
با سلام
من یک فایل DLL دارم ولی از اسامی توابع درون اون اطلاع ندارم می خواستم اون رو در دلفی فراخوان کنم ولی این کار رو نمی دونم میشه دوستان لطف کنند و توضیخ بدن...


قبلا در اینترنت گشتم ولی نکته ایی رو بدست نیاوردم

یوسف زالی
دوشنبه 29 آذر 1395, 10:40 صبح
سلام.
با استفاده از برنامه Exescope می تونید اسامی اونها رو بدست بیارید، اما با هیچ برنامه ای ندیدم بشه پارامترها رو هم فهمید.

mydelphi
دوشنبه 29 آذر 1395, 11:23 صبح
در زير تصوير برنامه ايي رو كه شما گفيد مي بينيد ولي محتويات DLL رو چيزي نشون نميده ......ميشه راهنمايي كنيد

mydelphi
دوشنبه 29 آذر 1395, 11:45 صبح
143819
مشاهده تصوير

Felony
چهارشنبه 01 دی 1395, 11:06 صبح
برای مشاهده لیست توابع میتونید از این برنامه استفاده کنید : http://www.nirsoft.net/utils/dll_export_viewer.html

ساختار فایل فرمت PE در ویندوز به گونه ای هست که از توابع Export شده فقط یک رشته برای استفاده به صورت صریح نگهداری میشه و نه بیشتر .
البته مکانیزم های مثل decoration وجود داره که اگر کامپایلری از اون پشتیبانی کنه و برنامه نویس فعالش کرده باشه اسم توابع خروجی چیزی شبیه مثلا MyFunc@8@@Z و ... میشه ؛ در واقع decoration اطلاعات مربوط به پارامترها رو در اسم تابع export شده encode میکنه و بعدا میشه با ابزارهایی این اطلاعات رو decode کرد که در اکثر مواقع از این قابلیت استفاده نمیشه .

برای به دست آوردن لیست پارامترها باید dll مورد نظر رو با ابزارهایی مثل IDA Pro یا موارد ساده تری مثل PE Explorer ب disassemble کنین و بعد به وسیله اطلاعاتی که قبل از فراخوانی تابع تو استک push میشه لیست پارامترها رو به دست بیارید .
توضیحات ارائه شده برای زمانی هست که PE مورد نظر توسط Packer و Crypter ترتیبش داده نشده باشه ، در غیر اینصورت کار پیچیده تر خواهد بود و باید فایل مورد نظر Unpack بشه .

در صورت نیاز به اطلاعات و راهنمایی بیشتر میتونید ادامه بحثتون رو در تالار مهندسی معکوس (http://barnamenevis.org/forumdisplay.php?116-%D9%85%D9%87%D9%86%D8%AF%D8%B3%DB%8C-%D9%85%D8%AC%D8%AF%D8%AF-%D9%88-%D9%85%D8%B9%DA%A9%D9%88%D8%B3) پیگیری کنید .

موفق باشید .