Ai000 Cybernetics QLab

Channel
Logo of the Telegram channel Ai000 Cybernetics QLab
@aioooirPromote
2.06K
subscribers
Ai000 Cybernetic QLab is a non-profit research place which is focus on novel defensive and offensive services to protect our customers. Admin: @clightning
Media is too big
VIEW IN TELEGRAM
Ai000 Cryptocurrency (Blockchain) Foresight v0.1.0-beta

@aioooir | #cryptocurrency #ml #dl #gai
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
One of our research based project in Ai000 Cybernetics QLab is dedicated to price and also trend prediction of the cryptocurrency and blockchain monitoring to give alert for bearish and bullish market. It has 68% accuracy, however we are working AI model to make it more and more accurate. Cheers buddy with profits.

@aioooir | #cryptocurrency
📌 بخش دوم: تغییرات ISA پردازنده‌های اینتل در معماری x86s

مزایای معماری x86S: معماری جدید x86S به دلیل حذف بخش‌های قدیمی، بهینه‌سازی‌های زیر را به همراه دارد:

بهبود کارایی پردازنده: با حذف بخش‌های بدون استفاده و غیرضروری، پردازنده می‌تواند با سرعت و کارایی بیشتری به پردازش دستورات بپردازد.

کاهش پیچیدگی سخت‌افزاری: حذف حالت‌های قدیمی و کنترل‌های اضافی باعث می‌شود که معماری سخت‌افزار پردازنده ساده‌تر شود و تولید آن آسان‌تر و مقرون‌به‌صرفه‌تر باشد.

کاهش مصرف انرژی: حذف بخش‌های قدیمی که به منابع پردازشی نیاز دارند، باعث کاهش مصرف انرژی پردازنده می‌شود و این مزیت برای دستگاه‌های همراه که نیازمند مصرف پایین انرژی هستند، بسیار مؤثر است.

بهبود امنیت پردازنده: با حذف دسترسی‌های غیرضروری و قدیمی، پردازنده بهبودهای امنیتی را به همراه خواهد داشت و این امر باعث افزایش مقاومت در برابر تهدیدهای امنیتی جدید می‌شود.

✍️ نتیجه‌گیری: معماری x86S یک گام مهم در بهینه‌سازی پردازنده‌های اینتل محسوب می‌شود و با هدف ساده‌سازی، بهبود کارایی و امنیت طراحی شده است. این تغییرات به پردازنده‌ها کمک می‌کند تا وابستگی‌های قدیمی را کنار گذاشته و برای پاسخ به نیازهای مدرن و تکنولوژی‌های آینده آماده‌تر شوند. علاوه بر این، تغییرات معماری x86S تاثیرات گسترده‌ای در زمینه‌های زیر خواهد داشت:

🔺 تحلیل باینری: با حذف حالت‌های قدیمی و دستورات اضافی، ابزارهای تحلیل باینری با ساختارهای کمتری روبرو خواهند شد که موجب ساده‌تر شدن تحلیل‌ها می‌شود. این حذف‌های معماری، فرایند درک و بررسی فایل‌های اجرایی را برای تحلیل‌گران باینری سریع‌تر می‌کند و نیاز به بررسی ساختارهای قدیمی کاهش می‌یابد.

🔺 تحلیل بدافزار: یکی از جنبه‌های مهم در تحلیل بدافزار، تشخیص و بررسی رفتارهای مخرب در معماری‌های مختلف است. با حذف حالت‌هایی نظیر vm86 و I/O سطح کاربر، بدافزارهای قدیمی‌تر که به این دسترسی‌ها وابسته بودند به طور مؤثری ناکارآمد می‌شوند. بدافزارهای جدید نیز باید به ساختارهای ساده‌تر شده و حالت‌های محدودتر پردازنده متکی شوند، که باعث کاهش تعداد روش‌های ممکن برای مخفی کردن یا دستکاری رفتارهای بدافزار می‌شود.

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

🔺 توسعه کامپایلر: در معماری x86S، تغییرات در مجموعه دستورات و محدودیت‌های جدید بر کامپایلرها نیز تأثیر خواهد گذاشت. کامپایلرها باید با معماری جدید هماهنگ شوند و از ساختارهای قدیمی که دیگر پشتیبانی نمی‌شوند، استفاده نکنند. در عوض، نیاز به بهینه‌سازی‌های جدید و متناسب با معماری مدرن‌تر افزایش می‌یابد و توسعه‌دهندگان کامپایلر را ملزم می‌سازد تا کدهای تولیدی را برای این ISA جدید بهینه کنند. این موضوع می‌تواند منجر به خروجی‌های باینری سبک‌تر، سریع‌تر و بهینه‌تر شود و در عین حال امنیت کدهای تولیدی را افزایش دهد.

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

✍️ نویسنده میلاد کهساری الهادی
راهبر فنی تیم تحقیقات و توسعه آیو

یکشنبه - ۶ آبان ۱۴۰۳

@aioooir | #isa #intel #x86s
📌 بخش اول: تغییرات ISA پردازنده‌های اینتل در معماری x86s

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

معماری ISA چیست و چرا نیاز به بهینه‌سازی دارد؟ معماری مجموعه‌ دستورالعمل‌ها یا همان Instruction Set Architecture، مجموعه‌ای از دستورالعمل‌هاست که پردازنده‌ها برای اجرای برنامه‌ها و تعامل با سخت‌افزار از آن استفاده می‌کنند. معماری x86 با گذشت زمان بخش‌های مختلفی را برای سازگاری با سیستم‌های قدیمی‌تر اضافه کرده که باعث پیچیدگی، افزایش مصرف انرژی و کاهش کارایی می‌شود. اینتل با ارائه x86S قصد دارد تا با حذف قابلیت‌های غیرضروری و قدیمی، معماری x86 را بهبود بخشیده و بهینه‌سازی کند.

ویژگی‌های x86S: معماری x86S با کاهش بخش‌های قدیمی و سازگاری‌های اضافی، از ساده‌تر شدن کدهای اجرایی، کاهش پیچیدگی‌ها و مصرف منابع بهره می‌برد. این تغییرات شامل موارد زیر است:

حالت‌های اجرایی قدیمی: x86S از حالت‌های اجرایی قدیمی که در معماری‌های پیشین وجود داشتند، همچون حالت واقعی 16 بیتی و حالت محافظت‌شده 32 بیتی صرف‌نظر کرده و پردازنده را به طور دائم در حالت صفحه‌بندی شده قرار می‌دهد. در نتیجه، تنها حالت 64 بیتی و حالت سازگاری 32 بیتی باقی می‌ماند.

حذف حلقه‌های امنیتی پایین‌تر (Ring 1 و Ring 2): حلقه‌های امنیتی 1 و 2 در گذشته برای جدا کردن سطوح مختلف دسترسی در سیستم‌عامل‌ها استفاده می‌شد، اما امروزه بسیاری از سیستم‌عامل‌ها از این حلقه‌ها استفاده نمی‌کنند. حذف این حلقه‌ها باعث کاهش پیچیدگی و بهبود کارایی پردازنده می‌شود.

حذف حالت‌های 32 بیتی و vm86 در Ring 0: حالت vm86 برای پشتیبانی از برنامه‌های قدیمی DOS و 16 بیتی طراحی شده بود. با حذف این حالت‌ها، پردازنده از پشتیبانی مستقیم برنامه‌های قدیمی بی‌نیاز می‌شود و اجرای برنامه‌های مدرن بهینه‌تر خواهد شد.

حذف MTRRهای ثابت: این حذف باعث می‌شود که پردازنده به مدیریت پویا و کارآمدتری از حافظه دسترسی پیدا کند و پردازنده تنها به ساختارهای مدیریت حافظه پویا متکی باشد.

حذف I/O سطح کاربر و رشته‌های I/O: با حذف این موارد، پردازنده نیازمند پشتیبانی از دستورات سطح پایین ورودی و خروجی که در برنامه‌های قدیمی استفاده می‌شدند، نیست. این کار باعث بهبود کارایی و امنیت پردازنده می‌شود.

حذف و بهینه‌سازی کنترل‌ها و بیت‌های اضافی در CR0:
برخی از کنترل‌های اضافی در CR0، مانند Write-Through و بیت‌های کنترل قدیمی FPU که برای پردازنده‌های اولیه طراحی شده بودند، حذف می‌شوند و این باعث کاهش سربار پردازنده و بهینه‌سازی کنترل‌ها می‌شود.

حذف و بهینه‌سازی مکانیزم وقفه‌ها و کنترل‌ها: معماری x86S تنها از x2APIC برای کنترل‌کننده وقفه استفاده می‌کند و از XAPIC و کنترلرهای وقفه قدیمی پشتیبانی نمی‌کند. این تغییرات باعث کاهش مصرف انرژی و بهبود کارایی پردازنده در سیستم‌های چندپردازشی می‌شود.

پشتیبانی محدود از معماری Segmentation: با وجود محدود شدن دسترسی به سگمنت‌های تقسیم‌بندی در حالت 64 بیتی، همچنان دسترسی محدود به FS و GS برای کاربردهای خاص پشتیبانی می‌شود. همچنین، برخی از ویژگی‌های تقسیم‌بندی مانند تغییر حلقه‌ها در دستورهای فراخوانی دوربرد (far call) حذف شده است.

دستورات محدود برای کنترل حالت‌های اجرایی: در معماری x86S، پردازنده نمی‌تواند حالت‌های NX یا SYSCALL یا حالت 64 بیتی را در MSR EFER غیرفعال کند که باعث افزایش امنیت پردازنده می‌شود.

@aioooir | #isa #intel #x86s
📌 سری یادداشت‌های واحد توسعه محصول آیو (نوراویون):

وقتی قرار است عمل IO انجام بدهیم (با هر نوع دیوایسی از قبیل File System یا Socket یا Pipe یا ...) به هر صورت، سرعت IO نسبت به عملیات‌های محاسباتی دیگر که در بطن پردازنده‌ها انجام می‌شوند، کندتر است. این مسئله مخصوصا زمانی که در حال طراحی و توسعه یک درایور هستیم، بسیار اهمیت دارد، زیرا ممکنه ترد برنامه برای اینکه یک کار IO به انتها برسد، مدت طولانی دچار Delay در عملکرد خود شود (و کل برنامه اجالتا هالت شود تا آن عمل IO به پایان برسد).

به هر صورت، در برنامه‌نویسی سطح پایین (مثل نوشتن درایور)، عملیات ورودی/خروجی (IO) به علت ماهیت دیوایس‌های فیزیکی کندتر است. این تفاوت سرعت باعث می‌شود که هنگام اجرای IO، ترد برنامه در حالت انتظار (Blocking) قرار بگیرد یا موجب ایجاد گلوگاه در عملکرد برنامه شود.

به همین دلیل، برنامه‌نویسان به ویژه در ویندوز از رویکرد Asynchronous یا Overlapped IO استفاده می‌کنند. در این روش، سیستم بدون توقف ترد اصلی، عملیات IO را در پس‌زمینه انجام می‌دهد. به محض اتمام، از طریق فراخوانی یک تابع Callback مثل IoCompletedRoutine، برنامه را مطلع می‌کند. در آزمایشگاه آیو، این روش یکی از پایه‌های اصلی توسعه محسوب می‌شود.

به عنوان مثال، در ویندوز 11، برای اجرای Asynchronous IO، دیوایس باید با فلگ FILE_FLAG_OVERLAPPED باز شود. این فلگ امکان اجرای درخواست‌ها در پس‌زمینه را فراهم کرده و به برنامه اجازه می‌دهد ترد اصلی را مشغول به کار نگه دارد. زمانی که IO تمام شد، یا با فراخوانی Callback مشخص، و یا از طریق یک Event، برنامه از اتمام کار آگاه می‌شود.

علاوه بر ویندوز، سیستم‌عامل لینوکس نیز از IO غیرهم‌زمان یا همان Asynchronous IO پشتیبانی می‌کند، اما از مکانیزم متفاوتی به نام epoll و select یا aio استفاده می‌کند. با این حال، به منظور حل این چالش، یکی از رایج‌ترین روش‌ها در لینوکس، استفاده از epoll است که برای مدیریت تعداد زیادی از عملیات IO به‌طور هم‌زمان طراحی شده است.

شایان ذکر است، ویندوز 11 با تمرکز بیشتر روی Parallelism و کارایی در پردازش‌های Asynchronous، ساختار System Message Queue و Thread Queue را بهبود بخشیده است. حالا هر ترد که عملیاتی از نوع GDI/USER32 را آغاز می‌کند، دارای یک Thread Queue خاص خواهد بود که ارتباطات و پیغام‌های سیستمی را پردازش می‌کند. با این رویکرد، نه تنها امکان اجرای هم‌زمان عملیات‌های متعدد فراهم می‌شود، بلکه کارایی و سرعت پاسخگویی سیستم نیز بهبود یافته است.

شایان ذکر است، در ویندوز، هر IRP (IO Request Packet) معمولی باید از تمام درایورهای موجود در مسیر عبور کند تا در نهایت توسط یک درایور (معمولاً پایین‌ترین درایور) پردازش شود. اگر درایوری قصد داشته باشد تنها یک IRP را به یک درایور خاص ارسال کند، از Non-queued IRP بهره می‌برد. این روش در عملکرد تاثیر بسزایی دارد، زیرا از صف‌های سیستمی و صف‌های تردها عبور نکرده و مستقیم به پردازش مربوطه می‌پردازد.

✍️ خلاصه فنی: رویکرد Overlapped IO در ویندوز و مکانیزم epoll در لینوکس، هر دو با هدف بهبود کارایی و کاهش تاخیر عملیات IO طراحی شده‌اند. این مکانیزم‌ها در کنار تفاوت‌هایشان، هدف مشترک افزایش کارایی و بهینه‌سازی سیستم برای اجرای هم‌زمان درخواست‌های IO رادارند. در ویندوز، استفاده از فلگ FILE_FLAG_OVERLAPPED و توابعی مانند ReadFileEx، امکان مدیریت IO غیرهم‌زمان را به روشی ساده و بهینه فراهم کرده است. در لینوکس، با استفاده از epoll و توابعی مانند read به‌صورت غیرهم‌زمان، این امکان به توسعه‌دهندگان داده شده تا در برنامه‌هایی که نیازمند کارایی بالا هستند، IO را به شکل موازی مدیریت کنند. با این روش‌ها، نه تنها کارایی سیستم بهبود یافته، بلکه پاسخگویی برنامه‌ها در پردازش‌های IO نیز به میزان چشمگیری افزایش پیدا کرده است.

✍️ نویسنده میلاد کهساری الهادی
راهبر فنی تیم تحقیقات و توسعه آیو


یکشنبه - ۶ آبان ۱۴۰۳

@aioooir | #xdr #io #async #sync
Goodbye brother!

@aioooir | #hero #rip
📌 سری یادداشت‌های واحد توسعه محصول آیو (نوراویون):

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

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

✳️ همزمانی (Concurrency): در سیستم‌های XDR، همزمانی به سیستم اجازه می‌دهد چندین لاگ را به‌صورت همزمان دریافت و مدیریت کند. در این حالت، همزمانی به سیستم امکان پردازش لاگ‌های مختلف را می‌دهد و این فرآیند را بدون نیاز به انتظار برای تکمیل یک لاگ، به‌سرعت و در جریان نگه می‌دارد.

موازی‌سازی (Parallelism): موازی‌سازی به XDR اجازه می‌دهد لاگ‌های ورودی را به‌طور همزمان و موازی پردازش کند، که در پردازنده‌های چند هسته‌ای اهمیت دوچندان پیدا می‌کند. در این حالت، هر هسته یا ترد می‌تواند مجموعه‌ای از لاگ‌ها را به‌صورت همزمان تحلیل کند، تا از طریق تکنیک‌های یادگیری ماشین، الگوهای تهدیدات احتمالی را شناسایی کند.

❇️ تفاوت با یک مثال واقعی: فرض کنید سیستم Ai000 Open XDR هر ثانیه هزاران لاگ از منابع مختلف دریافت می‌کند. به‌جای پردازش ترتیبی، چگونه می‌توان از همزمانی و موازی‌سازی برای افزایش سرعت استفاده کرد؟

همزمانی: سیستم AOX می‌تواند لاگ‌های ورودی از منابع مختلف را همزمان دریافت و مدیریت کند و بدون نیاز به انتظار برای پردازش کامل، به تحلیل آن‌ها با استفاده از تردهای مجزا بپردازد.

موازی‌سازی: سیستم AOX می‌توانند در زیرساخت‌های دارای پردازنده‌های چند هسته‌ای به‌طور همزمان بخش‌هایی از لاگ‌ها را پردازش کنند و با تحلیل موازی با استفاده از OMP کارایی سیستم را بهینه کنند.

✍️ خلاصه فنی: در سیستم‌های XDR با بهره‌گیری از هوش مصنوعی و یادگیری ماشین، همزمانی و موازی‌سازی در پردازش لاگ‌ها نقشی حیاتی دارند. همزمانی امکان دریافت و مدیریت لاگ‌ها را به‌صورت همزمان فراهم می‌کند، در حالی که موازی‌سازی به کمک پردازنده‌های چند هسته‌ای، لاگ‌ها را به‌صورت واقعی و همزمان تحلیل و پردازش می‌کند.

✍️ نویسنده میلاد کهساری الهادی
راهبر فنی تیم تحقیقات و توسعه آیو


جمعه - ۴ آبان ۱۴۰۳

@aioooir | #xdr #concurrency #parallelism
همانطور که در یکی از پست‌های آیو درباره مسئله اجماع صحبت شد، در این پست می‌خواهیم کمی این مسئله را بازتر و البته ویژوال کنیم. مسئله اجماع در شبکه بیتکوین به عنوان یکی از چالش‌های اصلی در سیستم‌های توزیع‌شده مطرح است.

برای درک این مسئله، باید متوجه شویم که در شبکه‌هایی مانند بیتکوین، صدها یا هزاران نود (گره) توزیع شده وجود دارند که باید در مورد وضعیت زنجیره (بلاکچین) به یک اجماع برسند. این اجماع به معنای توافق جمعی درباره تراکنش‌ها و بلاک‌های جدید است.

این فرآیند اجماع از طریق الگوریتم‌های اجماع مانند اثبات کار (Proof of Work) انجام می‌شود. مسئله‌ی اجماع به دلیل نامتمرکز بودن و وجود گره‌های بالقوه مخرب و ارتباطات ناپایدار سخت است و دارای چالش‌های زیادی است.

همچنین، این مسئله در نظریه‌ی سیستم‌های توزیع‌شده به عنوان مشکلی مشابه مسئله‌ی ژنرال‌های بیزانسی مطرح شده است. برای اینکه این مسئله کمی برای ما ملموس شود، ابتدا، تراکنش‌ها و بلاک‌های ساده‌ای را شبیه‌سازی می‌کنیم که نشان دهد هر گره در شبکه چه کاری انجام می‌دهد.

تصویر 1، گراف شبکه بیتکوین را با گره‌ها و بلاک‌های ماین شده نشان می‌دهد. برای این نمایش، یک گراف شبکه با 10 گره ایجاد کرده‌ایم که از مدل تصادفی Erdos-Renyi استفاده می‌کند. این مدل احتمال اتصال بین هر دو گره را به صورت تصادفی با احتمال 0.4 تعیین می‌کند. هر گره به صورت تصادفی ماینر یک بلاک است و تراکنش‌ها در بلاک‌ها ثبت شده‌اند.

تصویر 2 با عنوان Faulty Nodes گره‌های مخرب را نشان می‌دهد که ممکن است با اعلام بلاک‌های اشتباه باعث اختلال در فرآیند اجماع شوند. این چالش یکی از مشکلات مهم در شبکه‌های توزیع شده مانند بیتکوین است.

تصویر 3 نمایش‌دهنده گره‌ای است که زودتر از سایرین موفق به حل مسئله اثبات کار شده و اجماع را به دست می‌آورد. این گره با رنگ سبز نمایش داده می‌شود.

بنابراین، کد و توضیحات هر دو به خوبی بیانگر این هستند که چرا مسئله اجماع در بیتکوین خصوصاً به دلیل وجود گره‌های مخرب و شبکه‌های نامتمرکز پیچیده است.

@aioooir | #breakthoughs_issues #research
یکی از مباحث جذاب علم، مسئله بعُد چهارم و ریاضیات مطرح در این بُعد است. اخیرا یک ویدیو در این زمینه مشاهده کردم که در آن Lisa Piccirillo در دانشگاه هاروارد به ریاضیات این حوزه می‌پردازد. او به شکل‌ها و پدیده‌های غیرمعمول در بُعد چهارم اشاره می‌کند و به بررسی توپولوژی در بُعدهای بالا (خصوصاً بُعد ۴) می‌پردازد. در ادامه، خلاصه‌ای از نکات مهم و زمان‌های کلیدی ویدیو را آورده‌ام:

1. مقدمه (00:00): در ابتدای ویدیو، لیزا پیکیریلو به‌طور خلاصه مقدمه‌ای بر توپولوژی و ریاضیات بُعدی ارائه می‌دهد. او توضیح می‌دهد که توپولوژی در مورد خواص فضایی است که تحت تغییرات پیوسته (مانند کشش یا پیچش) تغییر نمی‌کنند.

2. توپولوژی در بُعدهای بالا (02:00): در این بخش، او به اهمیت توپولوژی در بُعدهای بالاتر (به‌ویژه بُعد ۴) اشاره می‌کند. توضیح می‌دهد که چگونه اشیاء توپولوژیکی در بُعد ۴ ویژگی‌های متفاوت و منحصربه‌فردی نسبت به بُعدهای پایین‌تر دارند. همچنین، از "ساختارهای عجیب" در بُعد ۴ سخن می‌گوید که به عنوان مانیفولدهای اگزوتیک شناخته می‌شوند.

3. گره‌زنی چهار بُعدی (10:00): یکی از موضوعات کلیدی که پیکیریلو به آن اشاره می‌کند، مفهوم گره‌ها در بُعد ۴ است. او توضیح می‌دهد که چگونه گره‌های چهار بُعدی با گره‌های سه بُعدی که در فضا می‌شناسیم تفاوت دارند. این بخش به بررسی این می‌پردازد که چگونه گره‌ها در بُعد ۴ می‌توانند دارای رفتارهای غیرمعمولی باشند که در بُعدهای پایین‌تر مشاهده نمی‌شود.

4. حل مساله گره کانوی (20:00): در یکی از جذاب‌ترین بخش‌های ویدیو، او به حل مسئله مشهور Conway Knot می‌پردازد. او توضیح می‌دهد که چگونه توانسته است این مسأله مهم و دیرینه در توپولوژی گره‌ها را حل کند. این گره به عنوان یک گره ۱۱ نقطه‌ای شناخته می‌شود که ویژگی‌های خاصی دارد و به مدت دهه‌ها ریاضی‌دانان را به چالش کشیده بود.

5. مانندفولدهای اگزوتیک و نتیجه‌گیری (35:00): در بخش پایانی ویدیو، پیکیریلو به بحث در مورد مانندفولدهای اگزوتیک در بُعد ۴ بازمی‌گردد و اینکه چگونه این پدیده‌ها باعث می‌شوند بُعد چهارم بسیار متفاوت از بُعدهای دیگر باشد. او توضیح می‌دهد که این پدیده‌ها به ما درک عمیق‌تری از جهان‌های چندبُعدی می‌دهند و اینکه همچنان مسائل حل نشده زیادی در این زمینه باقی مانده است.

لینک: https://www.youtube.com/watch?v=BXwALAkPubc

این ویدیو، به زبان ساده، پدیده‌های پیچیده توپولوژی چهار بُعدی را تشریح می‌کند و بینشی از کارهای بزرگ ریاضی در این حوزه را به مخاطبان می‌دهد. اگر به ریاضیات پیشرفته علاقه دارید، این سخنرانی بسیار جذاب خواهد بود. در ادامه مسیر خود در Unlocking Machine سعی خواهم کرد به همه این مسائل از جنبه علم و ریاضیات بپردازم.

@aioooir | #unlocking_machine #mathematics
📌 سری یادداشت‌های واحد توسعه محصول آیو (نوراویون):

یک سری نکات در مورد اینتراپت 2d وجود دارد که بسیار از منظر توسعه محصول اهمیت دارد. وقتی int 2D اجرا می‌شود، سیستم از آدرس درون ثبات EIP به عنوان Exception Address استفاده می‌کند و آن را یک واحد افزایش خواهد داد. بعد هم اگر دیباگری وجود داشته باشد، EXCEPTION_BREAKPOINT را تولید می‌کند، اگر هم دیباگری وجود نداشت هم که هیچ چیزی تولید نخواهد شد (منظور از وجود دیباگر، پیوست آن به پروسه است).

به همین دلیل رفتار اینتراپت 2D، می‌توان با استفاده از آن به وجود دیباگر پی‌برد و علاوه بر توسعه محصول، به عنوان Anti-Debugging توسط توسعه‌دهندگان بدافزار استفاده شود. در حقیقت از آن برای اهداف مخرب سوء استفاده می‌شود. با این حال، فرض کنید، یک برنامه بسیار خاص داریم که عملکرد آن برای ما خیلی مهم هست و قرار است یک جایی روی سیستم یک مشتری یا یک سازمان یا هر چیزی استفاده شود. مثلا Ai000 Open XDR را در نظر بگیرید.

یکی از امکاناتی که در برنامه Ai000 Open XDR وجود دارد این است که وقتی مثلا یک Runtime Anomaly اتفاق افتاد، int 2D اجرا می‌شود که اگر دیباگری وجود داشت، آدرس Exception را بردارد و سپس تحلیلگر به آن آدرس رجوع کند تا متوجه شود چه اتفاقی رخ داده است (چون همانطور که ذکر شد، int 2D آدرس موجود در EIP رو به عنوان Exception Address اعلام می‌کند). این مکانیزم برای پاسخگویی سریع به مشکلات مشتریان در نظر گرفته شده است.

در این شرایط، وقتی یک سازمان مشتری تماس بگیرد که محصول در زمان اجرا و در محیط عملیاتی دارای مشکل است، شخص ریسپاندر می‌تواند با کمک این مکانیزم در محیط حاضر شود و با استفاده از یک دیباگر مسئله را از نزدیک تحلیل کند. اگر هم دیباگر به برنامه Attach نشده باشد، محصول Ai000 Open XDR رفتار عادی نشان می‌دهد و هیچ تفاوتی با اجرای عادی نخواهد داشت.

در واقع این مکانیزم در Ai000 Open XDR به ما شرایط Live Debugging در سیستم‌های همیشه در حال اجرا و بدون وقفه ارائه می‌دهد. بنابراین در این محصول که ماهیت خیلی حساس دارد، چند لایه مکانیزم تحلیل و اشکال‌زدایی در نظر گرفته شده است تا برای مواقعی که نیاز به رفع اشکال هست. این موارد به شرح زیر هستند:

1. اولین لایه مکانیزم لاگ هست.

2. دومین لایه مکانیزم Debug Message است که وقتی یک دیباگر یا مثلا DbgView.exe در حال اجرا بود، یک سری اطلاعات در کنسول چاپ شود و اگر هم چنین چیزی در حال اجرا نبود که کاربر اصلا پیغام رو دریافت نخواهد کرد.

3. سومین لایه مکانیزم Debug تعاملی است که فقط یک طرفه برنامه چیزی را در خروجی چاپ نکند، بلکه بشود در شرایط از پیش تعریف شده، با وقوع آن شرایط، در دیباگر آن برنامه متوقف شود و تحلیلگر بتواند تحلیل انجام بدهد.

4. چهارمین لایه مکانیزم‌های Profiling و امثالهم است.

5. پنجمین لایه مکانیزم Try/Catch و Try/Except است که در زبان‌های برنامه‌نویسی مثل Cpp یا حتی Windows API تعریف شده است.

6. ششمین لایه استفاده از مکانیزم‌های RPC است که در محیط آزمایشگاهی توسعه محصول استفاده می‌شود.

در هر صورت، هیچ محصولی در نگاه اول نمی‌تواند بدون مشکل و ضعف باشد از همین روی، در هنگام توسعه باید انواع رویکردها را برای Fast Response در نظر گرفت تا اگر محصول دچار مشکل در محیط مشتری شد، شناسایی و به سرعت رفع شود. در تمامی محصولات واحد توسعه Ai000 (نوراویون) این موارد به عنوان Best Practice استفاده می‌شود.

✍️ نویسنده میلاد کهساری الهادی
راهبر فنی تیم تحقیقات و توسعه آیو


سه شنبه - ۱ آبان ۱۴۰۳

@aioooir | #developunit #xdr #dlp
Telegram Center
Telegram Center
Channel