ɪɴ ᴍʏ ʜᴇᴀᴅ
فرق بین encoding و encryption و obfuscation چیه؟
اکثر بچه های این حوزه اصطلاحات encoding و encryption و obfuscation رو باهمدیگه اشتباه میگیرن.
ی بار برای همیشه میخوام با مثال توضیحش بدم چون تقریبا هرکیو دیدم اینارو باهم اشتباه میگرفته...
رمزگذاری (encoding) چیه؟
به زبان ساده یعنی تبدیل داده به فرم دیگه. خب این یعنی چی؟ مثلا encoding رو میشه به تبدیل افکارمون به داده متنی یا صوتی تشبیه کرد
الآن من دارم با استفاده از ادبیات فارسی منظور خودم و داده ای که توی سرم دارم رو انکد میکنم و میدم به شما که بخونی و متوجهش بشی
مثلا ما با جابجایی حروف یک داده میتونیم اونو انکد کنیم :
اینجا ما اومدیم متن "this is a test" رو با کدی که نوشتیم انکد کردیم. به همین راحتی متن رو از ی فرم به ی فرم دیگه تبدیل کردیم (خروجی کد بالا میشه "uijt!jt!b!uftu" این یعنی فرمشو عوض کردیم...)
خب حالا که فهمیدیم encoding چیه بریم سراغ encryption
ما هم به encoding و هم به encryption میگیم رمزگذاری ولی در اصل encryption ی کوچولو پیشرفته تره...
ما طی انجام عمل encryption میایم همون encode رو انجام میدیم ولی با ی کلید امنیتی
یعنی چی؟
یعنی ما میایم ی الگوریتم مینویسیم که بیاد دیتامونو از ی فرم به فرم دیگه تبدیل کنه ولی با استفاده از یک کلید ، و همین باعث میشه که با تغییر کلید ، اگه حتی دیتا هم یکسان باشه هر سری بتونیم خروجی متفاوتی با خروجی قبلی بگیریم.
ی مثال میزنم واستون ، مثلا کد بالا رو در نظر بگیرید
ما اومدیم این کارو کردیم :
اومدیم عدد ASCII کاراکتر رو گرفتیم و یدونه بهش اضافه کردیم و دوباره معادل عددی که به دست اومده رو تبدیل به کاراکتر ASCII کردیم و به متغیر result اضافه کردیم...
حالا چی میشه اگه بجای یدونه بیایم n تا بهش اضافه کنیم؟
اینجا در اصل کلید ما 1 هستش ولی خب توی الگوریتم بالا که نوشتیم ثابته... میتونیم متغیرش کنیم :
اینجا ما اومدیم دقیقا همون کدی که واسه انکد کردن نوشته بودیم رو نوشتیم ولی با ی کلید
اینجا متن ما داره با کلید 10 انکریپت میشه که خروجیش میشه :
اگه مثلا با کلید 13 انکریپت کنیم خروجی متفاوت خواهد بود :
حالا مبهم سازی(obfuscation) چیه؟
اول متن هم گفتم اکثر کسایی که توی این حوزه فعالیت میکنن اینارو باهم اشتباه میگیرن ولی بیشترین اشتباهی که میشه روی obfuscation هستش که با encode اشتباهش میگیرن...
اینجا ما سعی میکنیم با استفاده از ی سری روش های خاص (بعضا encode و encrypt هم استفاده میکنیم واسه مبهم سازی) کدمون رو سخت و غیر قابل فهم بکنیم ، طوری که وقتی کسی میبینتش متوجه الگوریتم و طرز کارکرد کد نشه
بیشتر هم JS کار ها ازش استفاده میکنن برای اینکه کسی متوجه کدایی که زدن نشه.
مثلا من چندسال پیش ی همچین کدی نوشته بودم :
این کد فقط توی یک خط نوشته شده و ی کار ساده رو داره انجام میده.
اگه اجراش کنید اینو پرینت میکنه :
خب ما میتونستیم انقد به خودمون زحمت ندیم و مستقیم بیایم همچین کدی بنویسیم واسش :
ولی خب هدف ما obfuscate کردن کد بود :)
ببینید کد به این سادگی رو تونستیم چقدر پیچیده و سخت کنیم. (سخت تر از اینم میشه کرد)
به این میگن obfuscation یا مبهم سازی.
ی بار برای همیشه میخوام با مثال توضیحش بدم چون تقریبا هرکیو دیدم اینارو باهم اشتباه میگرفته...
رمزگذاری (encoding) چیه؟
به زبان ساده یعنی تبدیل داده به فرم دیگه. خب این یعنی چی؟ مثلا encoding رو میشه به تبدیل افکارمون به داده متنی یا صوتی تشبیه کرد
الآن من دارم با استفاده از ادبیات فارسی منظور خودم و داده ای که توی سرم دارم رو انکد میکنم و میدم به شما که بخونی و متوجهش بشی
مثلا ما با جابجایی حروف یک داده میتونیم اونو انکد کنیم :
def encode(text):
result = str()
for i in text:
result += chr(ord(i)+1)
return result
encoded_text = encode('this is a test')
print(encoded_text)
اینجا ما اومدیم متن "this is a test" رو با کدی که نوشتیم انکد کردیم. به همین راحتی متن رو از ی فرم به ی فرم دیگه تبدیل کردیم (خروجی کد بالا میشه "uijt!jt!b!uftu" این یعنی فرمشو عوض کردیم...)
خب حالا که فهمیدیم encoding چیه بریم سراغ encryption
ما هم به encoding و هم به encryption میگیم رمزگذاری ولی در اصل encryption ی کوچولو پیشرفته تره...
ما طی انجام عمل encryption میایم همون encode رو انجام میدیم ولی با ی کلید امنیتی
یعنی چی؟
یعنی ما میایم ی الگوریتم مینویسیم که بیاد دیتامونو از ی فرم به فرم دیگه تبدیل کنه ولی با استفاده از یک کلید ، و همین باعث میشه که با تغییر کلید ، اگه حتی دیتا هم یکسان باشه هر سری بتونیم خروجی متفاوتی با خروجی قبلی بگیریم.
ی مثال میزنم واستون ، مثلا کد بالا رو در نظر بگیرید
ما اومدیم این کارو کردیم :
result += chr(ord(i)+1)
اومدیم عدد ASCII کاراکتر رو گرفتیم و یدونه بهش اضافه کردیم و دوباره معادل عددی که به دست اومده رو تبدیل به کاراکتر ASCII کردیم و به متغیر result اضافه کردیم...
حالا چی میشه اگه بجای یدونه بیایم n تا بهش اضافه کنیم؟
اینجا در اصل کلید ما 1 هستش ولی خب توی الگوریتم بالا که نوشتیم ثابته... میتونیم متغیرش کنیم :
def encrypt(text, key):
result = str()
for i in text:
result += chr(ord(i)+key)
return result
encrypted_text = encrypt('this is a test', 10)
print(encrypted_text)
اینجا ما اومدیم دقیقا همون کدی که واسه انکد کردن نوشته بودیم رو نوشتیم ولی با ی کلید
اینجا متن ما داره با کلید 10 انکریپت میشه که خروجیش میشه :
~rs}*s}*k*~o}~اگه مثلا با کلید 13 انکریپت کنیم خروجی متفاوت خواهد بود :
uv-v-n-rحالا مبهم سازی(obfuscation) چیه؟
اول متن هم گفتم اکثر کسایی که توی این حوزه فعالیت میکنن اینارو باهم اشتباه میگیرن ولی بیشترین اشتباهی که میشه روی obfuscation هستش که با encode اشتباهش میگیرن...
اینجا ما سعی میکنیم با استفاده از ی سری روش های خاص (بعضا encode و encrypt هم استفاده میکنیم واسه مبهم سازی) کدمون رو سخت و غیر قابل فهم بکنیم ، طوری که وقتی کسی میبینتش متوجه الگوریتم و طرز کارکرد کد نشه
بیشتر هم JS کار ها ازش استفاده میکنن برای اینکه کسی متوجه کدایی که زدن نشه.
مثلا من چندسال پیش ی همچین کدی نوشته بودم :
print(*[''.join([chr(42) if int(n) else chr(32) for n in i]) for i in [str(bin(int(i))).replace('0b','').zfill(11) for i in str(0x12653f8317a6a2f478e3d40c8).split('90')]],''.join([chr(int(i,16)-0x20a5) for i in ['20e520f5211e210420f8211a21092114'[i:i+4] for i in range(0,32,4)]]),sep='\n')این کد فقط توی یک خط نوشته شده و ی کار ساده رو داره انجام میده.
اگه اجراش کنید اینو پرینت میکنه :
*** ***
* * *
* *
* *
* *
*
@Py_Sudo
خب ما میتونستیم انقد به خودمون زحمت ندیم و مستقیم بیایم همچین کدی بنویسیم واسش :
print('''
*** ***
* * *
* *
* *
* *
*
@Py_Sudo''')ولی خب هدف ما obfuscate کردن کد بود :)
ببینید کد به این سادگی رو تونستیم چقدر پیچیده و سخت کنیم. (سخت تر از اینم میشه کرد)
به این میگن obfuscation یا مبهم سازی.
❤🔥3
ɪɴ ᴍʏ ʜᴇᴀᴅ
ret hijacking توی اسمبلی چیه و چطوری پیاده سازی میشه؟
Media is too big
VIEW IN TELEGRAM
این ویدیو هم هدیه من به دوستداران مهندسی معکوس و اون دسته از دوستانی که مشتاق یادگیری بیشتر درمورد سطوح پایین تر کامپیوتر هستن
امیدوارم براتون مفید بوده باشه و تونسته باشم منظور و مفاهیم رو درست حسابی بیان کرده باشم
اگه هم جاییش رو متوجه نشدید و براتون گُنگ بود زیر همین پست بیانش کنید تا با همدیگه رفع اشکال کنیم❤️
بابت بعضی از جاهای ویدیو هم که صدا قطع و وصل میشد عذرخواهم ، با womic صدا ضبط میشد یکی دوجا از ویدیو صدا چند لحظه قطع و وصل شد...
امیدوارم براتون مفید بوده باشه و تونسته باشم منظور و مفاهیم رو درست حسابی بیان کرده باشم
اگه هم جاییش رو متوجه نشدید و براتون گُنگ بود زیر همین پست بیانش کنید تا با همدیگه رفع اشکال کنیم❤️
بابت بعضی از جاهای ویدیو هم که صدا قطع و وصل میشد عذرخواهم ، با womic صدا ضبط میشد یکی دوجا از ویدیو صدا چند لحظه قطع و وصل شد...
🔥3
ɪɴ ᴍʏ ʜᴇᴀᴅ
توی این ویدیو ی کد زدیم و یک لایسنس براش در نظر گرفتیم ، سعی کردیم بدون داشتن لایسنس به برنامه ورودی کنیم و در نهایت برنامه رو مهندسی معکوس کردیم تا منطقش رو بفهمیم. برای درک بهتر با مثال های پایتونی هم سعی کردم کد های اسمبلی ای که از فایل exe گرفتیم رو توضیخ…
نمیدونم چرا این ویدیو رو با گوشی میبینم کیفیتش اوکیه با ولی لپ تاپ میبینم خیلی بی کیفیته
اثر دانینگ کروگر میگه کسی که تخصصی توی حوزه ای نداره اعتماد به نفسش توی اون حوزه از کسایی که متخصصن بیشتره ، من اینطور افراد رو هرروز دارم میبینم (تقریبا 70 درصد افرادی که توی تلگرام دیدم ادعای برنامه نویسی دارن داستانشون همین بوده...)
و میگه هرچقدر که تخصصت بیشتر میشه اعتماد به نفست میاد پایین تر ، ولی طولی نمیکشه که هرچقدر بیشتر ادامه میدی اعتماد به نفست هم بیشتر میشه
😂این نمودار رو خودتون نگاه کنید میفهمید :
و میگه هرچقدر که تخصصت بیشتر میشه اعتماد به نفست میاد پایین تر ، ولی طولی نمیکشه که هرچقدر بیشتر ادامه میدی اعتماد به نفست هم بیشتر میشه
😂این نمودار رو خودتون نگاه کنید میفهمید :
👍9
اگه باتی ساختید که قیمت دلار رو بصورت زنده از API میگیره و نمایش میده ، به خودتون زحمت اضافی ندید ، API رو حذف کنید از پروژه.
راه حلش اینه که فقط هر روز بصورت رندوم از 3 تا 5 هزار تومن به مقدار فعلی اضافه کنید
همون میشه زیاد فرقی نمیکنه
تو فکر پایین اومدنشم نباشید حالا حالاها😂😂
راه حلش اینه که فقط هر روز بصورت رندوم از 3 تا 5 هزار تومن به مقدار فعلی اضافه کنید
همون میشه زیاد فرقی نمیکنه
تو فکر پایین اومدنشم نباشید حالا حالاها😂😂
👍11❤2
ی کوچولو محتوا ها رو مرتب کنیم اینطوری دسترسی بهشون راحت تره :
- سیستم فایل چیه و چطوری کار میکنه؟
- دستکاری کردن opcode های فایل کامپایل شده پایتونی
- چطوری مهندسی معکوس میکنن و لایسنس برنامه هارو دور میزنن؟
- چطوری سنجشو هک کردم؟
- اعداد منفی چطوری توی مموری ذخیره میشن؟
- پیچیدگی محاسباتی چیه و به چه دردی میخوره؟
- واقعا switch/case پیچیدگی زمانیش O(1)؟
- حمله CSRF چیه و چطوری میتونیم پیاده سازیش کنیم؟
- چطوری اطلاعاتمون رو از عکسای ظاهرا بی اهمیت در میارن؟
- حمله HID چیه؟
- حمله Meltdown و Spectre چین؟
- واقعا کانفیگای پابلیک امن هستن یا نه؟
- چطوری توی سامانه سمیاد وارد اکانت استادامون شدم؟
- اپلیکیشن باهم رو چطوری هک کردم؟
- یواسبی مخرب چیه و چطوری کار میکنه؟
- فرق بین encoding و encryption و obfuscation چیه؟
- تکنیک ret hijacking توی اسمبلی چیه و چطوری میتونیم پیاده سازیش کنیم؟
- چطوری راهی شو رو هک کردم؟
- اعداد توی CPU هامون چطوری جمع میشن؟
- هک کردن کامپیوتر با صدای فن
گیتهاب من : Github.com/PySudo
این لیست همزمان با آپلود شدن پستای جدید آپدیت میشه.
- سیستم فایل چیه و چطوری کار میکنه؟
- دستکاری کردن opcode های فایل کامپایل شده پایتونی
- چطوری مهندسی معکوس میکنن و لایسنس برنامه هارو دور میزنن؟
- چطوری سنجشو هک کردم؟
- اعداد منفی چطوری توی مموری ذخیره میشن؟
- پیچیدگی محاسباتی چیه و به چه دردی میخوره؟
- واقعا switch/case پیچیدگی زمانیش O(1)؟
- حمله CSRF چیه و چطوری میتونیم پیاده سازیش کنیم؟
- چطوری اطلاعاتمون رو از عکسای ظاهرا بی اهمیت در میارن؟
- حمله HID چیه؟
- حمله Meltdown و Spectre چین؟
- واقعا کانفیگای پابلیک امن هستن یا نه؟
- چطوری توی سامانه سمیاد وارد اکانت استادامون شدم؟
- اپلیکیشن باهم رو چطوری هک کردم؟
- یواسبی مخرب چیه و چطوری کار میکنه؟
- فرق بین encoding و encryption و obfuscation چیه؟
- تکنیک ret hijacking توی اسمبلی چیه و چطوری میتونیم پیاده سازیش کنیم؟
- چطوری راهی شو رو هک کردم؟
- اعداد توی CPU هامون چطوری جمع میشن؟
- هک کردن کامپیوتر با صدای فن
گیتهاب من : Github.com/PySudo
این لیست همزمان با آپلود شدن پستای جدید آپدیت میشه.
❤18
روزتون مبارک کوچولوهای درحال انقراض🥰 ( AI داره منقرضمون میکنه )
❤19
یادش بخیر الآن یهویی یادم افتاد
یکی از بچها ی گروه داده بود که باهاشون مثکه بد بود
رفتم توش دیدم ی بات گیم دارن که ادمینه من اومدم روی این یکم کرم بریزم ببینم ازش چیزی در میاد یا نه
رفتم توی صفحه پرداختش پرداختو انجام ندادم انصرافو زدم ، ی callback داشت که این token پرداخت و مقدار پرداختی رو تحت عنوان amount داشت بصورت ی پارامتر میفرستاد واسه ی URL ای
اون وسط ی پارامتر success هم بود
اونو از 0 به 1 تغییر دادم دیدم روی صفحه وب زد پرداخت موفق بود
گفتم خب شاید این ی پارامتر کوچولوعه که هر سری نره token رو چک کنه همونجا دیگه success رو چک میکنه و میبینه اگه 0 بود توی صفحه نشون میده پرداخت ناموفق اگه هم 1 بود نشون میده موفق ولی تغییری توی بکند ایجاد نمیشه
برگشتم توی بات دیدم نوشته حساب شما n تومن شارژ شد
رفتم صفحه رو ی دور دیگه رفرش کردم پارامتر success هم 1 بود
دوباره از بات پیام اومد که حسابت شارژ شد😂😂😂
(اسم و طرز کارکرد پارامترا رو نمیدونم درست گفتم یا نه موضوع مال خیلی وقت پیشه ولی خب الگوریتمش ی همچین شتی بود)
یکی از بچها ی گروه داده بود که باهاشون مثکه بد بود
رفتم توش دیدم ی بات گیم دارن که ادمینه من اومدم روی این یکم کرم بریزم ببینم ازش چیزی در میاد یا نه
رفتم توی صفحه پرداختش پرداختو انجام ندادم انصرافو زدم ، ی callback داشت که این token پرداخت و مقدار پرداختی رو تحت عنوان amount داشت بصورت ی پارامتر میفرستاد واسه ی URL ای
اون وسط ی پارامتر success هم بود
اونو از 0 به 1 تغییر دادم دیدم روی صفحه وب زد پرداخت موفق بود
گفتم خب شاید این ی پارامتر کوچولوعه که هر سری نره token رو چک کنه همونجا دیگه success رو چک میکنه و میبینه اگه 0 بود توی صفحه نشون میده پرداخت ناموفق اگه هم 1 بود نشون میده موفق ولی تغییری توی بکند ایجاد نمیشه
برگشتم توی بات دیدم نوشته حساب شما n تومن شارژ شد
رفتم صفحه رو ی دور دیگه رفرش کردم پارامتر success هم 1 بود
دوباره از بات پیام اومد که حسابت شارژ شد😂😂😂
(اسم و طرز کارکرد پارامترا رو نمیدونم درست گفتم یا نه موضوع مال خیلی وقت پیشه ولی خب الگوریتمش ی همچین شتی بود)
❤2
این بود :)
هنوز موجودیارو دارم توی بات
اگه خواستید شما هم تستش کنید ، اینی که دارم بهتون میگم واسه یک سال و خورده ای قبله
نمیدونم هنوز همچین باگیو داره یا نه ولی خب...
هنوز موجودیارو دارم توی بات
اگه خواستید شما هم تستش کنید ، اینی که دارم بهتون میگم واسه یک سال و خورده ای قبله
نمیدونم هنوز همچین باگیو داره یا نه ولی خب...
من نمیفهمم
این بلو بانک اومده مسابقه CTF گذاشته ، سایتش تماماً فارسیه و حتی نمیشه زبان سایتو تغییر داد ، بعد تو چنل تلگرامیش داره میگه :
WE'RE BACK! 🚩
و
SamAleyk, ZamZam, and MBA are released now! 👾🚩
و...
داداش خب مگه مجبورت کردن انگلیسی بنویسی آخه اصن مگه کسی غیر از ایرانیاهم تو چالشت شرکت کرده که داری انگلیسی مینویسی
توضیحات چالشاش توی سایتشم انگلیسیه بعد کل منوی سایت و همه چیزش کامل فارسیه
نمیدونم اینا مارو مسخره کردن یا خودشونو
سایت هم که خداروشکر ریسپانسیو نیست میری توش احساس میکنی تو دوران جوونیای استیو جابز داری زندگی میکنی
این بلو بانک اومده مسابقه CTF گذاشته ، سایتش تماماً فارسیه و حتی نمیشه زبان سایتو تغییر داد ، بعد تو چنل تلگرامیش داره میگه :
WE'RE BACK! 🚩
و
SamAleyk, ZamZam, and MBA are released now! 👾🚩
و...
داداش خب مگه مجبورت کردن انگلیسی بنویسی آخه اصن مگه کسی غیر از ایرانیاهم تو چالشت شرکت کرده که داری انگلیسی مینویسی
توضیحات چالشاش توی سایتشم انگلیسیه بعد کل منوی سایت و همه چیزش کامل فارسیه
نمیدونم اینا مارو مسخره کردن یا خودشونو
سایت هم که خداروشکر ریسپانسیو نیست میری توش احساس میکنی تو دوران جوونیای استیو جابز داری زندگی میکنی
🔥10👍3
ɪɴ ᴍʏ ʜᴇᴀᴅ
من نمیفهمم این بلو بانک اومده مسابقه CTF گذاشته ، سایتش تماماً فارسیه و حتی نمیشه زبان سایتو تغییر داد ، بعد تو چنل تلگرامیش داره میگه : WE'RE BACK! 🚩 و SamAleyk, ZamZam, and MBA are released now! 👾🚩 و... داداش خب مگه مجبورت کردن انگلیسی بنویسی آخه اصن مگه…
صفحه وب یکی از چالشای CTF بلو بانک رو مشاهده میکنید
حالا ما که ندادیم AI ولی خب این راه دور زدن داره خودتونو خسته نمیکردید
حالا ما که ندادیم AI ولی خب این راه دور زدن داره خودتونو خسته نمیکردید
❤6
ی سوال دارم ازتون
اگه کلی بات و چنل کانفیگ فروشی زیر دستتون بود و کنترل کامل روی باتاشون داشتید چیکار میکردید
عملا نزدیک 200 - 300 تا بات و چنل بزرگ کانفیگ فروشی رو بهش تا خشتک دسترسی دارید😂
اگه کلی بات و چنل کانفیگ فروشی زیر دستتون بود و کنترل کامل روی باتاشون داشتید چیکار میکردید
عملا نزدیک 200 - 300 تا بات و چنل بزرگ کانفیگ فروشی رو بهش تا خشتک دسترسی دارید😂
❤2
ɪɴ ᴍʏ ʜᴇᴀᴅ
ی سوال دارم ازتون اگه کلی بات و چنل کانفیگ فروشی زیر دستتون بود و کنترل کامل روی باتاشون داشتید چیکار میکردید عملا نزدیک 200 - 300 تا بات و چنل بزرگ کانفیگ فروشی رو بهش تا خشتک دسترسی دارید😂
ما که تک خور نیستیم ، حالا که این همه بات کانفیگ و پنل vpn و فلان بهمان زیر دستمونه شماهم بیاید ی استفاده ای بکنید لذتشو ببرید...
کانفیگ نامحدوده تا وقتیکه پنل یارو بالاست اینم فعاله :
https://panelpasarguard.v2zoro.ir:8000/sub/djMsMjczLDE3ODk4MzczODU.-u84MRzsY4YXyOK9yiglzNfNFC2I6WAa6v2sw9ntQPE
ادیت : آقا ترکوندینش💀😂
کانفیگ نامحدوده تا وقتیکه پنل یارو بالاست اینم فعاله :
ادیت : آقا ترکوندینش💀😂
❤6🔥4
چی میشد اگه میتونستید مستقیما به RAM ی دستگاه دسترسی داشته باشید؟
منظورم از دستگاه فقط کامپیوتر نیست ، میتونه گوشی توی دستتون باشه ، ی سیستم دیگه یا حتی ی میکروکنترلر مثل ESP32...
این موضوع یکی از این بحثای سخت افزاریه که وقتی بفهمید چطوری کار میکنه میبینید چقدر میتونه عجیب و جالب باشه
احتمالا همین روزا ی ویدیو دربارش بگیرم بزارم توی چنل...
منظورم از دستگاه فقط کامپیوتر نیست ، میتونه گوشی توی دستتون باشه ، ی سیستم دیگه یا حتی ی میکروکنترلر مثل ESP32...
این موضوع یکی از این بحثای سخت افزاریه که وقتی بفهمید چطوری کار میکنه میبینید چقدر میتونه عجیب و جالب باشه
احتمالا همین روزا ی ویدیو دربارش بگیرم بزارم توی چنل...
🔥13❤1