Stuff for Geeks
این خط کدو همیشه بذارین اول برنامههای C/C++ تون: printf(argv[10]); به وارنینگ کامپایلرهم توجه نکنین. فلگ w- میتونه وارنینگارو مخفی کنه
درین مورد
توی باینری یه آسیبپذیری داریم به اسم format string که البته خود کامپایلر وارنینگ میده براش.
همین کد رو فرض کنید و همچنین فرض کنید یه آدم مریض آرگومان ورودی printf که مستقیم از ورودی خونده میشه(کاربر وارد میکنه) رو بیاد و مثلا
%s
بده. همونطور که میدونین printf به عنوان اولین پارامتر ورودی انتظار داره یه فرمت استرینگ بگیره
حالا اگه اتکر همونطور که گفتیم توی ورودی
%d
یا موارد این چنینی بده، کد به شکل زیر تبدیل میشه:
printf("%d");
تابع printf که فقط یه استرینگ فرمت ورودی داره، دنبال ورودی دوم(که اینجا یه اینتیجر هست) میگرده تا چاپش کنه ولی این پارامتر توی استک نیست و اینجاست که باعث میشه بتونیم محتوای استک رو بخونیم!
اگه فرض کنیم سیستم x86 باشه، موقع صدا زدن یه تابع، توی استک به ترتیب پارامترهای اون از راست به چپ، آدرسِ اینستراکشنِ بعد از call، رجیستر ebp فعلی و نهایتا متغیرهای لوکال اون فانکشن پوش میشن.
حالا اگه printf بخواد یه پارامتری که به تابع پاس داده نشده رو بخونه، میره و استکی که نباید رو میخونه.
اینکار خب خطرات زیادی داره
مثلا میتونه باعث لورفتن پارامترهای تابع یا بدتر از اون لورفتن stack canary value بشه که خب شدیدا خطریه
پس هیچ وقت ورودی کاربر رو مستقیم به printf ندین (هرچند الان خیلی بعیده کسی برای یه محصول جدی سی کد بزنه😬)
#binary
#reverse_engineering
توی باینری یه آسیبپذیری داریم به اسم format string که البته خود کامپایلر وارنینگ میده براش.
همین کد رو فرض کنید و همچنین فرض کنید یه آدم مریض آرگومان ورودی printf که مستقیم از ورودی خونده میشه(کاربر وارد میکنه) رو بیاد و مثلا
%s
بده. همونطور که میدونین printf به عنوان اولین پارامتر ورودی انتظار داره یه فرمت استرینگ بگیره
حالا اگه اتکر همونطور که گفتیم توی ورودی
%d
یا موارد این چنینی بده، کد به شکل زیر تبدیل میشه:
printf("%d");
تابع printf که فقط یه استرینگ فرمت ورودی داره، دنبال ورودی دوم(که اینجا یه اینتیجر هست) میگرده تا چاپش کنه ولی این پارامتر توی استک نیست و اینجاست که باعث میشه بتونیم محتوای استک رو بخونیم!
اگه فرض کنیم سیستم x86 باشه، موقع صدا زدن یه تابع، توی استک به ترتیب پارامترهای اون از راست به چپ، آدرسِ اینستراکشنِ بعد از call، رجیستر ebp فعلی و نهایتا متغیرهای لوکال اون فانکشن پوش میشن.
حالا اگه printf بخواد یه پارامتری که به تابع پاس داده نشده رو بخونه، میره و استکی که نباید رو میخونه.
اینکار خب خطرات زیادی داره
مثلا میتونه باعث لورفتن پارامترهای تابع یا بدتر از اون لورفتن stack canary value بشه که خب شدیدا خطریه
پس هیچ وقت ورودی کاربر رو مستقیم به printf ندین (هرچند الان خیلی بعیده کسی برای یه محصول جدی سی کد بزنه😬)
#binary
#reverse_engineering
Stuff for Geeks
درین مورد توی باینری یه آسیبپذیری داریم به اسم format string که البته خود کامپایلر وارنینگ میده براش. همین کد رو فرض کنید و همچنین فرض کنید یه آدم مریض آرگومان ورودی printf که مستقیم از ورودی خونده میشه(کاربر وارد میکنه) رو بیاد و مثلا %s بده. همونطور که…
Telegram
Stuffs for Geeks
دعوت از جامعهی IT مخصوصا متخصصان و مدرسان حوزهی امنیت و لینوکس برای داوری و بیان مشکلات کارم
امسال تجربهی جالبی در زمینهی تدریس یک دوره با شرکت SITS «زیرساخت امن خدمات تراکنشی بانک ملت» داشتم که سوالات و ابهامات زیادی برایم ایجاد کرد که باعث شد تصمیم…
امسال تجربهی جالبی در زمینهی تدریس یک دوره با شرکت SITS «زیرساخت امن خدمات تراکنشی بانک ملت» داشتم که سوالات و ابهامات زیادی برایم ایجاد کرد که باعث شد تصمیم…
یه چیز جالب که موقع بررسی کد اسمبلی دیدم اینه که شما فرض کنید یه کلاس A داریم که یه تابع داره به اسم func که هیچ پارامتر ورودیای نداره.
یه آبجکت ازین کلاس ساختیم به اسم obj_a و این تابع از کلاس رو با این آبجکت صدا میزنیم:
obj_a.func()
بنظرتون پارامتری به تابع پاس داده شده؟
جواب بله هست!
آدرس شیئ همیشه پاس داده میشه.
درواقع بیاین از دید سیپییو و اسمبلی به کد نگاه کنیم. توی اسمبلی که کلاس و شیئگرایی معنی نمیده. پس من چجوری باید فرق بین دوتا آبجکت رو بفهمم؟
خب این قسمتش سادست
همونطور که توی سی هم داشتیم، صرفا متغیرهای کلاس رو پشت سرهم(با احتمالا یه سری alignment ها) یه آبجکت میگیریم (توجه کنید که access midifier ها هم توی اسمبلی معنیای ندارن و فقط کامپایلره که وظیفهٔ هندل کردنشون رو داره).
پس اینجوری یه چیزی شبیه به مفهموم آبجکت داریم و هربار یه تابع از یه آبجکت رو کال میکنیم، آدرس خود آبجکت اولین پارامتر اون تابع میشه.
مشکل یکم سختتر با polymorphism پیش میاد. وقتی که شما یه آبجکت دارین که یه تابع رو override کرده چجوری میشه این رو توی اسمبلی جا داد؟
اینجاست که vtable ها بکار میان...
#reverse_engineering
#programming
یه آبجکت ازین کلاس ساختیم به اسم obj_a و این تابع از کلاس رو با این آبجکت صدا میزنیم:
obj_a.func()
بنظرتون پارامتری به تابع پاس داده شده؟
جواب بله هست!
آدرس شیئ همیشه پاس داده میشه.
درواقع بیاین از دید سیپییو و اسمبلی به کد نگاه کنیم. توی اسمبلی که کلاس و شیئگرایی معنی نمیده. پس من چجوری باید فرق بین دوتا آبجکت رو بفهمم؟
خب این قسمتش سادست
همونطور که توی سی هم داشتیم، صرفا متغیرهای کلاس رو پشت سرهم(با احتمالا یه سری alignment ها) یه آبجکت میگیریم (توجه کنید که access midifier ها هم توی اسمبلی معنیای ندارن و فقط کامپایلره که وظیفهٔ هندل کردنشون رو داره).
پس اینجوری یه چیزی شبیه به مفهموم آبجکت داریم و هربار یه تابع از یه آبجکت رو کال میکنیم، آدرس خود آبجکت اولین پارامتر اون تابع میشه.
مشکل یکم سختتر با polymorphism پیش میاد. وقتی که شما یه آبجکت دارین که یه تابع رو override کرده چجوری میشه این رو توی اسمبلی جا داد؟
اینجاست که vtable ها بکار میان...
#reverse_engineering
#programming
🔥2
برادر با چند esp32 یک آرایه فازی از آنتنها ساخته و سیگنال وایفای را مکانیابی مینماید:
https://youtu.be/sXwDrcd1t-E
https://youtu.be/sXwDrcd1t-E
YouTube
This ESP32 Antenna Array Can See WiFi
More information is available on the project website of the ESP32 antenna array "ESPARGOS": https://espargos.net/
Source code for Python library + demos: https://github.com/ESPARGOS/pyespargos (directory "demos/camera" for "WiFi camera" demo)
As a research…
Source code for Python library + demos: https://github.com/ESPARGOS/pyespargos (directory "demos/camera" for "WiFi camera" demo)
As a research…
👍1
Stuff for Geeks
درمورد الکترومغناطیس و موج پست بذارم؟
خب چون مشارکت کم بود و نسبتا تعداد نه ها هم زیاد بود چندتا امتحانی میذارم ببینم فیدبکا چجوریه
اول از همه باید با قانون گاوس آشنا بشیم
فرض کنین یه تعداد بار الکتریکی که مجموعا بار Q دارن، داشته باشیم (اگه یه حجم بار باشه باید انتگرال گرفته شه). جناب گاوس میگه که تحت این شرایط اگه بیایم و دور این بار یه سطح بسته(aka سطح گاوسی) درنظر بگیریم و مجموع ضرب داخلیِ میدانِ الکتریکیِ در نقاط این سطح در یک سطح دیفرانسیلی کوچیک رو حساب کنیم باید به Q/ε برسیم. برای ضرب داخلی باید دو بردار داشته باشیم. اولیش که میدان الکتریکیه که خب تو هر نقطه از فضا برداره و دومین بردار یه برداریه که اندازش مساحت اون سطح دیفرانسیلیه و جهتش رو به بیرون سطح گاوسیمونه.
شهود این انتگرال اگه میدان الکتریکی رو بدونیم، خیلی سخت نیست. فرض کنین یه منبع نقطهای از یه سیال(مثلا آب) تو فضا داشته باشیم. اگه یه سطح بسته دور این منبع بگیریم و مجموع آب خارج شده از این سطح رو حساب کنیم، کاری رو کردیم که انتگرال و درواقع قانون گاوس انجام میده.
ازونجایی که میدان الکتریکی رابطهٔ مستقیم با اندازهٔ بارمون داره(در یه فاصلهٔ ثابت از بار)، پس باید انتظار داشته باشیم که این انتگرال اگه رو سطح یه کره حساب بشه(خاصیت سطح کره اینه که فاصلهٔ یکسان و برابر از بارمون داره)، به یه ضریبی از Q برسیم که خب رسیدیم!
درواقع با فرض همین کره، میشه میدان یک بار رو در فاصلهٔ r ازش حساب کرد که همونطور که توی فیزیک یازدهم و فیزیک یک داشتیم میشه:
E = q/(4πε.r^2)
مخرج کسر بالا دقیقا مساحت کُرمونه که شعاعش r بوده!
#electromagnetics
فرض کنین یه تعداد بار الکتریکی که مجموعا بار Q دارن، داشته باشیم (اگه یه حجم بار باشه باید انتگرال گرفته شه). جناب گاوس میگه که تحت این شرایط اگه بیایم و دور این بار یه سطح بسته(aka سطح گاوسی) درنظر بگیریم و مجموع ضرب داخلیِ میدانِ الکتریکیِ در نقاط این سطح در یک سطح دیفرانسیلی کوچیک رو حساب کنیم باید به Q/ε برسیم. برای ضرب داخلی باید دو بردار داشته باشیم. اولیش که میدان الکتریکیه که خب تو هر نقطه از فضا برداره و دومین بردار یه برداریه که اندازش مساحت اون سطح دیفرانسیلیه و جهتش رو به بیرون سطح گاوسیمونه.
شهود این انتگرال اگه میدان الکتریکی رو بدونیم، خیلی سخت نیست. فرض کنین یه منبع نقطهای از یه سیال(مثلا آب) تو فضا داشته باشیم. اگه یه سطح بسته دور این منبع بگیریم و مجموع آب خارج شده از این سطح رو حساب کنیم، کاری رو کردیم که انتگرال و درواقع قانون گاوس انجام میده.
ازونجایی که میدان الکتریکی رابطهٔ مستقیم با اندازهٔ بارمون داره(در یه فاصلهٔ ثابت از بار)، پس باید انتظار داشته باشیم که این انتگرال اگه رو سطح یه کره حساب بشه(خاصیت سطح کره اینه که فاصلهٔ یکسان و برابر از بارمون داره)، به یه ضریبی از Q برسیم که خب رسیدیم!
درواقع با فرض همین کره، میشه میدان یک بار رو در فاصلهٔ r ازش حساب کرد که همونطور که توی فیزیک یازدهم و فیزیک یک داشتیم میشه:
E = q/(4πε.r^2)
مخرج کسر بالا دقیقا مساحت کُرمونه که شعاعش r بوده!
#electromagnetics
❤3👎1
کتاب سورسی که فک کنم همه دانشگاهها حداقل تو ایران از روش این مباحث تدریس میشه کتاب آقای چنگ هست:
David K.Cheng
Field and wave Electromagnetics
David K.Cheng
Field and wave Electromagnetics
لینوکس api و مموری
فرض کنید تو یه سیستم لینوکسی لازم داریم کل مموری سیستم یا مثلا مموری در دسترس و آزاد یا مموری مصرف شده رو توی یه برنامه(احتمالا c/c++) پیدا کنیم.
چه باید کرد؟
باید از هدر sys/sysinfo.h استفاده کنیم.
(کلا دایرکتوری مجازی
/sys
اینجور اطلاعات و اطلاعات سختافزارهای سیستم رو داره)
میتونین به man page این فایل مراجعه کنید ولی کلیتش اینه که یه تابع به اسم sysinfo و یه استراکچر به همین اسم توی این هدر تعریف میشن و خیلی ساده میتونین اطلاعات مموری رو پیدا کنین:
struct sysinfo info;
sysinfo(&info);
با این دو خط، اطلاعات توی متغیر info ذخیره میشن.
خوبه این استراکچر رو ببینیم:
حالا میتونین هر فیلدی رو خواستید بردارید و استفاده کنید. مثلا برای پیدا کردن سایز کل مموری(برحسب بایت):
cout<<info.totalram*info.mem_unit;
#programming
#linux
#system_programming
فرض کنید تو یه سیستم لینوکسی لازم داریم کل مموری سیستم یا مثلا مموری در دسترس و آزاد یا مموری مصرف شده رو توی یه برنامه(احتمالا c/c++) پیدا کنیم.
چه باید کرد؟
باید از هدر sys/sysinfo.h استفاده کنیم.
(کلا دایرکتوری مجازی
/sys
اینجور اطلاعات و اطلاعات سختافزارهای سیستم رو داره)
میتونین به man page این فایل مراجعه کنید ولی کلیتش اینه که یه تابع به اسم sysinfo و یه استراکچر به همین اسم توی این هدر تعریف میشن و خیلی ساده میتونین اطلاعات مموری رو پیدا کنین:
struct sysinfo info;
sysinfo(&info);
با این دو خط، اطلاعات توی متغیر info ذخیره میشن.
خوبه این استراکچر رو ببینیم:
struct sysinfo { long uptime; /* Seconds since boot */ unsigned long loads[3]; /* 1, 5, and 15 minute load averages */ unsigned long totalram; /* Total usable main memory size */ unsigned long freeram; /* Available memory size */ unsigned long sharedram; /* Amount of shared memory */ unsigned long bufferram; /* Memory used by buffers */ unsigned long totalswap; /* Total swap space size */ unsigned long freeswap; /* Swap space still available */ unsigned short procs; /* Number of current processes */ unsigned long totalhigh; /* Total high memory size */ unsigned long freehigh; /* Available high memory size */ unsigned int mem_unit; /* Memory unit size in bytes */ char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding to 64 bytes */ };حالا میتونین هر فیلدی رو خواستید بردارید و استفاده کنید. مثلا برای پیدا کردن سایز کل مموری(برحسب بایت):
cout<<info.totalram*info.mem_unit;
#programming
#linux
#system_programming
Forwarded from OnHex
🔴 یک گروه هکری بنام Codebreakers مدعی هک بانک سپه شد.
در تاریخ 14 مارس، 72 ساعت فرصت دادن تا بانک سپه با پرداخت 42 میلیون دلار، جلوی فروش داده ها رو بگیره. یکبار هم 20 مارس فرصت 72 ساعته دادن. در نهایت 24 مارس اعلام کردن که فرصت تموم شده و داده ها رو برای فروش در فرومهای مختلف میزارن.
کانال واتسآپ و پیج اینستاگرام و آدرس بیت کوین هم گذاشتن. همچنین گفتن که داده ها رو در مارکتهایی مانند AlphaBay و ... میزارن .
فعلا بانک سپه، واکنشی به این خبر نداشته.
#هک #سپه #ایران
🆔 @onhex_ir
➡️ ALL Link
بیش از 12 ترابایت داده شامل میلیاردها رکورد دیتا بیس اطلاعات مالی و هویتی و سکونتی 42 میلیون مشتری بانک سپه ایران از سال 1304 الی 1404 توسط این گروه هک و آماده برای فروش می باشد
🏴☠️حاوی اطاعات اشخاص عادی و نظامی
پرسنل ستاد کل نیروهای مسلح، سپاه پاسداران ، نیروی انتظامی، وزارت دفاع و پشتیبانی ، پرسنل ارتش ، نیروی مقاومت بسیج ، صندوق بازنشستگی نیروهای مسلح، پرسنل سازمان هوا و فضا، پرسنل سازمان انرژی اتمی به انضمام کلیه نهادها و شرکت های وابسته به هر سازمان
در تاریخ 14 مارس، 72 ساعت فرصت دادن تا بانک سپه با پرداخت 42 میلیون دلار، جلوی فروش داده ها رو بگیره. یکبار هم 20 مارس فرصت 72 ساعته دادن. در نهایت 24 مارس اعلام کردن که فرصت تموم شده و داده ها رو برای فروش در فرومهای مختلف میزارن.
کانال واتسآپ و پیج اینستاگرام و آدرس بیت کوین هم گذاشتن. همچنین گفتن که داده ها رو در مارکتهایی مانند AlphaBay و ... میزارن .
فعلا بانک سپه، واکنشی به این خبر نداشته.
#هک #سپه #ایران
🆔 @onhex_ir
➡️ ALL Link
Stuff for Geeks
اول از همه باید با قانون گاوس آشنا بشیم فرض کنین یه تعداد بار الکتریکی که مجموعا بار Q دارن، داشته باشیم (اگه یه حجم بار باشه باید انتگرال گرفته شه). جناب گاوس میگه که تحت این شرایط اگه بیایم و دور این بار یه سطح بسته(aka سطح گاوسی) درنظر بگیریم و مجموع ضرب…
خب این حقیقت فیزیک دو بود
توی الکترومغناطیس، این قانون گاوس رو توی یک حجم خیلی کوچیک مینویسن و این انتگرال تبدیل میشه به چیزی به اسم دیورژانس. یعنی با میل دادن اون حجم به صفر، به قانون نقطهای گاوس میرسیم:
∇.E = ρ
این رابطه میگه که چگالی بار توی یک نقطه، همون دیورژانس E در اون نقطست.
به طرز مشابه، قانون آمپر رو داریم که میدان مغناطیسی رو در فضا بر حسب جریان گذرنده از یک سطح میده. درواقع این قانون میگه اگه یه خم بسته در فضا در نظر بگیریم و جریان گذرنده از این خم I باشه، میدان مغناطیسی از رابطهای مشابه با قانون گاوس به شکل زیر محاسبه میشه:
∫ B.dl = μI
دقت کنید که توی قانون گاوس، مجموع میدان خارج شده از سطح یک کره رو میگرفتیم ولی اینجا جریان گذرنده از یک خم بسته رو داریم (سطح مقطع مثلا).
برای این قانون هم فرم نقطهای زیر با میل دادن دایره به صفر بدست میاد:
∇×B = J
"کرل میدان مغناطیسی برابر چگالی جریان است."
دوتا نکته رو اینجا توجه کنین. اول اینکه این پست و پست قبل شرایط الکترواستاتیک و مگنتواستاتیک هستن. یعنی یا فقط یک بار ثابت داریم که میدان الکتریکی ثابت داره یا یک جریان دائم که فقط میدان مغناطیسی تولید میکنه. در حالت کلی اینجوری نیست و قوانین گاوس و آمپر به قوانین ماکسول تبدیل میشن و یه مقدار تغییر میکنن.
نکته دوم اینکه برای شهود فرم انتگرالی خیلی بهتر از فرم نقطهای هست. پس خوبه که به اون بیشتر فک کنیم!
درنهایت همونطور که واضحه یک سری ریاضیات لازم داریم که اگه بلد نیستین، پلی لیست زیر خیلی خوبه:
https://youtube.com/playlist?list=PLHXZ9OQGMqxfW0GMqeUE1bLKaYor6kbHa
البته این پلی لیست حسابان چهار هست که باز حسابان دو و سه رو هم همین کانال داره.
در پست بعد راجع به پتانسیل و شرایط مرزی صحبت میکنیم
#electromagnetics
توی الکترومغناطیس، این قانون گاوس رو توی یک حجم خیلی کوچیک مینویسن و این انتگرال تبدیل میشه به چیزی به اسم دیورژانس. یعنی با میل دادن اون حجم به صفر، به قانون نقطهای گاوس میرسیم:
∇.E = ρ
این رابطه میگه که چگالی بار توی یک نقطه، همون دیورژانس E در اون نقطست.
به طرز مشابه، قانون آمپر رو داریم که میدان مغناطیسی رو در فضا بر حسب جریان گذرنده از یک سطح میده. درواقع این قانون میگه اگه یه خم بسته در فضا در نظر بگیریم و جریان گذرنده از این خم I باشه، میدان مغناطیسی از رابطهای مشابه با قانون گاوس به شکل زیر محاسبه میشه:
∫ B.dl = μI
دقت کنید که توی قانون گاوس، مجموع میدان خارج شده از سطح یک کره رو میگرفتیم ولی اینجا جریان گذرنده از یک خم بسته رو داریم (سطح مقطع مثلا).
برای این قانون هم فرم نقطهای زیر با میل دادن دایره به صفر بدست میاد:
∇×B = J
"کرل میدان مغناطیسی برابر چگالی جریان است."
دوتا نکته رو اینجا توجه کنین. اول اینکه این پست و پست قبل شرایط الکترواستاتیک و مگنتواستاتیک هستن. یعنی یا فقط یک بار ثابت داریم که میدان الکتریکی ثابت داره یا یک جریان دائم که فقط میدان مغناطیسی تولید میکنه. در حالت کلی اینجوری نیست و قوانین گاوس و آمپر به قوانین ماکسول تبدیل میشن و یه مقدار تغییر میکنن.
نکته دوم اینکه برای شهود فرم انتگرالی خیلی بهتر از فرم نقطهای هست. پس خوبه که به اون بیشتر فک کنیم!
درنهایت همونطور که واضحه یک سری ریاضیات لازم داریم که اگه بلد نیستین، پلی لیست زیر خیلی خوبه:
https://youtube.com/playlist?list=PLHXZ9OQGMqxfW0GMqeUE1bLKaYor6kbHa
البته این پلی لیست حسابان چهار هست که باز حسابان دو و سه رو هم همین کانال داره.
در پست بعد راجع به پتانسیل و شرایط مرزی صحبت میکنیم
#electromagnetics
❤1
Forwarded from OnHex
🔴 افشای اطلاعات 200 میلیون کاربر توییتر
ژانویه 2023 یک بنده خدایی، یک آسیب پذیری رو در برنامه ی باگ بانتی توییتر گزارش داد که به یک مهاجم اجازه میداد تا با داشتن ایمیل یا شماره تلفن، به داده های کاربران این پلتفرم دسترسی داشته باشه.
اون زمان توییتر این باگ رو اصلاح کرد اما بعدا متوجه شد که یک هکر دیگه قبلا از این موضوع اطلاع داشته و مقدار زیادی از داده های کاربران رو جمع آوری کرده.
این داده ها برای فروش گذاشته شد و توییتر هم داده ها رو تایید کرد.
حالا دوباره این نقض، کاربران توییتر رو تحت تاثیر قرار داده. یک هکری بنام ThinkingOne ادعا کرده که به این داده ها دسترسی پیدا کرده و با یک نقض یا افشای داده که در ژانویه 2025 رخ داده، ترکیبشون کرده. این مورد جدید 400 گیگ و شامل اطلاعات 2,873,410,842 کاربر هستش که به احتمال زیاد توسط یک کارمند ناراضی افشاء شده.
هکر گفته که با توییتر تماس گرفته اما جوابی دریافت نکرده و بنابراین تصمیم گرفته تا عموم از بزرگترین نقض داده توییتر مطلع بشن.
هکر اومده اطلاعات این دو رخداد رو با هم ترکیب کرده که شامل اطلاعات 201,186,753 کاربر هستش و بصورت رایگان منتشر کرده.
داده های منتشر شده 34 گیگ هستش که در یک فایل 9 گیگی فشرده شدن و موارد زیر شامل میشن:
منبع [1,2]
#توییتر #نشت_داده #نقض_داده
#twitter #leak
🆔 @onhex_ir
➡️ ALL Link
ژانویه 2023 یک بنده خدایی، یک آسیب پذیری رو در برنامه ی باگ بانتی توییتر گزارش داد که به یک مهاجم اجازه میداد تا با داشتن ایمیل یا شماره تلفن، به داده های کاربران این پلتفرم دسترسی داشته باشه.
اون زمان توییتر این باگ رو اصلاح کرد اما بعدا متوجه شد که یک هکر دیگه قبلا از این موضوع اطلاع داشته و مقدار زیادی از داده های کاربران رو جمع آوری کرده.
این داده ها برای فروش گذاشته شد و توییتر هم داده ها رو تایید کرد.
حالا دوباره این نقض، کاربران توییتر رو تحت تاثیر قرار داده. یک هکری بنام ThinkingOne ادعا کرده که به این داده ها دسترسی پیدا کرده و با یک نقض یا افشای داده که در ژانویه 2025 رخ داده، ترکیبشون کرده. این مورد جدید 400 گیگ و شامل اطلاعات 2,873,410,842 کاربر هستش که به احتمال زیاد توسط یک کارمند ناراضی افشاء شده.
هکر گفته که با توییتر تماس گرفته اما جوابی دریافت نکرده و بنابراین تصمیم گرفته تا عموم از بزرگترین نقض داده توییتر مطلع بشن.
هکر اومده اطلاعات این دو رخداد رو با هم ترکیب کرده که شامل اطلاعات 201,186,753 کاربر هستش و بصورت رایگان منتشر کرده.
داده های منتشر شده 34 گیگ هستش که در یک فایل 9 گیگی فشرده شدن و موارد زیر شامل میشن:
ID,screen_name, name, location, description, url, Email, time zone, language, followers_count, friends_count, listed_count, favourites_count, statuses_count, protected, verified, default_profile, default_profile_image, last_status_created_at, last_status_source, created_at
منبع [1,2]
#توییتر #نشت_داده #نقض_داده
#twitter #leak
🆔 @onhex_ir
➡️ ALL Link
خب
چندروزیه که دارم تلاش میکنم رو یه سیستم لینوکس که ممکنه مانیتور بهش وصل بشه یا کلا نشه یه ریموت کنترل بریزم. مشکل اینه که اگه مانیتوری وصل نباشه و سیستم بالا بیاد، نمیشه ریموت زد چون صفحهای وجود نداره که شیر شه. راه حل جالب و راه دستش اینه که یه چیزی به اسم hdmi dummy plug بخریم و بزنیم به پورت hdmi. این سخت افزار کوچیک یه مانیتور رو شبیه سازی میکنه و همه مشکلات حل میشه😂
راه حل نرم افزاریش اما چندان ظاهرا آسون نیست. البته برای نسخه جدید گنوم آسون شده ولی قبلا نبوده.(لااقل من نتونستم چیز درستی پیدا کنم).
با سرچ تو نت به چندین راه حل میرسیم. اول از همه ملت میگن که فایل xorg.conf رو خودت بنویس و اونجا یه مانیتور dummy اضافه کن. این فایل چیه؟ فایلیه که X یا همون Xorg تنظیماتش رو از اون میخونه. البته الان ماشالا X پیشرفت کرده و اگه این فایل رو بهش ندیم خودش خودش رو کانفیگ میکنه. خب منم گفتم همین راه رو امتحان میکنم. قبلش اینم یادتون نره که X کارش اینه که یک یا چند دسکتاپ یا به قول خودش display رو بین چندین screen یا مانیتور شیر میکنه و ارتباط ماوس و کیبورد رو با دستکاپ ها برقرار میکنه. اگه خواستین بیشتر بخونین، اینجا توضیح میده:
https://www.x.org/archive/X11R6.8.0/doc/X.7.html
و البته ویکی arch هم مثل همیشه توضیحات خوبی داره:
https://wiki.archlinux.org/title/Xorg
بد نیست یه نگاهی هم به توضیحات فایل xorg.conf بندازین:
https://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml
خلاصه اینکه منم طبق همین لینک یه اسکرین تعریف کردم. ازونجایی که یه اسکرین به یه display و یه مانیتور نیاز داره و باز مانیتور خودش به درایور نیاز داره، باید یه درایور هم داشته باشیم که با نصب پکیج xserver-xorg-video-dummy یدونه درایور به اسم dummy برامون درست میشه که میشه ازش استفاده کرد.
منم همینطور پیش رفتم و یه مانیتور dummy نهایتا ساختم. اما مشکل چی بود؟ مشکل این بود که مانیتور خودمون که الان فیزیکی وصله یا ممکنه وصل بشه هم باید اضافه کنیم!
جالبیش اینجا بود که من نتونستم اضافه کنم و هرکاری کردم فقط به black screen خوردم.
خب اینجا بود که تقریبا بیخیال شدم. بعد یه روز دوباره سرچ کردم و دیدم که عه گنوم از نسخه 40 به بعد خودش آپشن اضافه کردن مانیتور مجازی داره!
به لطف این لینک:
https://www.reddit.com/r/linux_gaming/comments/119njgz/how_could_i_create_a_virtual_monitor_under/
بالاخره تونستم یه مانیتور دامی به سیستم اضافه کنم. البته که هنوز روی سیستم بدون مانیتور تست نکردم ببینم کار میکنه یا نه ولی فک کنم کار کنه
چندروزیه که دارم تلاش میکنم رو یه سیستم لینوکس که ممکنه مانیتور بهش وصل بشه یا کلا نشه یه ریموت کنترل بریزم. مشکل اینه که اگه مانیتوری وصل نباشه و سیستم بالا بیاد، نمیشه ریموت زد چون صفحهای وجود نداره که شیر شه. راه حل جالب و راه دستش اینه که یه چیزی به اسم hdmi dummy plug بخریم و بزنیم به پورت hdmi. این سخت افزار کوچیک یه مانیتور رو شبیه سازی میکنه و همه مشکلات حل میشه😂
راه حل نرم افزاریش اما چندان ظاهرا آسون نیست. البته برای نسخه جدید گنوم آسون شده ولی قبلا نبوده.(لااقل من نتونستم چیز درستی پیدا کنم).
با سرچ تو نت به چندین راه حل میرسیم. اول از همه ملت میگن که فایل xorg.conf رو خودت بنویس و اونجا یه مانیتور dummy اضافه کن. این فایل چیه؟ فایلیه که X یا همون Xorg تنظیماتش رو از اون میخونه. البته الان ماشالا X پیشرفت کرده و اگه این فایل رو بهش ندیم خودش خودش رو کانفیگ میکنه. خب منم گفتم همین راه رو امتحان میکنم. قبلش اینم یادتون نره که X کارش اینه که یک یا چند دسکتاپ یا به قول خودش display رو بین چندین screen یا مانیتور شیر میکنه و ارتباط ماوس و کیبورد رو با دستکاپ ها برقرار میکنه. اگه خواستین بیشتر بخونین، اینجا توضیح میده:
https://www.x.org/archive/X11R6.8.0/doc/X.7.html
و البته ویکی arch هم مثل همیشه توضیحات خوبی داره:
https://wiki.archlinux.org/title/Xorg
بد نیست یه نگاهی هم به توضیحات فایل xorg.conf بندازین:
https://www.x.org/releases/current/doc/man/man5/xorg.conf.5.xhtml
خلاصه اینکه منم طبق همین لینک یه اسکرین تعریف کردم. ازونجایی که یه اسکرین به یه display و یه مانیتور نیاز داره و باز مانیتور خودش به درایور نیاز داره، باید یه درایور هم داشته باشیم که با نصب پکیج xserver-xorg-video-dummy یدونه درایور به اسم dummy برامون درست میشه که میشه ازش استفاده کرد.
منم همینطور پیش رفتم و یه مانیتور dummy نهایتا ساختم. اما مشکل چی بود؟ مشکل این بود که مانیتور خودمون که الان فیزیکی وصله یا ممکنه وصل بشه هم باید اضافه کنیم!
جالبیش اینجا بود که من نتونستم اضافه کنم و هرکاری کردم فقط به black screen خوردم.
خب اینجا بود که تقریبا بیخیال شدم. بعد یه روز دوباره سرچ کردم و دیدم که عه گنوم از نسخه 40 به بعد خودش آپشن اضافه کردن مانیتور مجازی داره!
به لطف این لینک:
https://www.reddit.com/r/linux_gaming/comments/119njgz/how_could_i_create_a_virtual_monitor_under/
بالاخره تونستم یه مانیتور دامی به سیستم اضافه کنم. البته که هنوز روی سیستم بدون مانیتور تست نکردم ببینم کار میکنه یا نه ولی فک کنم کار کنه
Reddit
From the linux_gaming community on Reddit
Explore this post and more from the linux_gaming community
Stuff for Geeks
خب این حقیقت فیزیک دو بود توی الکترومغناطیس، این قانون گاوس رو توی یک حجم خیلی کوچیک مینویسن و این انتگرال تبدیل میشه به چیزی به اسم دیورژانس. یعنی با میل دادن اون حجم به صفر، به قانون نقطهای گاوس میرسیم: ∇.E = ρ این رابطه میگه که چگالی بار توی یک نقطه،…
پست بعدی در مورد چی باشه؟
Anonymous Poll
13%
شرایط مرزی
0%
دوقطبیها
13%
پتانسیل الکتریکی
0%
جریان و مقاومت الکتریکی
75%
میدانهای متغیر با زمان و معادلات ماکسول
Stuff for Geeks
پست بعدی در مورد چی باشه؟
خب عالیع
پس بریم به آخر الکترومغناطیس(فصل هفت و هفت به بعد کتاب چنگ)
توی الکترومغناطیس، برای منابع(چگالی بار pho و چگالی جریان J) ثابت به نسبت زمان روابط زیر رو یاد میگیریم:
Div D = pho
Curl E = 0
Curl H = J
Div H = 0
اما اگه منابعمون نسبت به زمان متغیر باشن، دیگه این روابط کامل نیستن و باید از روابط زیر که معادلات ماکسول هستن استفاده کرد:
Div D = pho
Curl E = -dB/dt
Div H = 0
Curl H = J + dD/dt
توی این حالت، میدانهای الکتریکی و مغناطیسی، اصطلاحا به هم کوپل شدن و تغییر دادن یکی در زمان، باعث تغییر کردن اون یکی دیگه میشه و اصلا دیگه نمیشه مسئله رو به الکترواستاتیک و مگنتواستاتیک جدا کرد.
یه بحثی که خیلی جالبه، بحث انتشار امواج الکترومغناطیسی هست. فرض کنید یک ورق فلزی بینهایت روی صفحهٔ xy داشته باشیم و یه جریان J که متغیر با زمان هم هست، در این صفحه وجود داشته باشه. توجه کنید که تمام پارامترهامون الان تابعیت زمان و مکان دارن.
توی این حالت، یه موج از صفحه خارج میشه و درراستای مثبت یا منفی z منتشر میشه.
حالا با سادهسازی معادلات ماکسول برای فضای خارج صفحه که pho و J دیگه نداریم، برای E و H به معادلهٔ موج یا به طور دقیقتر، به معادلهٔ هلمهولتز میرسیم و این دقیقا نحوه پخش شدن موج رو توی فضا توضیح میده.
مثلا اگه فرض کنیم J سینوسی باشه، E و H هردو سینوسی میشن. البته با دامنه های متفاوت که بر هم عمودن.
درواقع E بر H و هردو بر راستای انتشار عمود میشن. مثلا توی همین صفحه، راستای انتشار موج میشه z یا منفی z و مثلا اگه J در راستای x باشه، E در راستای منفی ایکس و H در راستای منفی y برای z های مثبت و y برای z های منفی خواهد بود.
اگه بخوایم شهودی به قضیه نگاه کنیم، فرض کنید که یک صفحهٔ بزرگ رو توی استخر یا دریا و عمود بر سطح آب متناوبا داخل و خارج میکنید.
با اینکار، یه سری موج درست سطح آب درست میشه که دقیقا تابع مکان و زمانه چون موج توی هر نقطه طی زمان بالا پایین میشه(تابعیت زمان) و توی یه لحظهٔ خاص هم، اگه به سطح آب نگاه کنیم، یه شکل سینوسی میبینیم (تابعیت مکان).
با یه عالم سادهسازی، این موجی که توسط تکون دادن ورقه روی سطح آب تشکیل شد، میشه میدان الکتریکی ما و یه میدان عمود بر این هم میشه میدان مغناطیسیمون.
یه سری پارامتر هم اینجا تعریف میشه. مثلا لاندا یا طول موج، فاصلهٔ دو قلهٔ موج توی یه زمان ثابته و عدد موج یا k میشه 2π تقسیم بر لاندا. پارامترهایی که سینوسی مکانی رو توصیف میکنن و مشابها در حوزه زمانی پریود زمانی و امگا رو داریم!
جالب اینکه k و لاندا کاملا وابسته به محیطن ولی فرکانس و امگای زمانی هیچ وابستگیای به محیط ندارن.
به عنوان نکتهٔ جالب آخر
یکی از عجیبترین اتفاقاتی که توی معادله موج الکترومغناطیسی میوفته، اینه که سرعت انتشارش هیچ وابستگیای به سرعت منبع نداره.
ینی شما یه چراغ قوه رو اگه با سرعت پونصد کیلومتر بر ساعت هم به سمت من بیارین یا از من دور کنین، سرعت انتشار نور ثابت خواهد بود و نوری که من دریافت میکنم انگار منبعش ثابت بوده (نور یه موج الکترومغناطیسیه! البته دقیقتر بخوایم بگیم، خواص موجی هم داره)
اینجا بود که جناب انیشتین مغزش قفلی زد و نسبیت خاص رو بیرون داد😂
توی نظریه نسبیت میگه که اگه با سرعت نور حرکت کنید، طولتون صفر میشه! و یجورایی توضیح میده که زمان و مکان به هم وابستن (پ.ن: اطلاعاتم کاملا ناقص و ابتداییه تو این مورد)
بقیش باشه برا بعد...
پس بریم به آخر الکترومغناطیس(فصل هفت و هفت به بعد کتاب چنگ)
توی الکترومغناطیس، برای منابع(چگالی بار pho و چگالی جریان J) ثابت به نسبت زمان روابط زیر رو یاد میگیریم:
Div D = pho
Curl E = 0
Curl H = J
Div H = 0
اما اگه منابعمون نسبت به زمان متغیر باشن، دیگه این روابط کامل نیستن و باید از روابط زیر که معادلات ماکسول هستن استفاده کرد:
Div D = pho
Curl E = -dB/dt
Div H = 0
Curl H = J + dD/dt
توی این حالت، میدانهای الکتریکی و مغناطیسی، اصطلاحا به هم کوپل شدن و تغییر دادن یکی در زمان، باعث تغییر کردن اون یکی دیگه میشه و اصلا دیگه نمیشه مسئله رو به الکترواستاتیک و مگنتواستاتیک جدا کرد.
یه بحثی که خیلی جالبه، بحث انتشار امواج الکترومغناطیسی هست. فرض کنید یک ورق فلزی بینهایت روی صفحهٔ xy داشته باشیم و یه جریان J که متغیر با زمان هم هست، در این صفحه وجود داشته باشه. توجه کنید که تمام پارامترهامون الان تابعیت زمان و مکان دارن.
توی این حالت، یه موج از صفحه خارج میشه و درراستای مثبت یا منفی z منتشر میشه.
حالا با سادهسازی معادلات ماکسول برای فضای خارج صفحه که pho و J دیگه نداریم، برای E و H به معادلهٔ موج یا به طور دقیقتر، به معادلهٔ هلمهولتز میرسیم و این دقیقا نحوه پخش شدن موج رو توی فضا توضیح میده.
مثلا اگه فرض کنیم J سینوسی باشه، E و H هردو سینوسی میشن. البته با دامنه های متفاوت که بر هم عمودن.
درواقع E بر H و هردو بر راستای انتشار عمود میشن. مثلا توی همین صفحه، راستای انتشار موج میشه z یا منفی z و مثلا اگه J در راستای x باشه، E در راستای منفی ایکس و H در راستای منفی y برای z های مثبت و y برای z های منفی خواهد بود.
اگه بخوایم شهودی به قضیه نگاه کنیم، فرض کنید که یک صفحهٔ بزرگ رو توی استخر یا دریا و عمود بر سطح آب متناوبا داخل و خارج میکنید.
با اینکار، یه سری موج درست سطح آب درست میشه که دقیقا تابع مکان و زمانه چون موج توی هر نقطه طی زمان بالا پایین میشه(تابعیت زمان) و توی یه لحظهٔ خاص هم، اگه به سطح آب نگاه کنیم، یه شکل سینوسی میبینیم (تابعیت مکان).
با یه عالم سادهسازی، این موجی که توسط تکون دادن ورقه روی سطح آب تشکیل شد، میشه میدان الکتریکی ما و یه میدان عمود بر این هم میشه میدان مغناطیسیمون.
یه سری پارامتر هم اینجا تعریف میشه. مثلا لاندا یا طول موج، فاصلهٔ دو قلهٔ موج توی یه زمان ثابته و عدد موج یا k میشه 2π تقسیم بر لاندا. پارامترهایی که سینوسی مکانی رو توصیف میکنن و مشابها در حوزه زمانی پریود زمانی و امگا رو داریم!
جالب اینکه k و لاندا کاملا وابسته به محیطن ولی فرکانس و امگای زمانی هیچ وابستگیای به محیط ندارن.
به عنوان نکتهٔ جالب آخر
یکی از عجیبترین اتفاقاتی که توی معادله موج الکترومغناطیسی میوفته، اینه که سرعت انتشارش هیچ وابستگیای به سرعت منبع نداره.
ینی شما یه چراغ قوه رو اگه با سرعت پونصد کیلومتر بر ساعت هم به سمت من بیارین یا از من دور کنین، سرعت انتشار نور ثابت خواهد بود و نوری که من دریافت میکنم انگار منبعش ثابت بوده (نور یه موج الکترومغناطیسیه! البته دقیقتر بخوایم بگیم، خواص موجی هم داره)
اینجا بود که جناب انیشتین مغزش قفلی زد و نسبیت خاص رو بیرون داد😂
توی نظریه نسبیت میگه که اگه با سرعت نور حرکت کنید، طولتون صفر میشه! و یجورایی توضیح میده که زمان و مکان به هم وابستن (پ.ن: اطلاعاتم کاملا ناقص و ابتداییه تو این مورد)
بقیش باشه برا بعد...
❤1
Stuff for Geeks
خب عالیع پس بریم به آخر الکترومغناطیس(فصل هفت و هفت به بعد کتاب چنگ) توی الکترومغناطیس، برای منابع(چگالی بار pho و چگالی جریان J) ثابت به نسبت زمان روابط زیر رو یاد میگیریم: Div D = pho Curl E = 0 Curl H = J Div H = 0 اما اگه منابعمون نسبت به زمان متغیر…
Filed of a sheet of uniform current .pdf
729.9 KB
از معادلات ماکسول تا موج تخت صفحهای
(اسلایدا مال دکتر بهزاد رجائیه)
(اسلایدا مال دکتر بهزاد رجائیه)
❤1