نقل قول نوشته شده توسط B-Vedadian مشاهده تاپیک
تکنيک بکار رفته طبق اون چيزي که تو MUP آخري بود، nanomite نيست.

نانومايت روشيه که در اون، کد اصلي که اجرا ميشه شامل خيلي از jmpهاي لازم نيست. بجاي اون‏ها وقفه ديباگ قرار گرفته. اين يعني اگه هم بتوني برنامه رو دامپ کني، عملا به هيچ دردي نمي خوره، مگر اينکه مکان‏هاي پرش به درستي پيدا بشه و با پرش‏هاي مناسب جايگزين بشه. البته اين تکنيک هم قابل شکستنه ولي خوب، کار سخت تره.

روش کار نانوميت به اين صورته که در ابتدا يک برنامه تهيه ميشه و در محل‏هايي که توسط يک کارشناس مناسب تشخيص داده شدن، يک علامت کنار پرش‏ها(يا پرش‏هاي شرطي) گذاشته ميشه. در مرحله بعد يک برنامه ديگه اين مکان‏ها رو تو فايل اصلي پيدا کرده و بعدش مقادير پرش‏ها رو با int3 عوض ميکنه. به ازاي هر کدوم از اين پرش‏ها تو يه جدول که به همين منظور طراحي شده، مشخصاتش رو يادداشت ميکنه. حالا يک stub به برنامه اضافه ميشه که در ابتدا مجوز ديباگ رو براي پروسه خودش فعال ميکنه و بعدش به عنوان يک ديباگر برنامه اصلي رو اجرا ميکنه.
هر وقت به يکي از اون پرش‏هاي کذايي برسيم، حالا جاش int3 هستش و بنا بر اين، پروسه پدر فراخواني ميشه. پروسه پدر با توجه به context پروسه فرزند (خصوصا مقدار EIP) از جدول محل مناسب پرش رو پيدا کرده و پروسه فرزند رو به اون هدايت ميکنه.

براي اينکه محافظت قوي باشه، تمام احتياط‏هاي لازم تو پروسه پدر بايد بکار گرفته بشه. جدول مربوط به پرش‏ها هم بايد طي يک رويه کاملا مبهم شده (obfuscated) جستجو بشه. علاوه بر اون جدول رو با کلي اطلاعات الکي و چرت و پرت مخلوط ميکنن.

براي باز سازي اينجور تصاوير اجرايي، بايد يج جوري از شر روتين‏هاي شناسايي ديباگر و ... خلاص شد و بعدش سر بزن‏گاه موقع فراخواني GetThreadContext و SetThreadContext يقه پروسه پدر رو گرفت و از اونجا جدول پرش رو بازسازي کرد.
درسته به روشی که شما توضیح دادی نانومیتس میگن ولی اونی که من تو برنامه استفاده کرده بودم Nanomites++ یعنی روش نانومیتس رو یخورده تغییر داده بودم
به هر حال تشکر میکنم
و یه سوال هم دارم کسی در مورد روش CopyMem-II چیزی میدونه من که هر چقدر گشتم نتونستم اطلاعاتی رو در موردش پیدا کنم ؟
یه سوال دیگه هم از آقا بردیا داشتم اون هم اینکه اگه من اندازه بافری رو که کد های تابع مربوطه رو میخونه و تو پروسه هدف مینویسه به 1 بایت بروسونم و تو یه تابع که اندازش مثلا 1000 بایت هست از این روش استفاده کنم راهی برای کپی یکجای اطلاعات مثل چیزی که تو فیلم بود هست یا نه , باید 1000 بار عمل کپی و past رو انجام داد ؟