View Full Version : سوال: self-modifying code
mdolia
دوشنبه 02 دی 1392, 23:22 عصر
سلام من در رابطه با self-modifying code در تالار سرچ کردم چیزی نبود!اگه تا حالا بحثش نبوده میتونه جالب باشه!من دارم رو یه پروژه کار میکنم و هدف اعمال تغییرات تصادفی در زمان اجرا روی کد هست!یه کد نمونه دارم که به زبان c هست میخوام با استفاده از روش self-modifying code به نحوی عمل کنم که در زمان اجرا کد در یه محلهای مشخصی خودشو تغییر بده مثلا یه تعداد nop در برنامه داشته باشم در هنگام اجرا این nop ها با دستورات دیگه ای جایگزین بشند و در هر اجرا هم متفاوت باشند حتی بعضی وقتها همون nop بمونند!فکر میکنم باید از روش inline assembly استفاده کنم ولی نمیدونم چطور و متاسفانه اطلاعات من از اسمبلی هم کمه!
تو اینترنت زیاد گشتم اما مطلب یا نمونه مفیدی پیدا نکردم حالا میخواستم ببینم دوستان کسی کاری نکرده؟مطلب مفیدی نداره؟
Delphi Coder
پنج شنبه 05 دی 1392, 23:42 عصر
سلام من در رابطه با self-modifying code در تالار سرچ کردم چیزی نبود!اگه تا حالا بحثش نبوده میتونه جالب باشه!من دارم رو یه پروژه کار میکنم و هدف اعمال تغییرات تصادفی در زمان اجرا روی کد هست!یه کد نمونه دارم که به زبان c هست میخوام با استفاده از روش self-modifying code به نحوی عمل کنم که در زمان اجرا کد در یه محلهای مشخصی خودشو تغییر بده مثلا یه تعداد nop در برنامه داشته باشم در هنگام اجرا این nop ها با دستورات دیگه ای جایگزین بشند و در هر اجرا هم متفاوت باشند حتی بعضی وقتها همون nop بمونند!فکر میکنم باید از روش inline assembly استفاده کنم ولی نمیدونم چطور و متاسفانه اطلاعات من از اسمبلی هم کمه!
تو اینترنت زیاد گشتم اما مطلب یا نمونه مفیدی پیدا نکردم حالا میخواستم ببینم دوستان کسی کاری نکرده؟مطلب مفیدی نداره؟
به نظر من کلا این قضیه تو level زبان ماشین یا اسمبلی معنی پیدا میکنه توی C هم بخواد انجام بشه بدون یه نیم نگاه به اسمبلی معنی نداره. کد شما در memory قرار میگیره و اجرا میشه حالا اگر یه اشاره گر به قسمتی از کد داشته باشید و کدهای دستورات دیگه ای رو جایگزین کنید دستورات عوض شدند البته یک مساله دیگه هم باید در نظر داشت در فایلهای اجرایی ویندوز ناحیه ای که کد برنامه وجود داره writeable نیست و نمیشه روش نوشت باید اول ناحیه کد رو با یک ادیتور PE قابل نوشتن کنید تا بتونید این کار رو انجام بدید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.