سلام.سوالم این بود که چجوری میشه در cpp به یک آدرس از حافظه RAM مثلا 0374351c مقدار داد.ممنون.
سلام.سوالم این بود که چجوری میشه در cpp به یک آدرس از حافظه RAM مثلا 0374351c مقدار داد.ممنون.
باید از API استفاده کنی اول با VirtualProtect از اون آدرس دسترسی نوشتن بگیری (البته اگه آدرس معتبری باشه)
بعد با memcpy روش می نویسی ، توضیحات بیشتر در مورد این دو تابع رو بهتره از MSDN ببینید
این یک مثال به این صورت است که در آدرسی که گفتین به طول 5 بایت مقدار 0x90 رو مینویسه
اینجا من فرض کردم که میخوای آدرسی از پروسه خودت رو تغییر بدی، اگه روی حافظه پروسه های دیگه بخوای بنویسی
یکم فرق میکنه اگه ایجوری بگو برات توضیح میدم
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by hoax3r; 01-05-2010 at 21:50.
اگه ممکنه روش نوشتن بر روی حافظه پروسه های دیگر و هم بگید.ممنون.
با سلام.
اگر منظورتون از پروسه های دیگر همون برنامه های در حال اجرا غیر از برنامه ی خودتان می باشد ،
باید بهتون بگم که این امر در ویندوز شدنی نیست ، زیرا بعد از دستور دسترسی به خانه ای از حافظه
غیر از خانه های برنامه ی خودتان سیستم عامل شما را به عنوان یک برنامه ی نفوذ گر شناسایی خواهد کرد
و اجازه دسترسی برای نرم افزار شما صادر نخواهد کرد ، حتی ممکن است برنامه ی شما را ببندد.
برای نوشتن روی حافظه دیگر پروسه ها باید با استفاده از تابع OpenProcess یه هندل از اون پروسه بگیری اینجا از VirtualProtectEx و WriteProcessMemory استفاده میکنیم
این یه مثال برای اینکار، باید PID پروسه ی مورد نظر رو گرفت برای همین کدنویسیش یکم بیشتر شده
پروسه رو program.exe در نظر گرفتم.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by hoax3r; 01-05-2010 at 22:18.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)