کرم های کامپیوتر





قالب وبلاگ در حال ویرایش شدن!

ممکن است اشکالاتی در قالب پیش بیاید
بنابراین پیشاپیش متاسفیم!

کرم های کامپیوتر

من و دوستم دو تا کرمیم که داریم تو سیستم ها وُل می خوریم و بعضی وقت ها براتون چیزایی که تو این وُل خوردن ها یاد گرفتیم رو می نویسیم!!!!!

تبلیغات

لاگ بندرعباس راه افتاد!

برای اطلاعات بیشتر به وبلاگ لاگ مراجعه کنید.
نویسنده وبلاگ ما شوید

شما می توانید در قالب نویسنده در کنار ما باشید و در این وبلاگ فعالیت کنید

ربات تلگرامی ما
نویسندگان
آخرین نظرات
  • ۱۴ تیر ۹۸، ۱۵:۴۶ - فرهاد حسن پور
    ali boood.

۷۲ مطلب با موضوع «آموزش» ثبت شده است

در سی شارپ شما می توانید نوع (type) ها را در قالب یک متغییر برگرداند و جا به جا کرد. این نوع ها می توانند انواع متغیر ها و یا کلاس ها و در کل هر شئ موجود باشند. به طور مثال اگر کلاس های مشتقی دارید می تواند کلاس پایه و تمامی کلاس های مشتق را به گونه ای بنویسید که توع خود را در غالب یک متغیر اعلام کنند

  • BSimjoo

Image hijack

۱۵
تیر

این اتفاق یعنی Image hijacking در ویندوز زمانی رخ می دهد که کاربر یا یک بدافزار در رجیستری به آدرس زیر تغییراتی به وجود بیاورد.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

اگر آدرس بالا کلیدی با نام برنامه مورد نظر مانند taskmgr.exe ساخته شود و در آن مقداری از نوع رشته با نام Debugger ایجاد کنید می توانید در آن آدرس یک برنامه را بنویسید تا با برنامه اصلی جاییگزین شود و به جای آن اجرا شود و یا با خالی گذاشتن این مقدار مانع از اجرا شدن آن شوید. (در این مثال می توانید تر اجرا شدن برنامه Task manager تغییرات ایجاد کنید.)

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

  • BSimjoo

اغلب برنامه ها در ایجاد تغییرات در رجیستری ویندوز مخصوصا کلید های حساس رجیستری مجاز به دسترسی نیستند و با خطای Access denied مواجه می شوند. در این مطلب می خواهم در خصوص چگونگی دور زدن این منع دسترسی توضیحاتی بدهم.

از آن جا که رجیستری ویندوز می تواند ابزار مخربی برای بدافزار ها باشد و تغییرات انجام شده در آن می تواند برای کاربران فاجعه بار باشد، لزا در بعضی کلید ها دسترسی های خاصی نیاز است؛ مخصوصا اگر با یک زبان تحت دات نت فریم ورک سر و کار داشته باشید (مانند سی شارپ). حال برای تغییرات می توانید از یک برنامه مورد اطمینان ویدوز به نام Reg.exe استفاده کنید. وجود این نرم افزار باعث شده تا بسیاری از نرم افزار ها به سادگی بتوانند حتی به جا های حساس ویندوز آسیب زده و مشکلاتی بوجود بیاورند. این برنامه درواقع یک واسط خط فرمان برای تغییر در رجیستری هست که توسط مایکروسافت نوشته شده و در آدرس "C:\Windows\System32\reg.exe" قرار دارد. برای استفاده از این برنامه لازم است با چگونگی دادن دستورات به آن آشنا شوید که توضیح آن در این مطلب نمی گنجد و پیشنهاد می کنم در خط فرمان توسط دستور reg help با چگونگی استفاده از آن آشنا شوید. برای انجام تغییرات کافیست از طریق کد های برنامه خود این نرم افزار را اجرا و دستورات لازم را به آن بدهید.

توجه این برنامه می تواند به شما دسترسی بیشتری در ویرایش رجیستری بدهد، پس این شما هستید که تصمیم می‌گیرید از این ترفند برای کار های خوب استفاده کنید یا بد!

  • BSimjoo

مهلت ارسال پاسخ به چالش تمام شد و این هم کد من برای جواب چالش ترک عملگر ها

  • BSimjoo

چالش ترک عملگر ها!

۲۲
ارديبهشت

چند روز پیش یه چالش دو نفره بین من و آقای کریمی زاده راه افتاد که آن را با شما به اشتراک می گزارم

چالش از این قرار است: باید کدی بنویسید که با تعداد محدودی عملگر مجاز (تنها عملگر های مجاز عملگر های منطقی(عملگر های و؛ یا؛ نقیض) و عملگر انتساب (مساوی) هستند) بتواند دو عدد را در هم ضرب کند. عملگر های ضرب، جمع، تفریق، تقسیم و عملگر های بیتی و حتی عملگر های افزایش یا کاهش واحدی (++/--) غیر مجاز هستند. من تونستم کد رو به زبان سی شارپ (#C) بنویسم شما نیز با هر زبانی که می توانید بنویسید و در سایت apaste.info بارگزاری کرده (تاریخ انقضا نداشته باشد) و لینک آن را در نظرات ارسال. پاسخ بعد از دو هفته به اشتراک گزارده می شود.

  • BSimjoo

احساس کردم که مطلب "برنامه نویسی را از کجا آغاز کنم؟" به کمی بررسی بیشتر نیاز دارد، لذا تصمیم به بازنویسی این مطلب گرفتم.

لازم است قبل از هر چیز بگویم که من صرفا نظرات خودم را به جهت کمک به برنامه نویسان تازه‌وارد مطرح می کنم. در این مطلب به بررسی و راهنمایی برنامه نویسان تازه‌وارد می پردازیم تا علاقه مندان به این هنرِ فنی در رایانه راه خود را بیابند.

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

  • BSimjoo

در سال 2000 (که سال تولد من هست) یک خطای نرم افزاری تمام کامپیوتر ها را تهدید می کرد.

موضوع از آنجا شروع شد که در آستانه سال 2000 میلادی برنامه نویسان متوجه خطایی شدند که به Y2K یعنی Y2000 معروف است. در آن زمان سیستم هایی مانند سیستم کارت های بانکی و... وجود داشتند که سال را تنها با دو رقم آخر (مثلا به جای 1999 از 99) نشان می دادند؛ ولی مشکل اینجا بود که نرم افزار ها نمی توانستند بین سالها 2000 و 1900 و... فرقی قائل شوند.

حال آیا این اتفاق باری دیگر و در سال 1400 شمسی برای ما رخ خواهد داد؟

     تابلو اعلاناتی که به اشتباه سال 2000 را 1900 نشان می دهد
 منبع تصویر: ویکی‌مدیا
  • BSimjoo

در حال نوشتن چند خط کد بودم و نیاز داشتم که هربار کد را در یک کانال آی‌آر‌سی بفرستم تا کد بازبینی و اشتباهاتم گوشزد شود. از یک پیست‌بین(pastebin) استفاده میکردم و هربار پیوند نسخه جدید کد را به کانال میفرستادم اما این پروسه دردناک و آزار دهنده بود:

  • تغییر کد
  • کپی آن به بریده‌دان(clipboard) سیستم پنجره‌ی اکس
  • وارد شدن به apaste.info با مرورگر وب
  • وارد کردن کد و گرفتن پیوند کد
  • فرستادن کد به کانال
برای همین رفتم دنبال اینکه این فرآیند را کوتاه‌تر و خوش‌آیندتر کنم. برای اینکار از curl استفاده کردم. با اینکه کرل برای اکثر سیستم‌عامل‌ها از جمله داس، ویندوز، مک، شبه‌یونیکس‌ها و ... وجود دارد اما همچین چیزی بیشتر بدرد کاربرانی میخورد که با خط فرمان زیاد کار میکنند و این کاربران در ویندوز بدلیل عدم وجود یک خط فرمان قوی، کمتر دیده میشوند.
  • فاروق کریمی زاده

همونطور که می دونید ویندوز اجازه ساخت یک پوشه (یا Directory) با نام فاصله (white space) رو نمیده ولی میشه این کار رو با خط فرمان انجام داد. کد های زیر رو حتما امتحان کنید (به جای X هر حرفی می تواند باشد):

md "X:\ \"

و سپس

md "X:\ \test"

این دو کد در خط فرمان باعث ایجاد یک پوشه به اسم فاصله می شود. حالا برید و ببینید ویندوز چه باگهایی سر این پوشه می ده. اول که  پوشه رو باز می کنید چون کارکتر فاصله در آخر آدرس هست مرورگر فایل ویندوز (Windows Explorer) دچار یک اشتباه لپی شده و فاصله را در نظر نمی گیرد. پس به جای نشان دادن محتویات این پوشه که پوشه ای دیگر به نام test است، محتویات X:\ می دهد و اگر یک بار دیگر  روی این پوشه با نام فاصله کلیک کنید پیغام هشداری می بینید که می گوید نمی تواند آدرس X:\ \ \ را پیدا کند. تنها راه دسترسی به پوشه test تایپ آدرس آن (X:\ \test) در نوار آدرس است.

توجه: برای پاک کردن پوشه حتما از خط فرمان و دستور rmdir /s "X:\ \" استفاده کنید در غیر این صورت امکان دارد کل فایل ها پاک شوند.

  • BSimjoo

تابع qsort از کتاب‌خانه‌ی استاندارد(stdlib.h) از توابع مفید و البته استاندارد هست.این تابع با دادن آدرس آرایه، تعداد اعضا، اندازه‌ی هر عضو و یک تابع برای مقایسه‌ی دو عضو،آرایه  را بصورت صعودی مرتب میکند.

با اینکه این تابع استاندارد هست اما اجباری در پیاده‌سازی آن نیست، به این معنی که qsort ضرورتا همه‌جا(منظور از همه جا دقیقا همه‌جاست! این یعنی ابر‌رایانه‌ها،فبلت‌ها،رایانه‌های شخصی و همچنین میکروکنترلر‌ها مانند AVR و PIC را نیز حساب میکنیم) وجود ندارد.

void qsort(void *base, size_t nmemb, size_t size,
            int (*compar(const void *, const void *)))

  • فاروق کریمی زاده
complex(real_part=0, imag_part=0)
complex(str)

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

  • فاروق کریمی زاده
os.urandom(n)

تابع os.urandom تعداد n بایت تصادفی برمیگرداند که برای مصارف رمزنگاری و دیگر کاربرد‌ها که اعداد تصادفی با کیفیت‌تر نیاز دارند مناسب است

  • فاروق کریمی زاده
مطمئن نبودم که باید این پست را بنویسم یا نه. بعد از اندکی فکر کردن، دیدم بهتر است این حرف‌ها را به گوش بقیه رسانده و عقیده‌ی خود را ابراز کنم! شاید دلیل نوشتن حداقل بخشی از این پست یک تعصب پنهان به بعضی زبان‌ها و سیستم‌عامل‌ها باشد.بخشی دیگر هم مطالبی بودند که فکر کردم پست بهنام سیمجو به اندازه کافی به آنها نپرداخته یا مبهم نوشته و ... .پیشنیاز مطالعه‌ی این مطلب، مطلب بهنام سیمجو است.
  • فاروق کریمی زاده

این توابع از توابع توکار پایتون هستند و همانطور که از اسمشان مشخص است، یک عدد مبنای ده را به یک رشته که حاوی آن عدد در مبنای ۸،۱۶ یا ۲ است تبدیل میکند. فکر نمیکنم نیاز به توضیح زیادی داشته باشند اما توجه کنید که این توابع یک رشته برمیگردانند. چند مثال:

>>> hex(10)
'0xa'
>>> oct(13)
'0o15'
>>> bin(12)
'0b1100'

مطالب مرتبط:

  • فاروق کریمی زاده

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

  • BSimjoo