واضح آرشیو وب فارسی:سایت ریسک: View Full Version : خواندن رجيسترهاي Eax , Ecx , ... mohammad_n6316-10-2007, 01:35 PMبا سلام ميخواستم ببينم چطوري ميتونم رجيسترهاي مربوط (ecx , Eax) به يك فايل اجرايي را توسط وي بي بخونيم ؟ _H2_16-10-2007, 02:44 PMسلام امکان نداره! فقط با خود اسمبلی و ++VC میتوانید مستقیماً رجیستر ها را دستکاری کنید. البته میشود در ++VC یک DLL با چند API درست کرد که عمل فوق را انجام دهد و در VB از آن استفاده کرد ولی باز هم فوقش میتوانید رجیسترهای مربوط به ریسمانی که برنامه خودتان در آن اجرا میشود را بخوانید و بلاشک ویندوز اجازه دسترسی به رجیسترهای ریسمانها و برنامه های دیگر را نخواهد داد. مطالبی از ان دست برای VB را میتوانید در کتاب "Visual Basic پیشرفته" چاپ کانون نشر علوم و دیگر انتشارات طرف قرار داد پیدا کنید. ولی بهتر است الگوریتمتان را اصلاح کنید تا نیازی به این کار نباشد. mohammad_n6316-10-2007, 07:07 PMسلام امکان نداره! فقط با خود اسمبلی و ++VC میتوانید مستقیماً رجیستر ها را دستکاری کنید. البته میشود در ++VC یک DLL با چند API درست کرد که عمل فوق را انجام دهد و در VB از آن استفاده کرد ولی باز هم فوقش میتوانید رجیسترهای مربوط به ریسمانی که برنامه خودتان در آن اجرا میشود را بخوانید و بلاشک ویندوز اجازه دسترسی به رجیسترهای ریسمانها و برنامه های دیگر را نخواهد داد. مطالبی از ان دست برای VB را میتوانید در کتاب "Visual Basic پیشرفته" چاپ کانون نشر علوم و دیگر انتشارات طرف قرار داد پیدا کنید. ولی بهتر است الگوریتمتان را اصلاح کنید تا نیازی به این کار نباشد. سلام دوست عزيز با تشكر از راهنماييتون ولي من ميخواهم رجيسترهاي مربوط به برنامه هاي در حال اجراي ديگه رو بخونم :19: ، يعني ديگر امكانش توي وي بي نيست ؟:19::19::19: _H2_17-10-2007, 03:44 PMسلام ولي من ميخواهم رجيسترهاي مربوط به برنامه هاي در حال اجراي ديگه رو بخونم :19: ، يعني ديگر امكانش توي وي بي نيست ؟:19::19::19: مگه قبلاً امکانش بوده؟؟؟؟؟؟ در ویندوز این کار تقریباً غیر ممکن است! ویندوز از حافظه محافظت میکند و شما دسترسی کامل به حافظه ندارید. دسترسی به حافظه برای آن مهم است که وقتی کد برنامه شما اجرا میشود رجیسترهای مذکور حاوی اطلاعات برنامه شما هستند و رجیسترهای ریسمانهای دیگر توسط ویندوز در حافظه بلوکه و ذخیره میشوند تا نوبت اجرا مجدداً به انها برسد. راه منطقی آن است که برنامه مورد نظر را خودتان با کد دستی و نه توسط ویندوز run کنید که محصول نهایی چیزی شبیه برنامه قدیمی و کوچک Debug.exe میشود که قبلاً تحت داس کار میکرد، درست کردن همچین چیزی هم به گمانم با VB نشود با ++VC هم خیلی سخت خواهد بود. برنامه اماده تحت ویندوز موجود است که یک exe را اجرا میکند تک تک دستورات اسمبلی را نشان میدهد و هر کجا خواستید ریسمان را متوقف میکنید و رجیستر ها را میبینید، پیشنهاد میکنم به جای صرف وقت بسیار از اینها استفاده کنید. خود VS2005 هم امکانی مشابه این که شما میخواهید را دارد! و میتواند به یک برنامه در حال اجرا وصل شود ... ولی برای انجام این عمل به طور شخصی در برنامه خودتان خیلی مشکل خواهید داشت. اصل هدف و کارتان چیست؟ سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 291]