Skip to content

آموزش تقلب در کوئرا بدون لو رفتن

Notifications You must be signed in to change notification settings

Ahmadrezadl/Cheat_in_Quera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

مقدمه

اگه دانشجوی مهندسی کامپیوتر یا علوم کامپیوتر هستید حتما با سایت کوئرا آشنایی دارید

معمولا استادا برای تصحیح تمارین برنامه نویسی از این سایت استفاده میکنن و این سایت سیستم تقلب یاب داره

یعنی اگه شما و دوستتون باهم کد بزنید و فقط کمی تفاوت بین کد شما باشه، تقلب میخورید و ازتون نمره کم میشه

کوئرا برای پیدا کردن شباهت بین دو کد از سیستم MOSS استفاده میکنه

تو این آموزش میخوایم یاد بگیریم چجوری این سیستمو دور بزنیم =)

ویژگی های سیستم ماس

  1. ماس به فاصله های الکی حساس نیست

پس هرچقد الکی برید خط بعد یا اسپیس بزنید ماس کاری باهاشون نداره

  1. جابجایی خط ها با هم کمکی به شما نمیکنه

اگه یه دو خط کد رو باهم جابجا کنید هیچ فرقی نداره

  1. کد های الکی تشخیص داده میشه

اگه بیاید وسط کدتون متغییر الکی تعریف کنید تا کدتون با نسخه اصلی فرق کنه ماس به اون متغییر تعریف شده ی الکی هم کار نداره

  1. اسم متغییر ها و تابع ها و کلاس ها اهمیت نداره

البته که اگه یه استاد بخواد کد شمارو بررسی بیشتر کنه اسم ها اهمیت زیادی دارن و نباید دقیقا شبیه باشن. ولی ماس به این هم اهمیتی نمیده.

  1. کامنت ها هیچ تاثیری ندارند

گرچه پاک کردن کامنت های کد اصلی برای لو رفتن توسط چشم انسان بسیار پر کاربرده، اما ماس اون هارو پاک شده در نظر میگیره...

آموزش دور زدن سیستم MOSS

1. تابع ساختن و از تابع درووردن

میتونید برنامتون رو به تابع های متعدد تبدیل کنید یا اگر خودش تابع زیادی داره، تا جایی که میتونید تابع هارو وارد main کنید

2. تا جایی که میشه روش های بدیهی را عوض کنید

به چهار کد زیر توجه کنید،

int a , b; 
cin>>a>>b;
if(a < b)
  cout<<a<<" < "<<b;
else
  cout<<a<<" >= "<<b;
int a;
cin>>a;
int b;
cin>>b;
cout<< a << (a < b ? " < " : " >= " ) << b;
int a;
int b;
cin>>a>>b;
if(a >= b)
{
  cout<<a;
  cout<<<<" >= ";
  cout<<b;
}
else
{
  cout<<a;
  cout<<" < ";
  cout<<b;
}
int a , b; 
cin>>a;
cin>>b;
if(a < b){
  cout<<a<<" < "<<b;
  return;
}
cout<<a<<" >= "<<b;

همانطور که میبینید 3 خط کد ساده رو به چندین روش مختلف زد!!!

3. جابجای تابع به بالا یا پایین Main

در بیشتر زبان ها با جابجا کردن تابع ها به بالا یا پایین تابع main میتوانید سیستم moss را گول بزنید

به مثال زیر توجه کنید:

void hello(){
  printf("hello");
}

int main(){
  hello();
}
void hello();

int main(){
  hello();
}

void hello(){
  printf("hello");
}

4. استفاده از هوش مصنوعی

یکی از ساده‌ترین راه‌ها برای تغییر کد و جلوگیری از تشخیص شباهت، استفاده از مدل‌های زبانی پیشرفته مانند ChatGPT یا DeepSeek است.

پرامپت پیشنهادی:

Refactor this code while preserving its functionality. Make as many structural and stylistic changes as possible to reduce similarity detection.

همچنین می‌توانید از هوش مصنوعی بخواهید تا کد را با متدهای متنوع و جدید بازنویسی کند:

Change this code as much as you can while keeping the logic intact. Use different function structures, loops, and logic transformations.

با استفاده از این روش، می‌توان بدون نیاز به تغییر دستی، نسخه‌های متفاوتی از کد تولید کرد که شباهت آن‌ها به نسخه اصلی به حداقل برسد.

5. استفاده از Class یا حذف Class

خیلی راحت توابع و متغییر ها را به یک کلاس دیگر انتقال دهید و قسمت خوبی از کد و حتی ورودی خروجی های تابع رو میتونید عوض کنید و حتی با چشم هم از شباهت آنها جلوگیری کنید

روش های پیدا کردن درصد شباهت کد ها

1. MOSS استفاده از

این برنامه به طور عادی برای دانلود قرار نگرفته تا فقط دانشگاها و مراکز آموزشی ازش استفاده کنن

ولی شما با یه ایمیل ساده به دانشگاه استنفورد میتونید این اسکریپتو دریافت کنید و روی سیستم ترجیحا لینوکسی خودتون باهاش کار کنید

برای دانلود ابتدا یک ایمیل با متن زیر

registeruser
mail [ایمیل خودتون]

به ایمیل زیر بزنید

[email protected]

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

برای پیدا کردن تقلب بین دو کدی که به طور مثال با سی نوشته شدند از کامند زیر میتونید استفاده کنید

moss -l c code1.c code2.c

2. استفاده از خود کوئرا

خیلی راحت میتونید یه کلاس الکی توی کوئرا بسازید، یک اکانت متفاوت با سازنده کلاس رو وارد کلاس کنید

با هر دو اکانت کدی رو داخل یک تمرین الکی اپلود کنید و روش تقلب یاب بزنید

3. MOSS استفاده از کتابخونه های

کتابخانه هایی برای زبان های مختلف برنامه نویسی ساخته شده که کار شمارو راحت تر میکنن

مثل:

About

آموزش تقلب در کوئرا بدون لو رفتن

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published