Stuff for Geeks
158 subscribers
181 photos
38 videos
178 files
575 links
Admin: @the_mhbr
Download Telegram
آموزش انواع اسمبلیهای مختلف(میپس، آرم، x86، و خیلی خیلی چیزای دیگه):
https://youtube.com/@chibiakumas

#Asssmbly
#Programming
#binary
Forwarded from APT
🔑 RockYou2024: 10 billion passwords leaked in the largest compilation of all time

Researchers discovered what appears to be the largest password compilation with a staggering 9,948,575,739 unique plaintext password

🔗 Source:
https://cybernews.com/security/rockyou2024-largest-password-compilation-leak/

🔗 Source archive:
https://fastupload.io/1824d409732f30be

#wordlist #rockyou #passwords
فرض کنین که با یوزر myUser که uidش مثلا 1000 هست، برنامهٔ
/etc/passwd
که یوزر روت ownerش هست رو اجرا می‌کنیم. این پراسس چه euid و ruidای خواهد داشت؟ Euid -> effective user id Ruid -> real user id
Anonymous Quiz
25%
euid=1000; ruid=0;
31%
euid=0; ruid=1000;
13%
euid=0; ruid=0;
31%
euid=1000; ruid=1000;
توی سی پلاس پلاس توصیه میشه از کدوم یکی از موارد زیر به جای بقیه استفاده کنیم؟
Anonymous Quiz
19%
0
30%
NULL
44%
nullptr
7%
null
Stuff for Geeks
فرض کنین که با یوزر myUser که uidش مثلا 1000 هست، برنامهٔ
/etc/passwd
که یوزر روت ownerش هست رو اجرا می‌کنیم. این پراسس چه euid و ruidای خواهد داشت؟ Euid -> effective user id Ruid -> real user id
خب
جواب درست این سوال گزینه دوم هست. یعنی
Euid = 0
Ruid = 1000

اینجا دوتا سوال پیش میاد
سوال اول اینکه چرا euid با ruid متفاوته
و سوال دوم اینکه چرا این مقادیر اصلا؟

توضیح:
هر باینری‌ای که توسط یه یوزر اجرا میشه و عملا به پراسس تبدیل میشه، یه ruid یا real user id داره که آیدی یوزری که برنامه رو اجرا کرده رو توی خودش داره
از طرفی یدونه effective user id یا euid هم داره که مشخص میکنه این پراسس سطح دسترسیش چقدره
مثلا اگه euid یه پراسس صفر باشه(یوزر آیدی یوزر روت صفره)، مهم نیست چه ruidای داشته باشه و به هر فایلی هر دسترسی‌ای خواهد داشت


خب حالا برای اکثر باینری‌ها، euid و ruid یکی هستن مگه اینکه یه فلگ خاص به اسم set user id برای اون باینری فعال باشه.
اگه این فلگ فعال باشه، وقتی باینری اجرا میشه، euidش مساوی یوزر آیدی owner اون باینری میشه.
مثلا اگه یوزر u1 یه باینری ای بسازه و ownerش باشه و فلگ suid رو هم براش ست کنه، و یوزر u2 بیاد و این باینری رو اجرا کنه، ruid باید برابر uid یوزر u1 باشه ولی euid برابر uid یوزر u2

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

مثلا همین
/bin/passwd
(بازم عذرخواهی میکنم توی سوال اشتباه شده)
چون این باینری نیاز داره یه سری فایلایی که اونرش روت هستند رو توسط هر یوزری تغییر بده، پس این فلگ براش فعاله

برای فعال کردن این فلگ، کافیه از chmod استفاده کنیم:
chmod +s <Path to binary>

و برای اینکه ببنیم یه باینری ای این فلگ براش فعال هست یا نه، کافیه با ls ببینیم که آیا پرمیشن x داریم برای اجرا یا s
ls -l <File>

#linux
#tips
Stuff for Geeks
توی سی پلاس پلاس توصیه میشه از کدوم یکی از موارد زیر به جای بقیه استفاده کنیم؟
در این مورد، جواب همون nullptr هست
اما دلیلش رو جالبه بدونیم

تایپ NULL اینت هست چون یه جایی یه کدی به شکل زیر داریم براش:
#define NULL 0
این که تایپ این موجود اینتیجر هست، درحالیکه باید جاهایی که به پوینتر نیاز داریم ازش استفاده کنیم، مشکل ساز هست
مثلا فرض کنید که یه تابع override شده داشته باشیم به شکل زیر:
void myFunc(int someInt){}
void myFunc(int* somePtr){}

اگه این تابع رو یه نفر با NULL صدا بزنه، چون NULL تاپیش اینتیجر هست، تابع اول صدا زده میشه درحالیکه ما انتظار داریم دومی صدا زده بشه

برای رفع این مشکل بوده که nullptr بوجود اومده. اول از همه تایپ این موجود nullptr_t هست و به طرز عجیبی تایپ nullptr_t برمیگرده و nullptr هست :///////
از این حرکت جذاب که بگذریم، خاصیت این موجود اینه که فقط به جای پوینترها میتونه بکار بره
یعنی اگه تابع myFunc رو باهش صدا بزنیم، تابع دومی صدا زده میشه.

این خاصیت توی template ها هم بسیار بکار میاد که اگه دوست داشتین میتونین توی کتاب
Effective Modern C++
کامل درموردش بخونین
Forwarded from APT
💻 BIOS bootloader from scratch in ASM

Dive into building a BIOS bootloader from scratch to boot an x86 CPU into 64-bit mode. From ASM basics to integrating with C, unravel the complexities step-by-step.

🔗 Research:
https://thasso.xyz/2024/07/13/setting-up-an-x86-cpu.html

🔗 Code:
https://github.com/thass0/blog-code/tree/main/2024-07-13-setting-up-an-x86-cpu

#bios #loader #asm #clang
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Forwarded from infosec
👩‍💻 ++ 101 Linux commands.

• Объемная книга (CheatSheet) для изучения командной строки Linux. Материал пригодиться не только начинающим, но и опытным пользователям Linux. Содержание следующее:

Basics;
- File Hierarchy Standard (FHS);
- Commands;
Disk and File System Management;
- General Disk Manipulation (non-LVM);
- Globs (Wildcards);
- Regex;
- Stream redirection;
Text Readers & Editors;
- Less;
- VI;
User and Group Management;
File System Permissions;
SSH;
Cronjobs;
Package Management;
- RPM;
- YUM;
List of commands by category:
- Directory Navigation;
- File Commands;
- File and Directory Manipulation;
- Package archive and compression tools;
- System commands;
- Networking Commands;
- Package Management;
- User Information commands;
- Session commands;
- Getting Help;
- Applications.

#Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3
Fascinating C code: TCP sockets & HTTP file downloads using only ntdll exports (NtCreateFile & NtDeviceIoControlFile syscalls). Bypasses Winsock for low-level Windows networking.


https://www.x86matthew.com/view_post?id=ntsockets

#Windows
#Programming
1
Forwarded from Bugbounty Tips
Old and public CVEs in iran (((:

For more join to channel (:
https://t.iss.one/rootdr_research


#readteam
#exploit
#shodan
#bugbounty
نسخه استیبل ادیتور جدید zed برای لینوکس منتشر شد

(حقیقتش نمیدونم کی اومده ولی الان سایتشو چک کردم داشت)

برای نصبش کافیه خط زیر رو تو ترمینال بزنین:
curl -f https://zed.dev/install.sh | sh

خاصیت اصلی این ادیتور اینه که میره مستقیم روی جی پی یو اجرا میشه و به همین دلیل سرعت رندر شدنش خیلی سریع تر از ادیتورای دیگست
انگار که دارین بازی رندر میکنین
#Tool
#Programming