PDA

View Full Version : يك مشكل در استفاده از يك كد اسمبلي در دلفي



ali_mohamadi8928
چهارشنبه 29 آبان 1387, 22:10 عصر
دوستان من ميخوام مقدار ثبات EIP كه جزء يكي از ثباتهاي وضعيت و كنترلي هست رو در كدم در درون يك متغيير بريزم .

ولي هر كاري ميكنم اصلا قبول نميكنه . من كد رو به صورت زير مينويسم . همين مدل كد براي ثباتهاي ديگه نظير EAX يا ECX به درستي جوابگو هست .

در واقع چون مقدار ثبات EIP حاوي مكاني هست كه كد ماشين برنامه ي ما داره از اونجا اجرا ميشه براي همين من اون رو نياز دارم . ميخوام داخل برنامم بدونم كه الان كدي كه توي برنامه داره اجرا ميشه در كدوم خونه از حافظه هست .


var
add:DWORD;
begin
asm
MOV add,EIP
end;


چرا از نام ثبات EIP مشكل ميگيره ؟ حالا اگه همين كد براي EAX استفاده ميشد هيچ مشكلي نميگرفت و درست كارش رو ميكرد :عصبانی++:

دوستان لطفا در اين مورد كمك كنيد :ناراحت:

Developer Programmer
چهارشنبه 29 آبان 1387, 23:01 عصر
بفرما سالاد ؟!!! انتظار داری به همین راحتی EIP رو بهت بده؟
بپر قسمت سورسهای لازم برای جلوگیری از کرک که توش من و جوکر و دنیای دلفی پست دادیم. اونجا یه پست گذاشتم که چطور میتونی EIP , SP و بقیه چیزها رو بخونی.

ali_mohamadi8928
چهارشنبه 29 آبان 1387, 23:40 عصر
ممنون دوست عزير . اون كد رو ديدم ولي متاسفانه اون كد براي خوندن اين مقادير از يك برنامه ي ديگه هست . يعني ما اون برنامه رو در حالت ديباگ باز ميكنيم و مقاديرش رو ميخونيم .

من ميخوام اين مقادير رو در برنامه ي خودم در هر مكاني خواستم بخونم .

اونجا يك تابع بود


CreateProcess(Programm,nil,nil,nil,false,CREATE_SU SPENDED,nil,nil,si,pi);

خب ما كه نميتونيم برنامه ي خودمون كه در حال اجرا هست دوباره يك نسخه ازش ايجاد كنيم . در واقع ميشه ولي به چه ددر ما ميخوره . در اين حالت مقادير ثباتهاي نسخه ي ايجاد شده رو بهمون ميده نه مقادير ثباتهاي پرژه ي خودمون .

ميشه يك راه پيشنهاد كنين كه بتونيم در هر جا خواستيم مقادير ثباتهاي از جمله EIP رو بخونيم . من فقط قصدم اينه كه تو برنامم بدونم كدي كه داره اجرا ميشه تغريبا تو كدوم رنج از ادرس حافظه هست . كه با داشتن مقدار EIP ميتونم اين كار رو بكنم .

لطفا راهنمايي كنيد !!!

joker
پنج شنبه 30 آبان 1387, 00:57 صبح
اگه این اتفاق بیفته شما توی سطح دسرسی لیمیت یک کاربر سطح پائین سیستمی میتونید ادامه فعالیت کدتون را از طریق تغییر EIP به یک پروسه سطح دسترسی بالای سیتسمی تزریق کنید یه جور اکسپلویت نویسی لوکال میشه....
جدا اگه کامپایلر دلفی گیر نمیداد چه هلوئی برو تو گلوئی میشد :)