صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 55

نام تاپیک: Plase Dump Me Ver 3

  1. #1
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    Cool Plase Dump Me Ver 3

    سلام دوباره یه Dump Me قویتر .
    از آقایون درخواست دامپ برنامه دوم رو دارم یعنی یه EXE میخوام که با اجرای اون یه فرم ظاهر بشه و یه دکمه داشته باشه و با زدن اون یه پیغام نشون بده و محل Explorer.exe رو نشون بده .
    با تشکر
    البته بعد از دامپ روش کار رو توضیح میدم .
    فقط یه عدد مابین 0 تا 100 به امنیتش بدین .
    دستتون درد نکنه .
    آخرین ویرایش به وسیله HadiDelphi : شنبه 22 تیر 1387 در 13:01 عصر

  2. #2
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    منتظر MUP باشید
    درجه امنیت پروتکتور 10/3
    زمان برای کشف الگوریتم 20 دقیقه
    زمان برای آنپک 5 دقیقه
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    آقای بردیا دستتون درد نکنه
    MUP چیه؟
    من که برنامه رو پک نکردم.
    اگه میشه یه توضیح کوچولو هم در مورد نحوه Dump بدین .
    تشکر

  4. #4

    نقل قول: Plase Dump Me Ver 3

    سلام،

    لطفا یکی صورت مساله رو یکم واضح تر برای من توضیح بده. آیا مقصود دامپ رویه ایه که به explorer.exe تزریق میشه؟ (فایل اجرایی موجود بدون هیچ تغییر کاری که خواستید، نمایش فرم و ... را انجام میده)

  5. #5
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    نقل قول نوشته شده توسط B-Vedadian مشاهده تاپیک
    سلام،

    لطفا یکی صورت مساله رو یکم واضح تر برای من توضیح بده. آیا مقصود دامپ رویه ایه که به explorer.exe تزریق میشه؟ (فایل اجرایی موجود بدون هیچ تغییر کاری که خواستید، نمایش فرم و ... را انجام میده)
    منظور من این بود که برنامه دوم رو دامپ کنید . (همون که دارای دکمه Show Message هست که با زدن اون برنامه محل اجرا شدنش رو نشون میده )

  6. #6
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    MUP یک نوع آموزش
    برنامه شما در هر صورت یک پروتکتور هست و عکس آن میشود آنپروتکت یا آنپک

  7. #7

    نقل قول: Plase Dump Me Ver 3

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

    1-اجراي يک دامپر (با قابليت unprotect کردن حافظه پروسه مقصد)
    2-بعد اجراي برنامه project1.exe و بعدش زدن کليد Load (تو اين حالت، پروسه تزريق شده به Explorer نميتونه جلوي دامپ شدن رو بگيره)
    3-دامپ حافظه مربوط به نسخه Explorer که اول اجرا و بعدش تحريف شده.
    4-بازسازي هدر کاملا از بين رفته برنامه دلفي (دقت کنيد که چون برنامه دلفيه، پيدا کردن محل CODٍE، BSS و بقيه Sectionها کار ساده ايه.
    5-بازسازي جدول Import. اين جدول به سهولت قابل بازسازيه. کافيه بعد نام dll مربوطه به ترتيب اسامي توابع import شده رو بخونيم و محل درست IMPORT_BY_NAME ها رو جاگذاري کنيم)

    با اين همه، هرچند برنامه بازسازي شده نميدونم کجاي کار رو اشتباه کردم که متغيرهاي Application و Form1 رو پيدا نميکنم و براي همين برنامه درست کار نميکنه.

    فکر کنم که از کد AfxRootKit استفاده کردين و براي Hook کردن علاوه بر اين از madCodeHook هم بهره گرفتيد. چند تابع خيلي جالب به چشمم خورد که اگه به درستي ازشون استفاده بشه واقعا کار نفوذگر رو سخت مي کنند.

    يکيشون تو آدرس 450224 بود و کار GetProcAddress رو ميکرد. يک رشته کد شده از نام تابع import مي گرفت بعدش محلشو تو جدول export ماژول مربوطه پيدا ميکرد.

    آقاي برديا، اگه لطف کنيد بگيد چطور دامپش کرديد خيلي ممنون ميشم

  8. #8
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    دستتون درد نکنه آقای B-Vedadian
    یه سوال : شما بعد از دامپ کرد پروسه Explorer.exe و با استفاده از اون هدر رو باز سازی کردین ؟
    یه سوال دیگه : آیا باز سازی هدر رو میشه از راه دیگه ای هم ( به طور دستی و با در دست نداشتن چیزی ) انجام داد ؟

    از AfxRootKit استفاده نکردم ولی از MadCollection استفاده کردم .

  9. #9

    نقل قول: Plase Dump Me Ver 3

    شما برنامه دلفي بجز هدر رو بطور کامل به پروسه اي که از طريق اجراي Explorer ايجاد مي کرديد، تزريق مي کرديد. وقتي اونو دامپش کنيم، بازسازي هدر کار سختي نيست، فايلهاي دلفي ساختار مشخصي دارن. در ضمن بازسازي رو هم بجز براي جدول import بصورت دستي انجام دادم.

    بدون داشتن چيزي يعني چه؟ اگه چيزي نباشه، هدر چي رو درست کنيم؟

    فايلي که من بدست آوردم هنوز خطا داره، هرچند يک Application معتبر ويندوزه و DeDe هم بدون مشکل باهش کار ميکنه.

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

  10. #10
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    دستتون درد نکنه ولی فکر میکنم اگه برنامه اصلی یه بار با یه پکر , پک بشه که ساختار سکشنهاش یه خورده تغییر کنند , و بعد با این برنامه پروتکت بشه باز سازی هدر خیلی سخت میشه چون از حالت استاندارد خارج میشه , درسته ؟

  11. #11

    نقل قول: Plase Dump Me Ver 3

    نه لزوما. اگه پکرش آشنا باشه، دوباره به همون مشکل پيش ميآد.

  12. #12
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: Plase Dump Me Ver 3

    قرار نیست پکر آشنا باشه ‌، قراره یه کاری کنیم که کراکر نوع پکر رو تشخیص نده و این کار هم تقریبا" کار آسونی نیست.

  13. #13
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    درجه امنیت 10/3
    زمان برای آنپک 10 دقیقه
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    اینم آموزش آنپک کردن PDM 4 برای بچه های خوب برنامه نویس امید وارم لذت ببرید
    فایل های ضمیمه فایل های ضمیمه

  15. #15
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    آقا بردیا واقعا تشکر میکنم
    خوب من هم روش کارم رو توضیح میدم:
    من اول برنامه اول رو درست کردم که از Data.Dat یه DLL رو به حالت Stream میخوند و به خودش تزریق میکنه این DLL بعد از اجرا یه Process تو رم درست میکنه , پروسه دوم هم مثل پروسه اول یه DLL دیگه رو از تو Data.Dat میخونه و تو خودش تزریق میکنه که این Dll هم برنامه اصلی رو از تو Data.Dat میخونه و تو رم Load میکنه .

    من دارم رو روش NanoMites کار میکنم که انشا الله تو Dump Me 5 می خواهم به کار ببرم واسه همین شاید مدت زمان ساخت Dump Me 5 یه خورده طولانی بشه .
    دوباره از آقای بردیا تشکر میکنم

  16. #16

    نقل قول: Plase Dump Me Ver 3

    هادی جان، واست مقدوره سورسش رو بذاری؟ چند وقته دنبال تزریق کد میگردم.

  17. #17
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    متاسفم چون سورس مال شرکت هست نمیتونم .
    ولی اگه دنبال تزریق Dll از Stream به پروسه هست یه تابع تو UallCollection هست که تابع LoadLibrary ویندوز رو باز نویسی کرده با یکمی تغییر اون میتونی این کار رو انجام بدی
    ولی اگه میخوای یه تابع رو به یه پروسه اینجکت همین جا تو یکی از تاپیک ها , آقای Inspire توضیح داده و یه مثال هم زده

  18. #18
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    Cool نقل قول: Plase Dump Me Ver 3

    خوب بازه هم Please Dump Me آپدیت شد
    اینبار یه روش جدید برای Anti Dump توش به کار بردم
    از کرکرین درخواست میکنم یه نگاهی به این ورژن هم بندازن ممنون میشم .
    فقط یه باگ داره که بعضی مواقع برنامه رو درست ران نمیکنه ( نمیدونم از کجاست ) اگه برنامه ران نشد یه بار برنامه رو ببندید و دوباره ران کنید .

  19. #19
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    رو سیستم من اصلا اجرا نمیشه طبق آنالیزی که کردم احتمالا باگ مال پروتکتی باشه که با MoleBox کردید
    و هوک هایی که زیادی گذاشتید.

  20. #20
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    نه من اصلا از هوک استفاده نکردم ولی از MolBox استفاده کردم
    به هر حال باشه سعی میکنم اصلاحش کنم

  21. #21
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    روی SP3 نتونستم اجراش کنم ولی روی SP2 به هر زحمتی بود اجرا شد.
    تو این نسخه از Stolen OEP استفاده شده بود که ترمیم شد.
    فایل های ضمیمه فایل های ضمیمه

  22. #22
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    Talking نقل قول: Plase Dump Me Ver 3

    من کنه شدم , شدید
    دوبار آپدیت شد اینبار از تکنولوژی Nanomites استفاده کردم هیچ گونه باگی هم نداره
    فقط آقا بردیا و دوستانی که زحمت کرکش رو میکشن امتیاز یادتون نره.
    با تشکر

  23. #23
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    درجه امنیت 5.5/10
    فایل های ضمیمه فایل های ضمیمه

  24. #24
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    آقا هادی لطفا بعد از آنپک شدن فایلتون توضیح کامل در مورد تکنیکی که استفاده کردید یادتون نره تا من هم مجبور نباشم هم آنپک کنم هم MUP بزارم.
    فایل های ضمیمه فایل های ضمیمه

  25. #25
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    اینم پارتهای بعدیش
    فایل های ضمیمه فایل های ضمیمه

  26. #26
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    Smile نقل قول: Plase Dump Me Ver 3

    آقا بردیا ازتون بازم ممنونم ، تا این موقع صبح بیدار موندم تا کارهایی که شما انجام دادین رو تحلیل کنم ( بماند که چیزی حالیم نشد ) ، یه وقت دچار سوء تفاهم نشید ها منظورم عقل کل بودن خودمه ، فیلم هیچ ایرادی نداشت.
    ولی یه سوال این که شما میگید Stolen OEP آیا همان تکنیکی نیست که پکر آرمادیلو ازش استفاده میکنه ؟

  27. #27
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

    اول از آقای بردیا تشکر میکنم که به ما کمک میکنن .
    چشم من حتما در مورد روش کار برنامه توضیح میدم.
    خوب برنامه از 3 برنامه مجزا تشکیل شده : اولین برنامه , پروسه پدر بزرگ هست که وظیفه اجرای برنامه دوم یا پرسه فرزند را دارد . پروسه پدر بزرگ بعد از ران کردن پروسه دوم اونو تحت دیباگ خودش در میاره . تو پروسه دوم یه تابع وجود داره (به نام LoadLib) که پروسه فرزند با استفاده از اون یه Dll به نام Loader.Dll رو ( که توی Data.dat هست ) به خودش Inject میکنه که این Dll هم پروسه نوه یا پروسه اصلی رو ران میکنه . نکته اصلی این هست که من با استفاده از Olly جای تابع LoadLib رو پیدا کردم و به جای اون که تولش هم 224 بایت هست Add Byte مینویسم ( با صفر پر میکنم ) بعد از این کار چون پروسه فزرند یا پروسه میانی تحت دیباگ و کنترل پروسه پدر بزرگ هست , وقتی کاربر دکمه Run رو میزنه تو پرسه میانی میزنه و پروسه میانی وقتی خواست تابع LoadLib رو اجرا کنه , پرسه پدر بزرگ کار رو متوقف میکنه و تابع LoadLib رو درست میکنه و اجازه ادامه فعالیت رو به پروسه میانی میده و پرسه میانی هم Dll رو Load میکنه و Dll هم برنامه اصلی رو ران میکنه .

    از آقای بردیا هم دوباره تشکر میکنم و یه سوال دارم :
    اگه من همه کار ها رو به صورت اتوماتیک انجام بدم یعنی دکمه ران رو بردارم و سیستم هوک رو هم فعال کنم تو امنیت برنامه چه قدر تاثیر میزاره ؟

  28. #28
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    ولی یه سوال این که شما میگید Stolen OEP آیا همان تکنیکی نیست که پکر آرمادیلو ازش استفاده میکنه ؟
    در نسخه 6 از Stolen Code استفاده شده بود نه Stolen OEP
    Stolen OEP منحصر به Armadilo نیست خیلی از پروتکتور های قدرتمند از این شیوه استفاده میکنند ولی در مورد پروتکتور آقا هادی میشه گفت از تکنیک Armadilo استفاده شده.

  29. #29
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    نقل قول نوشته شده توسط HadiDelphi مشاهده تاپیک
    اگه من همه کار ها رو به صورت اتوماتیک انجام بدم یعنی دکمه ران رو بردارم و سیستم هوک رو هم فعال کنم تو امنیت برنامه چه قدر تاثیر میزاره ؟
    در اصل من با شیوه ای که شما برای پروتکت کردن فایل استفاده میکنید زیاد موافق نیستم برای هر چه قدرتمندتر شدن پروتکتور شما باید تمام تکنیکهای پروتکت رو روی فایل اصلی انجام بدید این یکم سخت هست ولی ارزش کار خیلی بالاست.

  30. #30

    نقل قول: Plase Dump Me Ver 3

    تکنيک بکار رفته طبق اون چيزي که تو MUP آخري بود، nanomite نيست.

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

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

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

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

  31. #31
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    Smile نقل قول: Plase Dump Me Ver 3

    میشه این روش رو به جای استفاده تو یه پروسه پدر فرزندی تو یه سیستم فامیلی استفاده کرد ، و نهایتا" جد بزرگوار رو توسط تکنولوژری Run time Anti Debug محافظت کرد ، این طوری کار کراکر سخت تر میشه ، نقطه ضعف آرمادیلو هم به نظر من به همین خاطره که به جای استفاده از تعدد پروسه ها اومده به پکر خودش اعتماد کرده و عملیات رو تو پروسه پدر فرزندی خلاصه کرده.
    تکنیک Runtime Antidebug و همین تعدد پروسه ها یا به اصطلاح Familar Protection فکر خودم نیست ، این تکنولوژی ها اولیشون تو سال 2002 توسط کراکری به نام lightFXXK ( شرمنده ام ، اسمشو من انتخاب نکردم ) از گروه امنیتی موسوم به BingoWAY تو یه crackme استفاده کرد ، که توسط گروه به نام God of Unpacking شکسته شد ، تکنیک تعدد فامیلی رو هم تو یکی از مقالات کراکر ایتالیایی به نام Joker_Italy خوندم.
    البته تمامی این شیوه ها شکسته شدن ولی خوبیشون اینه که شکستن این شیوه ها کار کراکر های معمولی نیست و میتونه هدف خوبی برای گروه های امنیتی کلاه سیاه باشه .
    یه تکنیک هم وجود داره که بهش میگن SecureLM ، برای ایستگاه کاری دات نت توسط مایکروسافت طراحی شده ، ولی امروزه برای برنامه های Native هم کاربرد پیدا کرده ، این تکنیک ماورای همه این حرفاست ، بحثش خیلی طولانیه ، یکی دوتا مقاله در مورد اون دارم ، پیدا کردم ضمیمه میکنم تا برادران هم استفاده کنن.

    براي باز سازي اينجور تصاوير اجرايي، بايد يج جوري از شر روتين‏هاي شناسايي ديباگر و ... خلاص شد و بعدش سر بزن‏گاه موقع فراخواني GetThreadContext و SetThreadContext يقه پروسه پدر رو گرفت و از اونجا جدول پرش رو بازسازي کرد.
    در این مورد هم با تعدد پروسه ها و فعال بودن Runtime AntiDebug ، رد شدن از روتین های آنتی دیباگ تقریبا" کار حضرت فیل میباشد
    شاید بگید که خوب مثل آقا بردیا فایل ها رو یکی یکی از رم میکشیم بیرون و ادامه ماجرا ، بدی Runtime AntiDebug اینه که حتی به موقع میتونه تشخیص دستکاری فایل رو بده ( حتی دامپ کردن) ، من از این شیوه نه به عنوان برنامه نویسی بلکه با استفاده از یه حقه کوچیک تو Unpackme خودم استفاده کرده بودم ، این شیوه توسط تمامی زبانهای برنامه نویسی قابل پیاده سازیه و کار ساده ای هم نیست . این تکنیک امروزه در قالب یه Plugin ، یا یه فایل DLL همگانی برای اکثر پکرها قابل استفاده هستش ولی عیب بزرگی داره و اون هم عدم سازگاری با برخی نرم افزارهای امنیتی ضد ویروس هستش که تا به امروز این معضل حل نشده ، حتی فایل Unpackme بنده توسط ضد ویروس Panda به عنوان فایل خطرناک شناخته میشه ( میتونید امتحان کنید ).
    ضریب امنیت این شیوه در سال 2003 توسط انجمن بین المللی مبارزه با سرقت نرم افزاری 99.9 ٪‌اعلام شد ، که 3 سال بعد توسط یکی دوتا کراکر هلندی شکسته شد.
    البته با شکسته شدن این شیوه از ارزش اون کاسته نشد ، و هنوز مثل CRC Check ازش استفاده میشه.
    آخرین ویرایش به وسیله Nima NT : جمعه 04 مرداد 1387 در 00:04 صبح دلیل: بازم غلط املائی ، بس که تند تند تایپ میکنم ، خیر سرم.

  32. #32
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    نقل قول: Plase Dump Me Ver 3

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

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

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

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

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

  33. #33
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: Plase Dump Me Ver 3

    درمورد سوال آقا هادی در مورد CopyMem II ، مطالبی داشتم که عرضه میکنم ، فقط شرمنده وقت ترجمه نداشتن ، زحمتش رو خودتون بکشید.

        1. garbage instructions:
    insert many many garbage instructions to hide special instructions, disturb analysis and make people fret;

    2. garbage loops:
    same as the first item;

    3. time comparing:
    classic method, as step in/over need much longer than normal execution;

    4. check parent process:
    if target process is debugged, its parent process usually are not explorer.exe :)

    5. check debugger:
    windows provides some APIs to check if process is being debugged, such as: IsDebuggerPresent/NtQueryInformationProcess.
    of course, you could also test CreateFile/PEB(just like IsDebuggerPresent to do).

    6. dynamic encrypt/decrypt:
    make analysis much more complex; re-encrypt the instructions which are passed could prevent cracker to check the old instructions effectivelly;

    7. IAT encrypt:
    stop the tools, e.g: ImpREC to recover IAT;

    8. Fuzzy the instructions:
    there are many ways to fuzzy the instructions, e.g: fuzzy the OEP instructions or fuzzy a random codes in process;

    9. call:
    use call instruction to confuse the cracker;

    10. self-debug:
    windows allows only one debugger to debug the target process, so we could use two or more processes. one process used to debug the special process to prevent cracker to debug the special process.
    if we let one process to hook one interrupt, we could use this interrupt to decode or fuzzy some part codes;

    11. SEH:
    raise an exception manually to change process flow, such as: memory access exception, interrupt (int3,int1 or others), invalid instruction, invalid eip and so on;

    12. multi-thread:
    when a process is debugged and enter a breakpoint, all threads may be suspended. We could use this method to stop cracker:
    a. change flow with multi-thread: modify main thread codes in sub thread, if sub thread is suspended, then main thread will fail;
    b. use multi-thread decrypt main/sub thread codes;

    13. anti-SMC:
    use Timer or sub thread to set core memory space to READONLY access in a short time;

    14. CRC checksum:
    check codes CRC checksum to do a self test;

    15. destroy debug environment:
    modify DR register, interrtup process (int 1, int 3) or handle special interrupt by ourselves;

    16. anti-DUMP:
    set some useless memory space to NO_ACCESS, then some dump tools (e.g: LordPE) would not dump this process;

    17. monitor keyboard:
    monitor keyboard input, e.g: F7, F8, F9, F10;

    18. Lock display:
    lock display to prevent cracker to see the screen content;

    19. destroy SEH environment:
    invoke SetUnhandledExceptionFilter to stop debugger to catch exception;

    20. debug parent process:
    anti-debug;

    21. CC protection or CopyMem-II protection:
    such as modify all jump to CC (int 3), then we could use INT 3 handler to process the jump to correct address;
    CopyMem-II means copy ourselves to another memory space to prevent to dump;

    22. anti Attach:
    destroy passed instruction to anti-attach; or create a process which doesn't support attach mode (require NT or later system);

    23. instruction pre-fetch:
    use CPU pre-fetch feature to disturb step trace, e.g:
    mov word ptr [@@], 20cdh
    @@:
    nop
    nop

    24. create polymorphism packer codes:

    25. save sensitive data to random space:

    26. P-code:
    use virtual CPU to run P-code to anti-debug;

        When using CopyMem-II or the Debugger-Blocker, this variable will contain the program 
    ID of the SoftwarePassport/Armadillo control process for your program (the number that
    is normally returned by the GetCurrentProcessId() API call), in decimal format. This is
    sometimes needed to handle DDE messages.


    یادم رفت بگم ، تمامی این روشهایی که عنوان شدن همشون تاریخ مصرفشون گذشته ( کرک شدن )
    آخرین ویرایش به وسیله Nima NT : جمعه 04 مرداد 1387 در 13:27 عصر

  34. #34
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    نقل قول نوشته شده توسط HadiDelphi مشاهده تاپیک
    یه سوال دیگه هم از آقا بردیا داشتم اون هم اینکه اگه من اندازه بافری رو که کد های تابع مربوطه رو میخونه و تو پروسه هدف مینویسه به 1 بایت بروسونم و تو یه تابع که اندازش مثلا 1000 بایت هست از این روش استفاده کنم راهی برای کپی یکجای اطلاعات مثل چیزی که تو فیلم بود هست یا نه , باید 1000 بار عمل کپی و past رو انجام داد ؟
    بله با این عمل کار کرکر بسیار سخت تر میشود و در بعضی مواقع برای آنپک کردن احتیاج به برنامه نویسی هست.
    آخرین ویرایش به وسیله Securebit : جمعه 04 مرداد 1387 در 15:20 عصر

  35. #35

    نقل قول: Plase Dump Me Ver 3

    کسی میدونه چطور بدون استفاده از WriteProcessMemory میشه خطوط برنامه رو تغییر داد؟
    این کد مشکل داره

    asm
    mov Word ptr [@@], $cc;
    @@:
    nop;
    nop;
    end;

  36. #36
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    اینم سورس Stolen Code کاری که آقا هادی تو پروتکتورشون انجام داده بودند.
    فایل های ضمیمه فایل های ضمیمه

  37. #37
    کاربر دائمی آواتار ali ahwaz top
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    124

    نقل قول: Plase Dump Me Ver 3

    نقل قول نوشته شده توسط Afshin_Zavar مشاهده تاپیک
    کسی میدونه چطور بدون استفاده از WriteProcessMemory میشه خطوط برنامه رو تغییر داد؟
    این کد مشکل داره

    asm
    mov Word ptr [@@], $cc;
    @@:
    nop;
    nop;
    end;

    دلیلش اینکه اگه بخواهیم کدی رو در محدوده سکشن Code در رم تغییر بدیم خطا
    رخ میده ولی میشه با LordPE و یا امثال اون سکشن Code رو Readو Write کرد با
    تغییر دادن Flag اون.
    یک راه دیگه هم وجود داره و اونم اینه که توی رم با کد نویسی این کار رو انجام بدیم.

  38. #38
    کاربر دائمی آواتار HadiDelphi
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تبریز
    سن
    34
    پست
    238

    Arrow نقل قول: Plase Dump Me Ver 3

    و اینک Please Dump Me 7
    در این ورژن از هیچ نوع پکری استفاده نشده , از تکنولوژی نانومیتس استفاده نشده
    فقط از RunTime AntiDebug استفاده شده
    فقط طبق معمول سطح یادتون نره
    تشششششششششششششششکر

  39. #39
    مدیر بخش آواتار Securebit
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران
    پست
    761

    نقل قول: Plase Dump Me Ver 3

    از نظر امنیت ورژن 7 با ورژن 1 هیچ تفاوتی نداشت ولی من از این تعجب میکنم که موقعی که دانلود کردم 8 نفر دانلود کرده بود یعنی از این 8 نفر 1 نفر هم نتونسته بود آنپک کنه من قبلا آموزش آنپک کردن این نوع از پروتکتور رو گذاشته بودم که!

    امنیت پروتکتور 10/2
    فایل های ضمیمه فایل های ضمیمه

  40. #40
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: Plase Dump Me Ver 3

    تکنولوژی به کار رفته تو برنامه یه جورایی نسخه ایرانی Runtime AntiDebug بود ولی جای کار کردن بیشتر زیاد داشت ، آقا هادی خیلی ساده این تکنیک رو پیاده سازی کرده بود ( با اطلاع قبلی ) ، ولی اگه قرار باشه این تکنیک با تعدد پروسه های فامیلی همراه بشه کرک کردنش کار ساده ای نخواهد بود.
    چرا که شما میتونید با گرفتن جلوی AntiDBG.dll از اینجکت شدن به پروسه تقریبا" کار Runtime Antidebug رو یه سره کنید ولی در صورتی که تکنولوزی نانومیتس و همین تکنیک با هم اعمال بشن ( البته نه به تابلوئی اون DLL ) ، اون موقع بیرون کشیدن فایل Loader.dll وباالطبع بیرون کشیدن فایل نهایی کار ساده ای نخواهد بود.
    اگر اشتباه میکنم لطفا" تصحیح کنید ، خوشحال میشم.

صفحه 1 از 2 12 آخرآخر

برچسب های این تاپیک

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

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