چگونگي نوشتن قفل با وي بي
قسمت سوم
* نويسنده اين مطلب من نيستم .
-------------------------------------------
خوب براي مثال ما يه برنامه واقعي مثل Notepad.exe رو قفل مي كنيم .( ورژن اين برنامه 5.1.2600.2180 متعلق به ويندوز xp)
براي اين كار فايل notepad.exe رو توي به فولدر مثل work كپي ميكنيم حالا با يه برنامه كه اطلاعات هدر فايل exe رو نشون ميده برنامه notepad رو مورد بررسي قرار ميديم ( مثل برنامه ProcDump32 توي قسمت PE Editor)
*نكته تمامي عددها در مبناي hex مي باشد
Entry Point : 739d
Size of image:14000
Image Base: 01000000
يعني EP ما در حافظه برابر است با
EP=01000000+739d=0100739d
و در قسمت سكشنها داريم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همانطور كه ديده ميشه EP برنامه ما درون سكشن .text پس محل شروع برنامه بروي هارد ميشه:
REP:739d-1000+600=699d
حالا با يه برنامه هگزه اديتور اگه به اين محل پرش كنيم :
6A706898180001
كه يعني :
6A70 push 00000070
6898180001 push 01001898
حالا ما خط اول رو با اين كد عوض مي كنيم ( موقعيت 699d از اول فايل )
EBFE كه قبلا توضيح دادم يعني چي
و برنامه رو به اسم test.lck ذخيره مي كنيم . حالا اگه فايل رو اجرا بكنيم مي بينيم كه فايل اجرا نميشه ( براي اجرا اون بايد با پسوند Exe ذخيرش كنيم (
. حالا بايد برنامه اي با وي بي بنويسيم كه بياد و اين كد رو يعيني EBFE رو با 6A70 عوض كنه . برنامه Microsoft Visual Basic رو ران كرده و يه پروژه جديد از نوع STANDARD EXE مي سازيم و بعد فرم پيش فرض وي بي رو حذف كرده و يك Module به برنامه اضافه مي كنيم . براي اينكه برنامه مون اجرا بشه احتياج به
Public Sub Main()
End Sub
ست كردن اين نوع برنامه ها رو همه بلدن
توي قسمت توضيحات اين كدها رو اضافه مي كنيم:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و بعد توي سابروتين main اين كدها رو اضافه مي كنيم
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
----------------------------
منبع :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]