آموزش مستند كرك OCX بالا.
اين دفعه قصد داريم به يه فايل OCX نفوذ كنيم. كار با اين فايل ها چندان تفاوتي با كرك فايل هاي EXE نداره و مي شه اونها رو به همون راحتي فايل هاي اجرائي كرك كرد.
بزاريد براي شروع به بررسي نحوه محافظت و كاري كه بايد در نهايت انجام بشه بريم. خوب OCX رو كه به تنهايي نمي شه اجرا كرد پس يه پروژه جديد ايجاد كرده و از اون داخل پروژه استفاده مي كنيم.
در هنگام اضافه كردن OCX با نگ اسكرين زير رو به رو مي شيم.
ما بايد كاري كنيم كه اين نگ اسكرين ديگه نمايش داده نشه. اين همون كاريه كه ما در درس هاي قبل هم انجام داديم. براي سهولت كار بهتره همين پروژه اي كه ساختيد را كامپايل كنيد تا اون رو داخل ديباگر به اجرا در آورده و بر روي نگ اسكرينش كار كنيم.
خوب طبق معمول هميشه ميايم داخل فايل OCX به دنبال كلمات يا جملاتي مي گرديم كه داخل نگ اسكرين نمايش داده مي شن. اين اصول بنيادين كرك هست كه بايد هميشه داخل برنامه به دنبال واكنش هايي باشيم كه طرح حفاظتي از خودش نشون مي ده. پس وقتي طرح حفاظتي يك
پيغام خطا مي ده ، راحت ترين كار پيدا كردن متن پيغام خطا داخل برنامه هست.
بسيار عالي! به سادگي و بدون هيچ جستجوئي تونستيم متن پيغام نگ اسكرين رو پيدا كنيم
. روي اونها BP بزاريد و برنامه رو اجرا كنيد.
واي ! برنامه اصلا اعتنايي به بريك پوينت هاي ما نكرد و نگ اسكرين لعنتي دوباره روي مانيتور ماست
بايد دوباره به محيط برنامه برگرديم و همه چيز رو از اول شروع كنيم. بريك پوينت ها رو بررسي مي كنيم. هيچ مشكلي ندارن و البته داخل تكست ريفرنس ها هم چيز مشكوك ديگه اي وجود نداره اما هنوز نتونستيم گير برنامه رو پيدا كنيم!!
اگه اون OCX رو داخل PEID باز كنيد علت رو متوجه مي شيد.
OCX پك نشده اما چون به زبان C++ نوشته شده ، احتمالا شما قادر نباشيد متن پيغام ها رو داخل ديسمبلر مشاهده كنيد گرچه دكامپايلرها به سادگي اين متن ها رو نمايش مي دن.
به عبارت ديگه برنامه نويس خواسته با اون پيغام هاي جعلي ما رو فريب بده! پس خودتون شاهد باشيد كه سر جنگ رو خودش اول شروع كردها!!
ما به دنبال نگ اسكرين هستيم و مطمئنيم اگه اون رو پيداش كنيم تقريبا مشكلمون حل شده. حالا به نظر شما بايد از كجا و به چه روشي محل به نمايش در اومدن اون نگ اسكرين رو حدس زد؟
جواب سوال خيلي ساده است . وقتي نميشه دنبال متن داخل نگ اسكرين گشت ، پس تمام نگ اسكرين هاي داخل برنامه رو زير نظر مي گيريم تا بالاخره پيداش كنيم!!
پس راست كليك كرده و از منوي باز شده گزينه Serch For و سپس All InterModuler Callsرو انتخاب مي كنيم. حالا در اين صفحه ابتدا توابع به نمايش در اومده رو بر حسب نام سورت كرده و سپس به دنيال CDialog مي گرديم. ( البته در زبان هاي مختلف ممكنه نام اين توابع كمي با هم فرق كنه ولي تفاوت زيادي ندارن )
خوب دوتا دونه بيشتر نيست، همون دوتارو BPمي زاريم و برنامه رو ريستارت مي كنيم .
بسيار عالي! يكي از اون دوتا همون تابع چك كننده قفل و نمايش نگ اسكرين بوده و كمي بالاتر از اون هم انگار يه IF طلائي وجود داره كه ما رو از روي نگ اسكرين عبور مي ده!
بقيه كار رو هم خودتون بهتر بلد هستيد .