PDA

View Full Version : سوال: بدست آوردن یونتر یک متد یا تابع



DarkSoroush
سه شنبه 22 مرداد 1387, 04:17 صبح
خب دوستان من مدتی هست مشکلی دارم مبنی بر بدست اوردن ادرس یک تابع یا متد.
موضوع از این قراره که من یک دلیگیت دارم و یک تابع که یکی از ارگونهاش این دلیگیت هست.
همه چی حتی فرستادن تابع مورد نظر با استفاده از دلیگیت و ارگمونها به تابع اصلی طبیعتا" درست عمل میکنه ولی چیزی که من از این ارگون میخواهم ادرس تابع در رم است.
در c++ اگر نوع پروژه MFT باشه مشکلی نیست و راحت میشه خود تابع رو جمع زد (!!) ولی در C++ و در حالت CLR و یا حتی VB.NET و C# من این مشکل رو دارم. (از اونجایی که با c# راحت ترم اینجا تاپیک رو ساختم ولی با هر زبانی اگر بلدید بگید متوجه میشم اگر چه سوال تقریبا" در حیطه c# است) از دوستان خواهش دارم اگر روشی برای بدست اوردن ادرس یک تابع در رم سراغ دارند دریغ نکنند
***ویرایش شده توسط مدیر***
پیشاپیش ممنون
- سروش

Amir Oveisi
سه شنبه 22 مرداد 1387, 14:46 عصر
فکر کنم این به درد بخوره
http://msdn.microsoft.com/en-us/library/843s5s5x.aspx

DarkSoroush
سه شنبه 22 مرداد 1387, 20:03 عصر
ممنون ولی آدرسی که دادید ربطی به سوال من ندشت برمودا جان.

Amir Oveisi
سه شنبه 22 مرداد 1387, 22:08 عصر
نمیدونم من دقیقا نمیدونم آدرس متد رو واسه چکاری میخواین.
اصولا و تا اونجایی که من اطلاع دارم مثل ++C‌نمیشه تو NET. آدرس یه متد رو بصورت یه عدد بدست آورد چون Managed Code ها همیشه تو Private Memory‌ نگهداری میشن و هیچ موجودی اجازه دسترسی به اونجا رو نداره به جز OS.
حالا اگر شما بگید که واسه چکاری میخواین شاید دوستان دیگه بتونن بهتر کمک کنند.
موفق باشید
jooje

DarkSoroush
سه شنبه 22 مرداد 1387, 23:21 عصر
بله bermooda خودمم تقریبا به همین نتیجه رسیده بودم که نمیشه تحت زبانهای .net به ادرس یک متد دسترسی داشت با این حال گفتم جهت آخرین سعی اینجا موضوع رو مطرح کنم.
هدف من hook کردن یک تابع است و برای این کار باید زمان فراخوانی تابع مورد نظر برنامه را به تابعی که من تعریف کردم jump کنم. موضوع اینه که تا من ادرس تابع خودم رو نداشته باشم نمیتونم process injection رو عملی کنم.

بازم ممنون. از دوستان هم تقاضا دارم اگر اطلاعاتی هرچند ساده و به نظر بی ربط دارند مطرح کنند شاید مورد استفاده من و بقیه دوستان علاقه مند قرار گرفت.