با سلام
من یک فایل DLL دارم ولی از اسامی توابع درون اون اطلاع ندارم می خواستم اون رو در دلفی فراخوان کنم ولی این کار رو نمی دونم میشه دوستان لطف کنند و توضیخ بدن...
قبلا در اینترنت گشتم ولی نکته ایی رو بدست نیاوردم
Printable View
با سلام
من یک فایل DLL دارم ولی از اسامی توابع درون اون اطلاع ندارم می خواستم اون رو در دلفی فراخوان کنم ولی این کار رو نمی دونم میشه دوستان لطف کنند و توضیخ بدن...
قبلا در اینترنت گشتم ولی نکته ایی رو بدست نیاوردم
سلام.
با استفاده از برنامه Exescope می تونید اسامی اونها رو بدست بیارید، اما با هیچ برنامه ای ندیدم بشه پارامترها رو هم فهمید.
در زير تصوير برنامه ايي رو كه شما گفيد مي بينيد ولي محتويات DLL رو چيزي نشون نميده ......ميشه راهنمايي كنيد
ضمیمه 143819
مشاهده تصوير
برای مشاهده لیست توابع میتونید از این برنامه استفاده کنید : 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 بشه .
در صورت نیاز به اطلاعات و راهنمایی بیشتر میتونید ادامه بحثتون رو در تالار مهندسی معکوس پیگیری کنید .
موفق باشید .