PDA

View Full Version : حرفه ای: +گفتگو :: دسترسی به محتویات ثبات ها در Visual C++



JaVa
جمعه 13 مرداد 1391, 00:07 صبح
با عرض سلام و خسته نباشید ..

می خواستم منو راهنمایی بکنید در زمینه دسترسی به محتویات ثبات ها در زبان سی پلاس پلاس که اصلا این کار شدنی هست یا خیر ؟

در ضمن اگه این کارشدنی یه منبع آموزشی معرفی کنید و آیا این امکان وجو داره که بتوان یک فایل DLL ایجاد کرد سپس در یک زبان تحت دات نت مثل وی بی دات نت باهاش کار کرد یا خیر ؟؟

با تشکر پیشاپیش از شما.*

#target
جمعه 13 مرداد 1391, 00:40 صبح
بله میشه با تابع GetThreadContext
اون یکی هم بله میشه

JaVa
جمعه 13 مرداد 1391, 00:44 صبح
نقل قول: +گفتگو :: دسترسی به محتویات ثبات ها در Visual C++‎
بله میشه با تابع GetThreadContext
اون یکی هم بله میشه

با سلام و...

میشه یه مقدار بیشتر توضیح بدید ؟

با تشکر

JaVa
جمعه 13 مرداد 1391, 00:51 صبح
در ادامه همین بحث یه سئوال دیگه هم داشتم:؟

میشه مقدار پرچم ها رو هم تغییر داد ؟؟

با تشکر

#target
جمعه 13 مرداد 1391, 01:05 صبح
بله میشه با SetThreadContext فقط شما باید از ی ترد دیگه اینکارو کنید اول تردو بسازین بعد از تردی که ساختین ترد مورد نظر رو Suspend کنید و با اون توابع کار مورد نظر رو انجام بدین
کد ی کم وقت میخواد اگه میخواین بنویسم

JaVa
جمعه 13 مرداد 1391, 01:31 صبح
نقل قول: +گفتگو :: دسترسی به محتویات ثبات ها در Visual C++‎‎
بله میشه با SetThreadContext فقط شما باید از ی ترد دیگه اینکارو کنید اول تردو بسازین بعد از تردی که ساختین ترد مورد نظر رو Suspend کنید و با اون توابع کار مورد نظر رو انجام بدین
کد ی کم وقت میخواد اگه میخواین بنویسم

دوست گرامی .:. نگاه کنید من یه DLL می خوام که وضعیت تمامی ثبات ها پردازنده رو برام نشون بده یه چیزی توی مایه ها پنجره Watch زبان ها برنامه نویسی سطح بالا.
اگه آشنایی در مورد زبان اسمبلی دارید مثلا یه پرچم از پرچم های پردازنده هست که دستورات اسمبلی رو گام به گام اجرا می کنه بنام TF که اگر برابر 1 باشه اجرای برنامه اسمبلی بصورت گام به گام صورت میگیره.
حالا یه قسمت سئوال من این بود که ایا میشه این پرچم ها رو تغییر داد یا خیر :؟

در ضمن شما یه بار گفتید با تابع GetThreadContext میشه این کارو کرد یه بار دیگه گفتید که با تابع SetThreadContext میشه این کارو کرد ما که موندیم توش :گیج:


کم وقت میخواد اگه میخواین بنویسم

حقیقتش رو بخوای خودم می خوام اینکاره انجام بدم که یه تجربه برام بشه فقط اگه میشه شما یه منبع چه بصورت PDF چه بصورت کتابی معرفی کنید.

با تشکر از لطفتون

#target
جمعه 13 مرداد 1391, 04:20 صبح
Get و Set از اسمشون معلومه یکی برا گرفتن اطلاعات یکی هم برای ثبت اطلاعات (مثلا بعد از تغییر)
بله میشه پرچم ها رو تغییر داد . (EFlags که داخل CONTEXT (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679284(v=vs.85).aspx)قرار داره )
شما اگه میخوای چیزی مثل Debugger بنویسی
اینجا ی نمونه هست قسمت اول (http://www.codeproject.com/Articles/43682/Writing-a-basic-Windows-debugger) - قسمت دوم (http://www.codeproject.com/Articles/132742/Writing-Windows-Debugger-Part-2) (در قسمت دوم نحوه تغییر Trap Flag وجود داره)
اینجا بخش MDSN هست برای دیباگ (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679276(v=vs.85).aspx)
کتاب Advanced Windows Debugging (http://www.amazon.com/Advanced-Windows-Debugging-Mario-Hewardt/dp/0321374460) هم در این زمینه خیلی خوب توضیح داده

JaVa
جمعه 13 مرداد 1391, 11:42 صبح
نقل قول: +گفتگو :: دسترسی به محتویات ثبات ها در Visual C++‎
Get و Set از اسمشون معلومه یکی برا گرفتن اطلاعات یکی هم برای ثبت اطلاعات (مثلا بعد از تغییر)
بله میشه پرچم ها رو تغییر داد . (EFlags که داخل CONTEXT قرار داره )
شما اگه میخوای چیزی مثل Debugger بنویسی
اینجا ی نمونه هست قسمت اول - قسمت دوم (در قسمت دوم نحوه تغییر Trap Flag وجود داره)
اینجا بخش MDSN هست برای دیباگ
کتاب Advanced Windows Debugging هم در این زمینه خیلی خوب توضیح داده

تشکر از پاسخ خوبتون.

کتابی به زبان فارسی سراغ ندارید که بشه توش این مهم رو پیدا کرد.