SSH over QUIC
https://github.com/moul/quicssh
برنامه quicssh یک پراکسی quic هستش که اجازه میدهد از quic برای وصل شدن به ssh خود استفاده کنید و نیازی به پچ کردن openssh ندارد.
نحوه نصب :
برای نصب این برنامه باید گولنگ در سیستم شما نصب شده باشد و سپس با این دستور میتوانید آن را اضافه کنید :
اگر از سیستم عامل یونیکسی استفاده میکنید به صورت پیشفرض گولنگ باینری ها رو در پوشه زیر ذخیره میکند :
#SSH
https://github.com/moul/quicssh
برنامه quicssh یک پراکسی quic هستش که اجازه میدهد از quic برای وصل شدن به ssh خود استفاده کنید و نیازی به پچ کردن openssh ندارد.
نحوه نصب :
برای نصب این برنامه باید گولنگ در سیستم شما نصب شده باشد و سپس با این دستور میتوانید آن را اضافه کنید :
go get -u moul.io/quicsshنکته :
اگر از سیستم عامل یونیکسی استفاده میکنید به صورت پیشفرض گولنگ باینری ها رو در پوشه زیر ذخیره میکند :
linux :#QUIC
/home/$USER/go/bin
darwin :
/Users/$USER/go/bin
#SSH
GitHub
GitHub - moul/quicssh: SSH over QUIC
SSH over QUIC. Contribute to moul/quicssh development by creating an account on GitHub.
👍8👎1🙏1
Sonia Software Notes
و اما خلاصه این روش و دلایل نیاز آن : وقتی یک پکتی فرستاده میشه اون پکت میتونه یا به صورت خیلی واضح فرستاده باشه یا به صورت مبهم سازی شده . ( کاری که xray , v2ray ) انجام دادن اما مبهم سازی کردن پکت زیاد تضمین این رو نمیکند که پکتی که ارسال میشه باز هم…
gfwKnock
https://github.com/SonyaCore/gfwKnock
این پروژه با بازنویسی gfw_resist میباشد که با زبان گولنگ توسعه داده شده
با استفاده از این پروژه میتوانید پکت هایی که توسط وی پی ان v2ray فرستاده میشه رو تقسیم بندی کنید.
——
نحوه نصب :
برای دریافت باینری به این قسمت مراجعه کنید :
https://github.com/SonyaCore/gfwKnock/releases/tag/v0.1
——
نحوه کامپایل از سورس :
مخزن را کلون کنید :
git clone https://github.com/SonyaCore/gfwKnock.git
و به پوشه مخزن بروید و با این دستور از کد را کامپایل کنید :
go build -o gfwKnock -ldflags "-s -w -buildid=" .
و باینری را اجرا نمایید :
./gfwKnock
——
تنظیمات :
این پروژه تنظیماتی را مثل پروژه gfw_resist دارد با این تفاوت که تنظیمات از فایل config.json خوانده میشود
نمونه ای از فایل config.json و تایپ های آن :
——
توضیحات فیلد های تنظیمات gfwKnock :
listen_port
پورتی که برای بالا آمدن کلاینت gfwKnock استفاده میشود و از آن به عنوان پراکسی میتوانید روی vpn v2ray استفاده نمایید
cloud_flare_ip
آی پی کلاد فلیر برای استفاده از وی پی ان
cloud_flare_port
پورت برای آی پی کلاد فلیر
socket_timeout
تایم اوت وصل شدن به آی پی کلاد فلیر که ۶۰ ثانیه میباشد.
fragment_sleep
تاخیر انداختن بعد از هر فرگمنتی که کامل میشود .
l_fragment
طول فرگمنت ها برای فرستادن client hello که به صورت بایت ست میشود.
——
#gfwKnock
https://github.com/SonyaCore/gfwKnock
این پروژه با بازنویسی gfw_resist میباشد که با زبان گولنگ توسعه داده شده
با استفاده از این پروژه میتوانید پکت هایی که توسط وی پی ان v2ray فرستاده میشه رو تقسیم بندی کنید.
——
نحوه نصب :
برای دریافت باینری به این قسمت مراجعه کنید :
https://github.com/SonyaCore/gfwKnock/releases/tag/v0.1
——
نحوه کامپایل از سورس :
مخزن را کلون کنید :
git clone https://github.com/SonyaCore/gfwKnock.git
و به پوشه مخزن بروید و با این دستور از کد را کامپایل کنید :
go build -o gfwKnock -ldflags "-s -w -buildid=" .
و باینری را اجرا نمایید :
./gfwKnock
——
تنظیمات :
این پروژه تنظیماتی را مثل پروژه gfw_resist دارد با این تفاوت که تنظیمات از فایل config.json خوانده میشود
نمونه ای از فایل config.json و تایپ های آن :
{
// key : value : type
"listen_port": 8080, // Integer
"cloud_flare_ip": "45.85.110.55", // String
"cloud_flare_port": 443, // Integer
"socket_timeout": "60", // int Seconds
"fragment_sleep": "100" // int Miliseconds,
"l_fragment": 77 // int Byte
}
هنگام دریافت پروژه از مخزن یک فایل نمونه در آن قرار گرفته که میتوانید از آن استفاده کنید.——
توضیحات فیلد های تنظیمات gfwKnock :
listen_port
پورتی که برای بالا آمدن کلاینت gfwKnock استفاده میشود و از آن به عنوان پراکسی میتوانید روی vpn v2ray استفاده نمایید
cloud_flare_ip
آی پی کلاد فلیر برای استفاده از وی پی ان
cloud_flare_port
پورت برای آی پی کلاد فلیر
socket_timeout
تایم اوت وصل شدن به آی پی کلاد فلیر که ۶۰ ثانیه میباشد.
fragment_sleep
تاخیر انداختن بعد از هر فرگمنتی که کامل میشود .
l_fragment
طول فرگمنت ها برای فرستادن client hello که به صورت بایت ست میشود.
——
#gfwKnock
GitHub
GitHub - SonyaCore/gfwKnock: knock up GFW detection with packet fragmentation method PoC
knock up GFW detection with packet fragmentation method PoC - SonyaCore/gfwKnock
🔥19👎2❤🔥1👍1
Forwarded from جادی | Jadi
grok-algor.pdf
24.5 MB
معرفی کتاب «درک الگوریتم؛ راهنمای تصویری برای برنامهنو یسها و افراد کنجکاو»
در معرفی کتاب قبلی، کتاب الگوریتم چهار استاد رو معرفی کردم و آخرش هم گفتم که اون خیلی ریاضی است و نسبتا سخت برای خوندن و اگر کسی میخواد به شکل عمومی در مورد الگوریتمها بهتر بشه، یک گزینه خیلی سادهتر و شاید عملیتر هست؛ حالا وقتشه که اون گزینه رو معرفی کنم: کتاب درک الگوریتم مصور از آدیتیا بهارگاوا با ترجمه مهران افشارنادری.
این کتاب با اسم کامل «درک الگوریتم، راهنمای تصو یری برای برنامه نو یسها و افراد کنجکاو» چیزی است که اگر یکی بگه «می خوام الگوریتم بخونم» من بهش پیشنهاد میکنم. عکس های کیوت و بامزه و بی مزه و دارای فصل بندی خوب و توضیحات مناسب و نمونه سوال بدون وارد شدن به جزییات خیلی ریز ریاضیوار.
و خبر خوب؟ کتاب رو مهران ترجمه کرده و برای دانلود رایگان در اختیار ما گذاشته. می تونین از کانال jadivarlog در تلگرام بگیرینش (:
https://youtu.be/p21OlSQIRZk
در معرفی کتاب قبلی، کتاب الگوریتم چهار استاد رو معرفی کردم و آخرش هم گفتم که اون خیلی ریاضی است و نسبتا سخت برای خوندن و اگر کسی میخواد به شکل عمومی در مورد الگوریتمها بهتر بشه، یک گزینه خیلی سادهتر و شاید عملیتر هست؛ حالا وقتشه که اون گزینه رو معرفی کنم: کتاب درک الگوریتم مصور از آدیتیا بهارگاوا با ترجمه مهران افشارنادری.
این کتاب با اسم کامل «درک الگوریتم، راهنمای تصو یری برای برنامه نو یسها و افراد کنجکاو» چیزی است که اگر یکی بگه «می خوام الگوریتم بخونم» من بهش پیشنهاد میکنم. عکس های کیوت و بامزه و بی مزه و دارای فصل بندی خوب و توضیحات مناسب و نمونه سوال بدون وارد شدن به جزییات خیلی ریز ریاضیوار.
و خبر خوب؟ کتاب رو مهران ترجمه کرده و برای دانلود رایگان در اختیار ما گذاشته. می تونین از کانال jadivarlog در تلگرام بگیرینش (:
https://youtu.be/p21OlSQIRZk
☃5👍4❤1🎅1
Sonia Software Notes
Latency numbers every developer should know.
🔹L1 and L2 caches: 1 ns, 10 ns
E.g.: They are usually built onto the microprocessor chip. Unless you work with hardware directly, you probably don’t need to worry about them.
🔹RAM access: 100 ns
E.g.: It takes around 100 ns to read data from memory. Redis is an in-memory data store, so it takes about 100 ns to read data from Redis.
🔹Send 1K bytes over 1 Gbps network: 10 us
E.g.: It takes around 10 us to send 1KB of data from Memcached through the network.
🔹Read from SSD: 100 us
E.g.: RocksDB is a disk-based K/V store, so the read latency is around 100 us on SSD.
🔹Database insert operation: 1 ms.
E.g.: Postgresql commit might take 1ms. The database needs to store the data, create the index, and flush logs. All these actions take time.
🔹Send packet CA->Netherlands->CA: 100 ms
E.g.: If we have a long-distance Zoom call, the latency might be around 100 ms.
🔹Retry/refresh internal: 1-10s
E.g: In a monitoring system, the refresh interval is usually set to 5~10 seconds
Notes
-----
1 ns = 10^-9 seconds
1 us = 10^-6 seconds = 1,000 ns
1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
#LatencyNumbers
E.g.: They are usually built onto the microprocessor chip. Unless you work with hardware directly, you probably don’t need to worry about them.
🔹RAM access: 100 ns
E.g.: It takes around 100 ns to read data from memory. Redis is an in-memory data store, so it takes about 100 ns to read data from Redis.
🔹Send 1K bytes over 1 Gbps network: 10 us
E.g.: It takes around 10 us to send 1KB of data from Memcached through the network.
🔹Read from SSD: 100 us
E.g.: RocksDB is a disk-based K/V store, so the read latency is around 100 us on SSD.
🔹Database insert operation: 1 ms.
E.g.: Postgresql commit might take 1ms. The database needs to store the data, create the index, and flush logs. All these actions take time.
🔹Send packet CA->Netherlands->CA: 100 ms
E.g.: If we have a long-distance Zoom call, the latency might be around 100 ms.
🔹Retry/refresh internal: 1-10s
E.g: In a monitoring system, the refresh interval is usually set to 5~10 seconds
Notes
-----
1 ns = 10^-9 seconds
1 us = 10^-6 seconds = 1,000 ns
1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
#LatencyNumbers
👍4🔥1
Forwarded from Sadra Codes
از localhost استفاده نکنید!
توی تقریبا تمام سیستمعاملها و اینترفیسهای شبکه، localhost دو آدرس آیپی v4 و v6 برمیگردونه و اکثر ابزارها و فریمورک ها میان اول v6 رو تست میکنن، اگه جواب نداد و fail شد، میرن سراغ v4.
حال چه کنیم..؟!
خیلی راحت، از 127.0.0.1 استفاده کنید. دیگه نه فریمورکی lookup انجام میده (چون آدرس IP هست نه HOSTNAME) نه چیزی Fail میشه.
توی تقریبا تمام سیستمعاملها و اینترفیسهای شبکه، localhost دو آدرس آیپی v4 و v6 برمیگردونه و اکثر ابزارها و فریمورک ها میان اول v6 رو تست میکنن، اگه جواب نداد و fail شد، میرن سراغ v4.
IPv4 -> 127.0.0.1این به این معنیه که یه عملیات lookup این وسط انجام میشه و خب یکم زمانبره. اگه سر چک کردن IPv6 به Failure بخوره، بازم زمانبره. حالا اگه اون فریمورک یا ابزار خاص فقط v6 رو چک کنه و بیخیال v4 بشه چی؟! ممکنه دوباره Failure بخوره و سیستم اونجور که باید، کار نکنه.
IPv6 -> ::1
حال چه کنیم..؟!
خیلی راحت، از 127.0.0.1 استفاده کنید. دیگه نه فریمورکی lookup انجام میده (چون آدرس IP هست نه HOSTNAME) نه چیزی Fail میشه.
👍24👎3⚡2🔥1
NodeOS
https://node-os.com/
lightweight operating system using Node.js as userspace ;/
نظر شخصی :
فاجعه سازی نکنید :)
#nodeos
#nodejs
https://node-os.com/
lightweight operating system using Node.js as userspace ;/
نظر شخصی :
فاجعه سازی نکنید :)
#nodeos
#nodejs
😐26😁3🔥1🦄1
Forwarded from Sadra Codes
یه زمان، سیستم توی سی اینجور بود که شما باید از Malloc استفاده میکردید و از CPU درخواست فضا از رم واسه متغیرتون میکردید. بصورت دستی ست میکردید که فلان متغیر، فلان قدر از رم رو (به بایت) بهش اختصاص بده.
- اگه برنامهنویس یادش میرفت فانکشن
- اگه برنامهنویس بلافاصله بعد از تعریف متغیر،
- اگه برنامهنویس دو بار
خلاصه امروز که میبینید خیلی راحت زبانها این Memory Management رو هندل میکنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستمعامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژیهای فری آپ کردن مموری توسط خود زبانهای برنامهنویسی انجام میشه.
int age = malloc(32670) // 32kb
و باید حتما یادتون میموند وقتی که کارتون با این متغیر (دیتا) تموم شد، حتما این رفرنسش رو پاک کنید تا اون بلاک از مموری هم پاک شه.free(age) // used to free the memory block
حالا این وسط یه سری بدبختیا بود..- اگه برنامهنویس یادش میرفت فانکشن
free
رو ران کنه: خب خیلی طبیعیه که اگه یادش میرفت free-up کنه، به مموری لیک میخوردیم. گاها دیدید RAM Resource پر میشه و سیستم دیتا رو روی Swap نگهداری میکنه؟ دقیقا همون لحظهس.- اگه برنامهنویس بلافاصله بعد از تعریف متغیر،
free
رو کال میکرد: به راحتی اون بلاک از مموری آزاد میشد و شما اگه جلوتر مقدار متغیر رو چاپ کنید ممکنه یه دیتاهایی پرینت شن که خیلی عجیب و غریب باشن..!! (درواقع ممکنه دیتاهایی باشن که توسط دیگر پروسهها دارن توی اون بلاک از رم نگهداری میشن)- اگه برنامهنویس دو بار
free
رو کال کنه: اگه بار اول فری کال شه، بلاک رم آزاد میشه و دیتایی که داخلشه از بین میره. فرض کنید بین free اول و free دوم یه وقفه ایجاد شه و سیستمعامل یا هر پروسه دیگهای بیاد و دقیقا توی اون بلاک از رم یه دیتای حساس قرار بده. بلافاصله بعد از اینکه free دوم ران میشه، اون دیتای حساس هم از بین میره و پروسه عملا به فنا میره و این اصلا خوب نیس!خلاصه امروز که میبینید خیلی راحت زبانها این Memory Management رو هندل میکنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستمعامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژیهای فری آپ کردن مموری توسط خود زبانهای برنامهنویسی انجام میشه.
👍8☃6👎2😎1
Forwarded from Sudoer - Powered OFF (Morteza Bashsiz)
درود
طبق این مقاله که توسط محققین USENIX منتشر شده، فایروالهای چینی (GFW) که ظاهرا در سیستم فیلترینگ ایران هم از این نوع فایروالها استفاده میشه، قابلیتی بهشون اضافه شده که امکان تشخیص و مسدود کردن سریع پروتوکلهای ضد فیلتر مثل Shadowsocks و Outline و VMess رو فراهم میکنه.
من سعی میکنم این مقاله رو مطالعه کنم و اطلاعات کاملتری رو در اختیارتون قرار بدم
https://gfw.report/publications/usenixsecurity23/en/
سپاس فراوان
طبق این مقاله که توسط محققین USENIX منتشر شده، فایروالهای چینی (GFW) که ظاهرا در سیستم فیلترینگ ایران هم از این نوع فایروالها استفاده میشه، قابلیتی بهشون اضافه شده که امکان تشخیص و مسدود کردن سریع پروتوکلهای ضد فیلتر مثل Shadowsocks و Outline و VMess رو فراهم میکنه.
من سعی میکنم این مقاله رو مطالعه کنم و اطلاعات کاملتری رو در اختیارتون قرار بدم
https://gfw.report/publications/usenixsecurity23/en/
سپاس فراوان
💔10🤔6😢3👎2
Forwarded from Sudoer - Powered OFF (Morteza Bashsiz)
درود
اطلاعرسانی
نسخه گولنگ اسکنر بروز شد
فیکس باگ ساخت پوشه result , config در سیستم عامل windows
ادیت لاجیک sort آی پی ها که قبلا بعد از اتمام اسکن آی پی ها صورت میگرفت اما الان با هر آی پی که برنامه پیدا میکند sort میشود
https://github.com/MortezaBashsiz/CFScanner/releases/tag/v23.05.11
سپاس
اطلاعرسانی
نسخه گولنگ اسکنر بروز شد
فیکس باگ ساخت پوشه result , config در سیستم عامل windows
ادیت لاجیک sort آی پی ها که قبلا بعد از اتمام اسکن آی پی ها صورت میگرفت اما الان با هر آی پی که برنامه پیدا میکند sort میشود
https://github.com/MortezaBashsiz/CFScanner/releases/tag/v23.05.11
سپاس
GitHub
Release v23.05.11 · MortezaBashsiz/CFScanner
CFScanner Golang Version
توجه
این ریلیز فقط شامل نسخه گولنگ می باشد و برای دریافت نسخه ویندوزی از لینک زیر اقدام نمایید:
https://github.com/MortezaBashsiz/CFScanner/releases/tag/v1.2.8530.30281
Not...
توجه
این ریلیز فقط شامل نسخه گولنگ می باشد و برای دریافت نسخه ویندوزی از لینک زیر اقدام نمایید:
https://github.com/MortezaBashsiz/CFScanner/releases/tag/v1.2.8530.30281
Not...
🆒3❤🔥1
Modern C++ Tutorial: C++11/14/17/20 On the Fly
https://github.com/changkun/modern-cpp-tutorial
The book claims to be "On the Fly". It intends to provide a comprehensive introduction to the relevant features of modern C++ (before 2020s). Readers can choose interesting content according to the following table of content to learn and quickly familiarize the new features you would like to know. Readers should be aware that not all of these features are required. Instead, it should be learned when you really need it.
At the same time, instead of coding only, the book introduces the historical background of its technical requirements (as simple as possible), which provides great help in understanding why these features came out.
#Cpp
https://github.com/changkun/modern-cpp-tutorial
The book claims to be "On the Fly". It intends to provide a comprehensive introduction to the relevant features of modern C++ (before 2020s). Readers can choose interesting content according to the following table of content to learn and quickly familiarize the new features you would like to know. Readers should be aware that not all of these features are required. Instead, it should be learned when you really need it.
At the same time, instead of coding only, the book introduces the historical background of its technical requirements (as simple as possible), which provides great help in understanding why these features came out.
#Cpp
GitHub
GitHub - changkun/modern-cpp-tutorial: 📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly | https://changkun.de/modern-cpp/
📚 Modern C++ Tutorial: C++11/14/17/20 On the Fly | https://changkun.de/modern-cpp/ - changkun/modern-cpp-tutorial
❤7✍2❤🔥1👌1👨💻1
Google I/O 2012 - Go Concurrency Patterns by Rob Pike
https://youtu.be/f6kdp27TYZs
Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code.
#Golang
#Concurrency
https://youtu.be/f6kdp27TYZs
Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems can be solved gracefully with simple Go code.
#Golang
#Concurrency
YouTube
Google I/O 2012 - Go Concurrency Patterns
Rob Pike
Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems…
Concurrency is the key to designing high performance network services. Go's concurrency primitives (goroutines and channels) provide a simple and efficient means of expressing concurrent execution. In this talk we see how tricky concurrency problems…
✍3⚡1