Mr Python | مستر پایتون
1.37K subscribers
302 photos
12 videos
8 files
358 links
مجموعه آموزش های ابزارنویسی و مهندسی معکوس

وبسایت مسترپایتون :
https://mrpythonblog.ir

ارتباط با ادمین :
@MrPythonAdmin

آپارات :
https://aparat.com/mrpythonblog

یوتیوب :
https://youtube.com/@mrpythonblog
Download Telegram
سلام
دوستان اگه خواستیم همین مدت در کنار کارای دیگه یه مجموعه چیت انجین پیشرفته رو دنبال کنیم ، پست ویدیویی ضبط کنیم ازش یا آموزش متنی بزاریم ؟
Final Results
23%
متنی
77%
ویدیویی
Mr Python | مستر پایتون
Video
یه همچین چیزی رو یه بار دیده بودم تو اینترنت که طرف اومده بود با یه موتور یه انگشت مکانیکی درست کرده بود که بازی stack رو بازی میکرد .
استک یه بازی موبایلیه که یه سری کاشی مکعبی شکل میاد رد میشه و شما باید دقیقا جوری کلیک کنی که صاف این کاشیا رو هم بیفته

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

نهایتا سروو رو با یه آردوینو uno بستم که براساس یه تاخیر یکسانی همینجور کلیک کنه رو گوشی . تا یه جایی خوب جواب میده . یکی از خوبی های بازی stack اینه که سرعت رفت و اومد کاشی ها کم و زیاد نمیشه درنتیجه شما یه تاخیر یکسانی همیشه بین کلیک کردنا نیاز داری .

اما یه جایی مشکل درست شد . وقتی که شما ۸ تا کاشی رو دقیقا درست بزنی ، بازی به عنوان جایزه یکم سایز کاشی هاتو بزرگتر میکنه . وقتی سایز کاشی ها بزرگ بشه ، اون تاخیر بینش هم متفاوت میشه . اگه دقت کنید تو ویدیو ۸ تا کاشی درست که زد کاشی نهمی بزرگتر شد و تاخیرش بهم ریخت و بعدیشو نتونست دقیق بزنه .
این قضیه مشکل ساز شد . چون نهایتا بعد از ۸ حرکت درست زمان بندیشو از دست میداد و چنتا کاشی رو اشتباه میزد تا دوباره از یه جایی همگام میشد و ۸ تا دیگه میزد .
این باعث میشه تا ابد نتونه درست بزنه و یه جایی متوقف بشه نهایتا .
روش های مختلفی رو سعی کردم برای حل این موضوع انتخاب کنم مثلا یه جوری برنامشو نوشتم که بعد از ۸ تا حرکت درست یکم تاخیر بینشو کم کنه . ولی بازم خیلی نتیجه نداد
یه چیز دیگه ایم که به ذهنم خورد این بود که با مهندسی معکوس منطق بازی رو جوری تغییر بدم که بعد از ۸ تا حرکت درست سایز کاشی ها بزرگ نشه . اگه میشد اینکارو کرد عالی میشد و ربات ما هیچوقت متوقف نمیشد .
فایل apk بازی رو ابزار apktool استخراج کردم (خود فایل های apk یه جور فایل فشرده و آرشیو شدس) و دیدم که فایلایی مثل libunity.so داخلشه . این به این معنیه که بازی با موتور بازی سازی unity ساخته شده

شما بازی هایی که با یونیتی ساخته شدن رو نمیتونید مستقیما با ابزار هایی مثل jadx دیکامپایلشون کنید به سورس کد جاوا چون اینکار نهایتا کدی رو به شما میده که مربوط به خود موتور یونیتیه نه منطق واقعی بازی . یونیتی کد واقعی بازی که برنامه نویسش نوشته رو در قالب یکسری فایل کتابخونه ای توی apk خروجی جا میده و بعد حین اجرا کد های اونو اجرا میکنه . یونیتی تا اونجایی که میدونم به دو حالت میتونه کد های بازی رو در فایل apk قرار بده . حالت اول اینه که کد بازی که داخل خود موتور یونیتی به زبان c sharp نوشته شده رو به بایت کد (زبان میانی سی شارپ که توسط runtime های چارچوب دات نت قابل اجراست) تبدیل میکنه و حین اجرای بازی از ابزار mono برای اجرا کردن اون بایت کد استفاده میکنه (mono یه پیاده سازی از چارچوب دات نته اگه اشتباه نکنم که میتونه بایت کد سی شارپ رو اجرا کنه)
این یه حالت اجرای کد توسط یونیتی بود . یه حالت جدیدترش استفاده از ابزار il2cpp هست . این ابزار میاد کدی که برنامه نویس نوشته رو به کد اجرایی native همون پلتفرمی که بازی قراره روش اجرا بشه تبدیل میکنه (مثلا arm) و دیگه برای اجراش نیازی به mono نیست .
بازی استک از حالت دوم یعنی il2cpp استفاده کرده بود چون داخل فایل های استخراج شدش ، libil2cpp.so هم وجود داشت .
ابزار هایی هستند مثل il2cppInspector که میتونن بازی هایی که با روش il2cpp ساخته شدن رو تحلیل کنن و نهایتا به وسیله ی اطلاعاتی که به شما میدن میتونید این بازی هارو دیکامپایل کنید تا حد زیادی .

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

اگه تو این زمینه تجربه دارید به خصوص رو خود همین بازی خوشحال میشم راهنمایی کنید
Mr Python | مستر پایتون pinned «سلام
دوستان اگه خواستیم همین مدت در کنار کارای دیگه یه مجموعه چیت انجین پیشرفته رو دنبال کنیم ، پست ویدیویی ضبط کنیم ازش یا آموزش متنی بزاریم ؟
»
🔴 ویدیو هایی که از مجموعه مفاهیم شبکه ارسال میشه ، پیشنیاز محتوای مربوط به تست نفوذ شبکس که در آینده منتشر میشه
👇
🟣 مفاهیم شبکه - مدل OSI

در این قسمت از مجموعه مفاهیم شبکه ، به بررسی مدل OSI و TCP/IP میپردازیم .

Aparat : https://www.aparat.com/v/ID7Y8

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل ARP

در این قسمت ابتدا به مفهوم پروتکل میپردازیم . اصلا پروتکل چیه ؟ و بعد از اون به تشریح و بررسی کارکرد پروتکل ARP میپردازیم

Aparat : https://www.aparat.com/v/wU7Tg

🆔 : @mrpythonblog
Mr Python | مستر پایتون
خب جواب داد این روش
نهایتا تونستم نسخه های قبلی بازی رو به کمک il2cppInspector داخل گیدرا disassmble کنم و اون نقطه ای از کد که وظیفه ی افزایش سایز کاشی هارو داشت رو غیر فعال کردم . اینجوری دیگه رباتمون ، تا هروقت دلمون بخواد به درستی بازی رو ادامه میده چون تاخیر زمانی بین رد شدن کاشی ها اصلا تغییری نمیکنه
فقط باید اون گیره انگشت مکانیکی رو محکم کنیم یه جا و چسب کاری و ایناش اوکی باشه که از من چون تو این موضوع یکم مشکل داشت آخر کار بد عمل کرد

یه پست از روش انجامش مینویسم به زودی انشاءالله
🟣 مفاهیم شبکه - پروتکل اینترنت (IP)

همه ی ما با آدرس های IP آشنا هستیم . مفهوم آدرس های IP فقط بخشی از استاندارد های پروتکل اینترنت (IP) است . در این قسمت از دید یک پروتکل لایه شبکه به بررسی IP میپردازیم .

Aparat : https://www.aparat.com/v/nId3P

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل ICMP

در این قسمت و در ادامه پروتکل های لایه شبکه ، به بررسی پروتکل عیب یابی ICMP و بسته های آن خواهیم پرداخت .

Aparat : https://www.aparat.com/v/KTkV4

🆔 : @mrpythonblog
بلاگ بیان از دیروز ، در دسترس نیست و بنابراین وبلاگ قدیمی (mrpython.blog.ir) تا این لحظه باز نمیشه (وبسایت به درستی در دسترسه) .
مواقعی مثل این هستند که ما میخوایم به محض اینکه سایت مورد نظرمون در دسترس قرار گرفت خبردار بشیم . روش دستیش اینه که دائم هی چک کنیم در دسترسه یا نه . ولی میتونیم یه اسکریپت Bash (لینوکس) یا Batch (ویندوز) بنویسیم تا دائم برامون چک کنه و هروقت وصل شد خبرمون کنه

برای اینکار ، داخل اسکریپتمون در یک حلقه لوپ دائما با یک تاخیر زمانی سایت مقصد رو ping میکنیم و تازمانی که پینگ ما ارتباطش برقرار نمیشه اینکارو ادامه میدیم . وقتی وصل شد میتونیم بگیم یه beep برامون بزنه یا یه لاگی یه جایی بندازه که خبردار شیم :

🐧 در لینوکس :
#!/bin/bash
ping mrpython.blog.ir -c 1 -W 2
while [[ $? != 0 ]]
do
    ping mrpython.blog.ir -c 1 -W 5
done

# on success :

beep
clear ; echo "bayan is up now :)"


🪟 در ویندوز :
@echo off
:loop
ping mrpython.blog.ir -n 1 -w 5000
if %ERRORLEVEL% EQU 0 goto ok
goto loop
:ok
cls 
echo bayan is up now :)
pause > nul

در مورد سوییچ های  ping هم در لینوکس -c تعداد بسته های ارسالی رو مشخص میکنه که گفتیم یکی بفرسته و -W هم در واحد ثانیه میگه چقدر برای جواب پینگ منتظر بمونیم که گفتیم ۵ ثانیه
همین سوییچا تو پینگ ویندوزم هست . در ویندوز سوییچ c مشخص کننده تعداد بسته است و سوییچ w مشخص کننده زمان منتظر موندن در واحد میلی ثانیه

🆔 : @mrpythonblog
🔴 شلکد (Shellcode) چیست و چگونه اجرا میشود ؟

در این مطلب به بررسی اینکه Shellcode چیست و روش اجرای Shellcode با زبان C و در سیستم عامل ویندوز خواهیم پرداخت .

https://mrpythonblog.ir/shellcode

#توسعه_بدافزار

🆔 : @mrpythonblog
primes = [13 , 17, 23]

for prime in primes :
    for i in range (prime + 1 , prime + 100):
        if i % prime == 0 :
            print ("to in donya {} bar {} bakhsh pazireh :(".format(i , prime))
      
input()

تو دنیایی که ۹۱ بر ۱۳ ، ۵۱ بر ۱۷ ، ۷۸ بر ۱۳ و ... بخش پذیره هیچ چیز از هیچکس بعید نیست ...

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - کارگاه لایه شبکه

در این قسمت به بررسی عملی پروتکل های لایه شبکه که در قسمت های قبلی گفته شد میپردازیم . از ابزار ping استفاده میکنیم و ترافیک شبکه را به وسیله برنامه Wireshark بررسی خواهیم کرد .

Aparat : https://www.aparat.com/v/KGdhT

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل UDP

از این قسمت وارد پروتکل های لایه انتقال (Transport) میشیم و در این قسمت به معرفی کارکرد و هدف لایه انتقال و همچنین پروتکل UDP میپردازیم .

Aparat : https://www.aparat.com/v/Kgp2a

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل TCP

در این قسمت به بررسی و شرح کارکرد پروتکل TCP میپردازیم . پروسه دست دهی سه مرحله ای آن را بررسی میکنیم و همچنین با مفاهیم مربوط به TCP مثل Sequence Number ها , Acknowledgement Number ها و flag های TCP آشنا میشویم و غیره .

Aparat : https://www.aparat.com/v/KoXRe

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - کارگاه لایه انتقال (Transport)

در این قسمت به بررسی عملی پروتکل های لایه انتقال ، TCP و UDP میپردازیم . با ابزار Netcat آشنا میشیم و ازش استفاده میکنیم تا ارتباط TCP , UDP برقرار کنیم . سپس ترافیک شبکه تولید شده را به وسیله Wireshark شنود و بررسی میکنیم .

Aparat : https://www.aparat.com/v/rVDFJ

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - پروتکل HTTP

از این قسمت وارد پروتکل های لایه Application خواهیم شد . در این قسمت به بررسی پروتکل پر استفاده و مرسوم HTTP میپردازیم .

Aparat : https://www.aparat.com/v/IHYLM

🆔 : @mrpythonblog
🟣 مفاهیم شبکه - کارگاه HTTP و HTTPS

در این قسمت به بررسی عملی پروتکل های HTTP , HTTPS خواهیم پرداخت . از ابزار netcat برای ارسال دستی درخواست های HTTP و گرفتن جواب استفاده میکنیم همچنین با نسخه بهبود یافته netcat به نام ncat آشنا میشیم و با استفاده از اون به صورت دستی درخواست های HTTPS میفرستیم و نتیجه را چک میکنیم .

Aparat : https://www.aparat.com/v/gQ5Xc

🆔 : @mrpythonblog