آژانس هواپیماییexchanging

يه سوال در مورد SoftICE

شروع موضوع توسط MehdiC# ‏24 سپتامبر 2005 در انجمن برنامه نویسی

  1. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سلام
    من SoftICE 4.05 NT رو نصب کردم. (در Windows XP SP 1 )
    بعد سه تا فایل پچ رو هم کپی کردم به %Windows% \ System32\Drivers
    حالا وقتی در Symbol Loader یه فایل رو load میکنم ، خطا میده که
    ---------------------------
    Symbol Translation/Load error
    ---------------------------
    An error occured during symbol translation/load. Load executable anyway?

    Yes رو که میزنم ، هیچی انجام نمیشه ، فقط اون برنامه هه اجرا میشه ، ولی debug
    نمیشه. (اصلا SoftICE بالا نمی یاد)
    همچنین وقتی روی یه تابع API مثل Beep یا MessageBox ، توسط bpx ، breakpoint میذارم
    و بعد از داخل یه برنامه ای این تابع API صدا زده میشه ، وارد SoftICE نمیشم ، میشه راهنماییم
    کنید؟؟؟؟؟
    این رو هم بگم که SoftICE رو قبلا به صورت Manually ، Start میکنم . (همچنین اون semicolon ها رو
    از ته فایل winice.dat ، پاک کردم.)

    (با توجه به این همه دردسری که از دیروز تا حالا کشیدم فکر میکنم که OllyDbg هزار مرتبه به این
    SoftICE بیارزه ، چون نه Configuration میخواد نه نیاز به Symbol داره. تازه به سیستم عامل هم کاری
    نداره. الان با نصب SoftICE ، بعضی برنامه ها رو که اجرا میکنم(مثل System Mechanic ) ، سیستم reboot
    میشه)
     
  2. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    ollydbg فقط ديباگر برنامه است ولي si ديباگر كرنل است( اين دو حالت باهم خيلي فرق ميكنن).
    مي توني winice.daT اتچ كني
    نكته: راستي بايد مسير رو كامل بدي
    يعني اگه ويندوزت رو درايو C و در شاخه WINXP باشه بايد بجاي SYSTEMroot توي WINICE.DAT بنويسي
    c:\winxp\system32 تا كار كنه
    مثال (EXP=c:\winxp\system32\System32\kernel32.dll )
    دليل كار نكردن loader هم اينكه si رو پچ كردي- لازم ندار هميشه از لودر استفاده كني من معمولا ازش استفاده نميكنم ) فقط زماني كه بخوام مشخصات SI رو عوض كنم ازش استفاده ميكنم ).
    دليل ريبوت شدن سيستم هم اينكه System Mechanic و امثال ان ديباگر ديتكشن دارن حتي اگه با olly هم بخواي اون رو ديباگ كني بازم ممكنه ويندوزت كرش كنه( چون سافت ايس رو سيستمت ميشنه يعني كرنل ديباگره هميشه فعاله حتي زماني كه اون رو استارت نكردي چون siwvid.sys توي بوت قبل از كرنلت فعال ميشه )
    راه حلشم اينكه از برنامه هاي softice انتي ديدتكتور استفاده كني
    مثل FrogsICE و IceDump كه جلوي ديتك شدن رو ميگيرن

    نكته بسيار مهم براي ديباگينگ همراه استفاده از softice هميشه ميگن يه ويندوز ديگه نصب كننين و بعد اون ويندوز رو مخصوص ديباگينگ بزارين نه اينكه از يه ويندوزبراي همه كارها استفاده كننين

    در مورد مقايسه بايد بگم كه سافت ايس قدرتهايي داره كه بقيه ديبگر ها ندارن يكشون مثلا قدرت ديباگينگ برنامه هاي سرويس دهنده هستن كه همراه ويندوز اجرا ميشن يه مثال سادش توي 98 وقتي برنامه اي مثل پارسا 2001 رو نصب كني يه سرويس رو براي فارسي سازي فعال ميكنه كه اگه بخواي اين سرويس رو دستكاري كني تا اونجايي كه من ميدونم بايد از si استفاده كني و چيزهاي ديگه جوابتو نميدنن چون قبل از اينكه سيستمت بالا بياد اين سرويس فعال ميشه ( يعني نميتوني olly رو ران كني در زمان اجرا اون ) و .... كه جاش اينجا نيست درموردش بحث بشه توي ريفرنس خود SI نوشته تمام اين موارد رو .

    و خوبي ديگش اينه كه واسي SI فرقي نميكنه كه چه برنامهاي باعث ايجاد بريك پوينت شده همه رو برات ديباگ ميكنه نه مثل olly كه فقط يه برنامه رو

    مثلا اگه بخواي منوي run ويندوزتو جوري كاستمايز كني كه اگه زدي null فلان كار رو بكنه فقط ميدونم كه بهترين راهش استفاده از SI و ....

    به هر حال هر برنامهاي خصوصيات خودش رو داره و مشكلات خودش رو ولي به صرف سختي و مشكلات نميشه گفت كه اين برنامه بده ( چون ممكنه خصوصياتي داشته باشه كه شما الان باهش كار ندارين ولي فردا بهش نيازمندين ) بر اساس نوع نياز برنامه مصرفي مشخص ميشه. اگه فكر ميكني olly جوابت ميده دنبال si نرو ولي قوي ترين كركر ها( منظورم تمامي مديواير ها و پكرها و متخصصين امنيت و ....) همشون ميگن SI بهترين ديباگره براي ويندوزه
    اميدوارم كمكت كنه بازم كمك خواستي بگو
    :lol:
    :lol:
     
  3. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سلام سعید جان ، بابت جوابت ممنونم
    1- از مسیر کامل استفاده کردم.
    این هم فایل winice.dat من : (ویندوزم تو درایو G نصب شده)

    2 - بدون patch کردن ،SI تو سیستم من کار نمی کنه.
    3 – اگه از Symbol Loader استفاده نکنم ، پس چطور یه فایل رو debug
    کنم ؟
    4 – قبول دارم که SI بهترین دیباگره ، ولی به نظر من برای یک Programmer
    (نه یک cracker یا برنامه نویس device driver ) ، OllyDbg میتونه کامل کارش رو
    راه بندازه.
    5 – در ضمن گفتم که وقتی روی یه تابع (مثلا Beep) ، bp میذارم و بعد توی یه برنامۀ
    نوشته شده در C ، تابع Beep رو فراخوانی میکنم ، SI اونو تشخیص نمیده.
    (اما توابعی مثل GetVersion یا GetDlgItemText و اینا رو جواب میده.) فکر میکنید چرا ؟؟
    6- تو بعضی فروم ها از Driver Suite صحبت شده و اینکه ما حتما برای استفاده از SI
    باید فایلهای دیباگ ویندوز رو از سایت Microsoft دانلود کنیم. (فایلهای pdb مثل ntoskrnl و
    Ntdll و اینا که کلا بیشتر از 60 مگابایت میشن.) (و فایل هایی با پسوند *.NMS )
    آیا بدون اونا نمیشه با SI کار کرد.؟؟؟


    7 - نظرت دربارۀ دیباگرهایی مثل Windbg (از مایکروسافت) و LiveKD (که قبلا ها تو
    سایت www.sysinternals.com موجود بود ) چیه ؟؟؟
    خود نویسندۀ LiveKD که خیلی از کارش راضی بود و اون رو با SI مقایسه میکرد.

    و سوال آخر : برای اینکه خیالم راحت بشه ، میشه بگید شما یه فایل رو (مثلا C.exe )
    چطور با SI دیباگ می کنید؟ مراحلش رو بگین تا هم من و هم بقیۀ دوستان (که کم نیستن)
    شیوۀ کار رو یاد بگیریم. (فقط بگین که چطور یه برنامه رو به داخل SI ، لود میکنید)

    خیلی ممنون
     

    فایل های ضمیمه:

    • Winice.zip
      اندازه فایل:
      567 بایت
      نمایش ها:
      25
  4. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    حالا داره كار ميكنه يا دفعه قبل هم كار ميكرده؟
    خوب بله براي كار كردن توي اكس پي يا بايد اون رو پچ كرد و يا از driver suite استفاده نمود ( چون هر وقت driver suite رو بروي دستگاهم نصب كردم و موس و كيبردم از كار افتاده، ديگه ازش استفاده نميكنم البته رو يه دستگاه ديگم قشنگ جواب داد ولي رو amdxp 2.4 و بامين msi كه دستگاه اصلي منه جواب نميده مراقبش باشين ). در صورت استفاده از drive suite لودر كار ميكنه !!!!!!!!

    دليل عدم كار كردن روي beep ميتونه اشكال از ستينگ بريك پوينت باشه چون بعضي از وقتها از تابع messageboxbeep استفاده ميشه نه Beep و در ضمن همين يه api يعني messageboxbeep چهارنوعه ( اگه درست يادم باشه)
    1- messageboxbeep
    2-messageboxbeepa
    3-messageboxbeepw
    4-messageboxbeepwa
    خوب اگه شما روي messageboxbeepa بريك پوينت بزارين وبرنامه از messageboxbeepw استفاده كنه خوب si عمل نميكنه
    بهترين كار براي فهميدن اينكه از كدوم تابع داره استفاده ميكنه استفاده از api importanet viewer كه بفهمين كه چه تابعي لود ميشه

    با windbg( اگه اشتباه نكنم ديكتشو چك كن) كار كردم ولي خوشم نيومد. LiveKD نميدونم باهاش كار نكردم تا نظرم رو بدم


    در مورد سئوال آخر خوب اگه بخوام از اول يه برنامه رو ديباگ كنم و لودر نداشته باشم اين كار را ميكنم
    1- eintry point برنامه رو بدست ميارم ( offset اون رو ) مثلا با برنامه w32dasm
    2- با يه هگزه اديتور به محل اينتروي پوينت ميرم و بايت اول اون رو با cc تعويض ميكنم ( مقدار اصلي رو ياداشت ميكنم مثلا 6a توي مد هگزا دسيمال ) و ذخيره ميكنم(cc يعني كد int 03 )
    3- si رو اتيش كرده و روي int 3 بريك پوينت ميزارم ( bint 3 اگه درست يادم باشه)
    4- بعد برنامه رو اجرا كرده و بعد si بالا مياد حالا توي كامند si مينويسم e epi و توي پنجره ديتا اولين مقدار كه ميبينم cc هستش كه بايد به مقدار ياداشت شده ( توي مثال ما 6a) تغيرش بدم . بعد اينتر كرده و ميرم روي خط مورد نظر كه همون شروع برنام اس ( entry point) ( كه مثلا توي مثال ما 401000 ) بريك پوينت تعريف ميكنم يعني bpx 401000 و بعد x رو ميزنم
    5-حالا برنامه رو با هگزه اديتور باز ميكنم و ميرم به ادرس قبلي ( افست entry point) و مقدار cc رو به مقدار اصليش تغيير ميدم و برنامه رو ذخيره ميكنم
    6- حالا اگه تمامي مراحل بالا رو درست انجام داده باشي ميبيني كه با اجرا برنامه si مياد بالا حالا ديباگينگ شروع شده


    يه لودر دقيقا همين كار رو ميكنه كه گفتم از لودرهاي ديگه هم مي توني استفاده كني توي گوگل سرچ كن

    نكته هميشه براي ديباگينگ لازم نيست اين همه كار رو انجام بدي چون مثلا ميخواي برنامه اي رو كه زماني كه فلان اتفاق افتاد تريس كني كه در اين صورت بر اساس اون تريس نوع بريك پوينتت تغيير ميكنه :lol:
     
  5. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سلام
    همۀ مراحل رو انجام دادم و درست پیش رفت ، خیلی ممنون.
    فقط تنها مشکلی که دارم اینه که :
    اولا وقتی روی یه تابع API ، (مثل Beep ) ، در SI ، بریک پوینت میذارم ، و اون تابع رو در یه
    برنامه فراخوانی می کنم ، SI ، شروع به کار نمیکنه.
    (چیزی که شما فرمودید چند نوع داره ، تابع MessageBeep یا MessageBox هست ، در ضمن
    خودم اون برنامه رو نوشتم و مطمئنم که از Beep استفاده کردم ، W32dasm و OllyDbg هم
    وجود و فراخوانی Beep رو نشون میدن.)
    ثانیا ، SI اسم توابع VB رو نشون نمیده. مثلا به جای نام __vbaStrCmp ، از آدرس حافظۀ اون
    استفاده میکنه. (در حالی که OllyDbg و W32dasm و HIEW ، اسم تابع رو هم نشون میدن.
    و MSVBVM60.dll رو هم در Winice.dat قرار دادم.)

    در ضمن دیباگر LiveKD رو هم attach کردم براتون.
     

    فایل های ضمیمه:

    • livekd.zip
      اندازه فایل:
      29.3 KB
      نمایش ها:
      28
  6. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    مي توني برنامتو اتچ كني
    بايد از system loder استفاده كني بزار ببينم ميتونم پچش كنم با نه خبرت مي كنم
     
  7. appbannerkhuniresbanner
  8. BAHAR_B

    BAHAR_B کاربر تازه وارد

    تاریخ عضویت:
    ‏21 فوریه 2005
    نوشته ها:
    9
    تشکر شده:
    0
    ميدونم اينجا جاش نيست ولي چه كنم
    اون كتاب اكسل كه گفتي رو سي دي داريش
    من لازمش دارم -- لطفا بگو همراه با چي كتابهاي ديگه اي .... - از كجا تهيه اش كردي
    خواهش ميكنم سريعتر جوابشو بده
    اگه ميتوني yahoo messenger برام offبذار
    [email protected]
    منتظرتم
     
  9. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سلام
    این هم دو برنامه ای که می گفتم.
    یکی از تابع Beep و دیگری از __vbaStrCmp (تابع برای مقایسۀ رمز عبوری که کاربر
    وارد کرده با رمزی که در برنامه هست)
    استفاده میکنه. با اینکه رو این توابع در SI ، بریک پوینت میذارم ولی با اجرای این
    برنامه ها ، وارد SI نمیشم
     

    فایل های ضمیمه:

    • Programs.zip
      اندازه فایل:
      14.5 KB
      نمایش ها:
      19
  10. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    اقا مهدي من فردا دفاع كارشناسي ارشد دارم بعدش حتما چكش ميكنم.

    دعا كن گير كم بهم بدن :lol:
     
  11. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    ان شا الله موفق باشي.
    خيلي با حالي كه با اين همه مشغله به سوالاي من اينقدر كامل توضيح دادي.
    مرسي
     
  12. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    مرسي دست درد نكنه فعلا كه نمره خامم 96.5 شد حالا ببينيم با نمره مقالات و كسري اضافه سنوات چس ميشه

    باحالي از بچه هاي پيتي نه من :lol:

    اقا تستش كردم با beep مشكل نداشتم ( شايد بعلت استفاده از سيبول و پچي كه نوشتم ) اما با وي بي اره چون هنگام لود si ،si نميتونه يه چند تا چيز رو هوك كنه ( توي xp ) اما توي 98 ،98se ، ويندوز me و ويندوز 2000 مشكلي نداشتم

    راستي سيستم لودر هم راه انداختم يعني پچ رو جوري عوض كردم كه جواب بده ( بعدا اپ لودشون ميكنم بگو روي دستكگاه تو هم جواب داد يا نه )

    سيمبول ها هم براي xp2 جنريت كردم

    در هر صورت اگه سيمبول ها رو خواستي بگو تا upload كنم

    فعلا باي
    :lol:
     
  13. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    سعید جان ان شاء الله که دیگه فوق لیسانس شدی دیگه. (بابا استاد) :D

    میخوام یه ویندوز XP دیگه مخصوص debugging نصب کنم ؛
    برای اینکار ، Debugging Symbols رو از مایکروسافت و همچنین Driver Suite 2.7
    رو دانلود کردم. و هر دو رو نصب کردم . آیا تنظیم خاصی هم دارن ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    حالا میخوام ببینم چطور یه سیستم عامل مخصوص اینکار نصب کنم ؟
    (یعنی پس از نصب ویندوز ، چه چیزهایی رو نصب کنم )
    فعلا میخوام با دو کتاب
    Debugging Applications for Microsoft Windows and Microsoft .NET
    و
    Hacker Disassembling Uncovered
    شروع کنم . همچنین این ابزار رو برای کار انتخاب کردم :
    HIEW
    W32dasm
    IDA Pro
    SoftICE
    OllyDbg

    نظرت چیه ؟ اگه پیشنهادی برای تسریع روند یادگیریم داری بهم بگو.

    بابت سیمبول ها هم ممنون ، دیگه کاملش رو دارم. :)
     
  14. avajang.com .leftavajang.com.right
  15. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    خوب اگه مي خواي شروع كني بهتر از ويندوز 9 شروع كني چون راحتره و دبگ و فنگ xp رو نداره

    تولزات خوبه ولي فكر كنم جاي يه اسمبلر مثل nasm خاليه همچنين اگه يه برنامه pe اناليز مثل peid بهشون اضافه كني كه محشر ميشه .
    Debugging Applications for Microsoft Windows and Microsoft .NET خوبه اما بيشتر چگونگي كنترل و رفع ايراد رو بهت ياد مي ده و بقيه هنرها رو بهت نشون نمي ده . كتاب Hacker Disassembling Uncovered نخوندم نمي دونم راجب چيه دقيقا ولي از روي اسمش بيشتر فكر كنم يه سري راه هاي محافظت رو نشون ميده

    براي اينكه بتوني يه برنامه رو خوب تريس كني و باگهاشو پيدا كني و يا خواستي قفل براش بنويسي بايد بلد بشي كه برنامه ها رو كرك كني . براي ياد گري كرك كردن بهترين مرجع اينترنت و تيوتريالهاي اونه سايت هاي خوبي در اين مورد هستن كه مي توني از اونها استفاده كني مثل exetools و .... كلا تنها چيزي كه بايد بدوني اينكه براي اين كار صبر كردن خيلي مهمه و اگه سر و حوصله نداري بهتر بي خيالش شي.

    اگه softice مثل هلو داره كار ميكنه كه نه تنظيماتي نداره ولي اگه مشكل داره توي xp, بايد يه سري از تنظيماتشو درست كني تا بهت جوايب بده مثل گزينه NOGUIBOOT كه مي توني توضيحاتي رو اينجا ببيني
    http://www.codingforums.com/printthread.php?t=49345

    توي فكر هستم يه اموزش كرك اينجا بزنم اگه خدا خواست و تونستم شروع ميكنم.
     
  16. MehdiC#

    MehdiC# کاربر تازه وارد

    تاریخ عضویت:
    ‏2 نوامبر 2004
    نوشته ها:
    55
    تشکر شده:
    0
    محل سکونت:
    ابهر
    مرسی سعید جان. ان شا ا... آموزش رو شروع کنی ، از مشتریاتیم.
    بابت راهنماییهات هم ممنون ، کارا خوب پیش میره .
     
  17. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    حتما
    نه برادر اين استاد رو بايد همشون رو لاي گل گذاشت :d