نمایش نتایج 1 تا 8 از 8

نام تاپیک: Mask کردن یک API

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628

    Mask کردن یک API

    آیا امکان Mask کردن یک API در ویندوز وجود دارد که با فراخوانی یک API یک API دیگه صدا زده بشه ؟

  2. #2
    بله ؛ و راه حل تا حد زیادی به صورت مسئله بستگی داره ؛ میشه از طریق دستکاری IAT ، یا بازنویسی آفستهای حاوی آدرس توابع در فضای پروسه ، یا حتی Hook توابع و rewrite کردن آدرس بازگشت ، فراخوانی یک API رو به فراخوانی API دیگه ای مبدل کرد . باید توضیح بیشتری در مورد صورت مسئله بدی تا جواب مناسب مشخص بشه

  3. #3
    نقل قول نوشته شده توسط Inprise
    بله ؛ و راه حل تا حد زیادی به صورت مسئله بستگی داره ؛ میشه از طریق دستکاری IAT ، یا بازنویسی آفستهای حاوی آدرس توابع در فضای پروسه ، یا حتی Hook توابع و rewrite کردن آدرس بازگشت ، فراخوانی یک API رو به فراخوانی API دیگه ای مبدل کرد . باید توضیح بیشتری در مورد صورت مسئله بدی تا جواب مناسب مشخص بشه
    1: بازنویسی آفستهای حاوی آدرس توابع در فضای پروسه ?
    در حالی که در protect mode هستیم چگونه میشود (شدنی که هست ولی من بلد نیستم)

    برای اطلاعات کامل در این زمینه به آدرس زیر مراجعه کنید.
    http://www.codeproject.com/system/hooksys.asp

  4. #4
    - راه حل Kernel Mode : تغییر CR0 و بازنویسی هر نقطه ای از حافظه
    - راه حل User Mode : به تاپیک مربوط به Process Injection مراجعه کن . ساده ترین راه استفاده از یک Remote Thread است . DLL مورد نظرت رو به فضای آدرسی پروسه هدف تزریق میکنی و Hello world .

    موفق باشی

  5. #5
    راه حل Kernel Mode : تغییر CR0 و بازنویسی هر نقطه ای از حافظه.
    mov ebx, cr0; to receive current state Cr0push ebx; to save it(him)
    and ebx, ~0x10000; to reset WP bats
    mov cr0, ebx; to switch off write protection


    استاد میتونیم این کاروهم انجام بدیم؟
    Disable protection of a kernel image through the registry. For this purpose it is necessary to create in a HKLM\SYSTEM\CurrentControlSet\Control\S essionManager\Memory Management key REG_DWORD parameter with name EnforceWriteProtection and value 0.

  6. #6
    - کد اولت درسته ؛ به عنوان یک کرنل ماژول کامپایلش کن و بعد از تغییر CR0 هر جا میخواهی بنویس .
    - استاد یعنی چی ؟
    - اون کلید رجیستری تو رو از انتخاب یکی از راههائی که گفتم بی نیاز نمیکنه . بهر حال یا باید با یک کرنل ماژول حفاظت حافظه رو غیر فعال کنی ، یا روی سطح کاربر ، کدت رو به پروسه تزریق کنی ؛ بعد از SP2 اون کلید جلوی نوشتن رو میگیره که البته با تغییر اون این مشکل هم حل میشه.

    موفق باشی

  7. #7
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229

    jwndr

    میشه یه کم راجع به عملکرد کد اول توضیح بدین

  8. #8
    386 به بالا از سی و دوبیت رجیستر CR0 برای ذخیره فلگهای کنترل دسترسی به حافظه و همینطور Paging استفاده میکنه . روی Protected Mode دستکاری CR0 از ring3 ممکن نیست ؛ یه ماژول کرنل - ring0 - میتونه براحتی CR0 رو برای فعال یا غیر فعال کردن کنترل دسترسی به حافظه دستکاری کنه و بعد از اون امکان نوشتن بر یا خواندن از هر نقطهء حافظه بدون محدودیت امکان پذیره .

تاپیک های مشابه

  1. Mask کردن ستون های DataGrid
    نوشته شده توسط ehsan_ansaripoor در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 27 مرداد 1386, 22:01 عصر
  2. mask edit
    نوشته شده توسط z_barnamenevis در بخش VB.NET
    پاسخ: 8
    آخرین پست: شنبه 05 خرداد 1386, 23:42 عصر
  3. mask ای برای مبلغ
    نوشته شده توسط vahidehrafati در بخش برنامه نویسی در 6 VB
    پاسخ: 9
    آخرین پست: چهارشنبه 02 شهریور 1384, 10:26 صبح
  4. Mask color
    نوشته شده توسط Farhad.B.S در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 0
    آخرین پست: چهارشنبه 23 مهر 1382, 17:51 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •