PDA

نسخه کامل مشاهده نسخه کامل : مشكل با تغيير يك رشته ي ثابت در يك فايل اجرايي



fire-wizard
01-09-2008, 00:53
با سلام خدمت دوستان عزيز .

يك راهنمايي كمي تخصصي از فعالان در اين زمينه دارم

فرض كنيد شما يك برنامه ي كوچيك نوشتيد كه بعد از اجرا فقط يك پيغام نشون ميده و متن پيغام هم به صورت يك رشته ي ثابت است و تغيير نميكنه .

حالا اگه بعدا خواستين بدون اينكه برنامه رو دوباره كامپايل كنيد متن پيغام رو تغيير بدين چيكار ميكنيد ؟ من هم اولين كاري كه كردم رفتم و يك Hex Editor خوب رو باز كردم مثل Win Hex و اون رشته ي ثابت رو تغيير دادم ولي يك مشكل اساسي وجود داره .... ما رشته رو ميتونيم تغيير بديم ولي يك محدوديت وجود داره و اونم اينه كه طول رشته ي جديدمون نميتونه بيشتر از رشته ي قبلي باشه و اگه بخواييم يك بايت به فايل اظافه كنيم و رشته ي طولاني تر جديد رو وارد كنيم ديگه برنامه اجرا نميشه و پيغام خطا ميده :41:

حالا بايد چيكار كنيم كه بتونيم طول رشته ي جديد رو هر چقدر دلمون خواست بديم و برنامه هم درست اجرا بشه ..... ؟؟؟؟ :11:

SadeghPM
01-09-2008, 09:30
اون جايي كه رشته استفاده ميشه بايد يه چيز مثه Push XXXXXXXX باشه كه X آدرس شروع اون متنه ... متن دلخواه خودتو با WinHex يه جايي توي فايل اصلي بزار ... بعد با OllyDBG بازش كن ... دنبال رشته اي كه نوشتي بگرد ... جايي كه اولي نشون ميده كه رشته شروع شده (آدرس) رو يادداشت كن و به جاي اون XXXXXXXXX بزارش...

fire-wizard
01-09-2008, 12:11
متن دلخواه خودتو با WinHex يه جايي توي فايل اصلي بزار ... بعد با OllyDBG بازش كن ... دنبال رشته اي كه نوشتي بگرد ... جايي كه اولي نشون ميده كه رشته شروع شده (آدرس) رو يادداشت كن و به جاي اون XXXXXXXXX بزارش...

خودم همه ي اينايي كه گفتي ميدونم ولي ..... كجاي فايل بنويسم ... اين مشكل من هست ... نميشه كه اخر فايل بيام الكي بنويسم ... تازه اگر هم بنويسم اون متن به عنوان Stub حساب ميشه و اصلا olly اون رو نشون نميده ....

fire-wizard
01-09-2008, 12:14
دوستان عزيز مشكلم حل شد ....

:10:

با تشكر :31:

Morteza_SOS
01-09-2008, 21:09
دوستان عزيز مشكلم حل شد ....

:10:

با تشكر :31:

خدا را شکر که مشکلتون حل شد ، لطفا نحوه ی عملکردتون را هم قرار بدید تا بقیه هم استفاده کنند :46: