PDA

View Full Version : سوال: نام توابع استفاده شده در یک فایل اجرایی



Desaghi
جمعه 12 تیر 1394, 09:12 صبح
آیا می توان نام توابع استفاده شده در یک فایل اجرایی ساخته شده با c را استخراج کرد؟

rahnema1
جمعه 12 تیر 1394, 16:30 عصر
سلام
برای ویندوز برنامه ای به نام dependency walker که رایگان هم هست می تونه import table و بعضی اطلاعات دیگه فایل pe را نشون بده

بهروز عباسی
شنبه 13 تیر 1394, 01:50 صبح
آیا می توان نام توابع استفاده شده در یک فایل اجرایی ساخته شده با c را استخراج کرد؟
اگه میخوای برنامه ای بنویسی که این کارو بکنه آره باید Import Table رو بخونی . این لینکو ببین (http://www.rohitab.com/discuss/topic/38591-c-import-table-parser/)

اگه دنبال برنامه ای که دوستمون یه نمونه معرفی کرد منم PE Explorer رو پیشنهاد میکنم ولی توجه کنید این برنامه به صورت استاتیک کار میکنن و ممکنه برنامه مورد نظرت به صورت داینامیک API Call انجام بده در این صورت باید از Sandbox استفاده کنی مثلا cuckoo sandbox یا نمونه ملی میهنی jevereg.

Desaghi
شنبه 13 تیر 1394, 09:25 صبح
اینکه نام توابع قابل ردیابی هست از لحاظ امنیت مشکل ایجاد نمیکنه؟ آیا نام توابع قابل پنهان سازی هست؟

بهروز عباسی
شنبه 13 تیر 1394, 11:10 صبح
اینکه نام توابع قابل ردیابی هست از لحاظ امنیت مشکل ایجاد نمیکنه؟ آیا نام توابع قابل پنهان سازی هست؟
توجه داشته باشین که فقط توابعی قابل مشاهده هستن (چه داینامیک چه استاتیک) که از DLL ها Import شدن و نه توابع داخلی برنامه شما!
در مورد خطر هم تقریبا نه چون توابع بدون داشتن اطلاعات دقیق مثل Return Typeو Argument ها تقریبا استفاده ای ندارن! و این اطلاعات هم در صورت کلی فقط برای توابع API خود Windows موجوده که میشه مشخصات مذکور رو از MSDN یا windows debug symbols در آورد.

ولی مثلا اگه شما یه کتابخونه بنویسی و از توابع اون استفاده کنی فقط اسم توابع هست که استفاده ای نداره (به شرطی Debug infoاون فایل اجرایی موجود نباشه) مگر اینکه نام گذاری انقدر با معنا باشه که بشه رفتار کلی اون برنامه رو حدس زد!


در مورد امنیت هم تالار امنیت پذیرا و پاسخ گویی شما هست٬ ارتباطی با این بخش نداره!