ورود

View Full Version : ویروس ها



darknes666
سه شنبه 04 تیر 1392, 19:23 عصر
سلام خدمت همه ی دوستان و اساتید

تو این تاپیک در مورد یکی از بحث هایی که تو یکی از تاپیک های دیگه به وجود اومد بحث میکنیم.
http://barnamenevis.org/showthread.php?404413-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B4%D8%B1%D8%B9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%86%D9%87-%D8%B2%D8%A8%D8%A7%D9%86%DB%8C%D9%87-%D9%88-%D9%85%D9%86%D8%A8%D8%B9%D8%B4-%DA%86%DB%8C%D9%87%D8%9F&p=1802376#post1802376

darknes666
سه شنبه 04 تیر 1392, 19:27 عصر
خیلی خب.
فرض کنین میخواییم یه نرم افزار بنویسیم که عکس های سیستم رو تو یه ftp آپلود کنه.این کار رو, هم میشه با api انجام داد وهم بدون اون.
اگر بخواییم ویروس تو linux هم کار کنه api رو باید بزاریم کنار واز راه های دیگه استفاده کنیم.
به ویروسی که اینجوری نوشته بشه میگن ویروس بدون وابستگی.
و همین باعث میشه تعداد خطوط خیلی خیلی زیاد بشه.
واز عهده ی یه نفر خارجه.

یوسف زالی
سه شنبه 04 تیر 1392, 19:39 عصر
سلام.
ابدا !!
به این برنامه نویسی می گن کراس پلتفرم. که اتفاقا در دلفی با برنامه نویسی Kylix به راحتی قابل انجامه.
تقریبا به همون راحتی برنامه نویسی معمولی.
فایل های exe استاندارد برای سیستم های مختلف دارای استانداردی به نام PE هستند که با دونستن اون می تونید تقریبا همه کاری کنید.
کد نویسی برنامه های کراس پلتفرم هم اصلا خیلی خیلی زیاد نیست. کافیه از توابع غیر مشترک دوبار پیاده سازی کنید.
نمونه کدش رو ببینید:


function _GetMem(Size: Integer): Pointer;
{$IF Defined(DEBUG) and Defined(LINUX)}
var
Signature: PLongInt;
{$IFEND}
begin
if Size > 0 then
begin
{$IF Defined(DEBUG) and Defined(LINUX)}
Signature := PLongInt(MemoryManager.GetMem(Size + 4));
if Signature = nil then
Error(reOutOfMemory);
Signature^ := 0;
Result := Pointer(LongInt(Signature) + 4);
{$ELSE}
Result := MemoryManager.GetMem(Size);
if Result = nil then
Error(reOutOfMemory);
{$IFEND}
end
else
Result := nil;
end;


البته این نمونه صرفا برای آشنایی بود و ایضا تحت سیستم عامل های متفاوت در هنگام "کامپایل" ورژن های متفاوت تولید می شه.
شما می تونی کامپایلر لایت زبان مورد نظر رو در برنامه اجرایی ویروس Embed کنی تا بتونی هر قری می خوای بدی! :قهقهه:

شما شخصا چه ویروسی دیدی که یک نسخه واحدش روی دو پلتفرم متفاوت ران بشه؟

darknes666
سه شنبه 04 تیر 1392, 19:54 عصر
تا اونجایی که من میدونم و تحقیق کردم کراس پلتفرم نیست.
احتمالا منظور من رو اشتباه متوجه شدین.
فرضا یه تابعی بنویسین که بدون وابستگی به سیستم عامل.یه فایل رو آپلود کنه.
چه تو mac چه تو linux چه تو ویندوز

برای مثال میگم.
یه راحش اینه به اسمبلی بنویسیم.

UfnCod3r
سه شنبه 04 تیر 1392, 20:02 عصر
بدون استفاده از سیستم عامل هیچ کاری نمی تونی بکنی
همه از توابع سیستم عامل استفاده می کنن
می تونی ی کد بدی که با اسمبل حافظه بگیره یا همون ارسال فایل
:قهقهه:

darknes666
سه شنبه 04 تیر 1392, 20:04 عصر
بدون استفاده از سیستم عامل هیچ کاری نمی تونی بکنی
همه از توابع سیستم عامل استفاده می کنن
می تونی ی کد بدی که با اسمبل حافظه بگیره یا همون ارسال فایل
:قهقهه:
اینجوریم نیست.
پس چجوری ویندوزو از پایه درست کردن؟
نیومدیم اینجا جک بگیم و جک بشنویم.

فعلا که چین داره این کار رو میکنه پس نگو همه.

darknes666
سه شنبه 04 تیر 1392, 20:06 عصر
بنده اینجا نیومدم کد های اسمبلی شما رو بنویسم.
یه سرچ کن تو نت پیدا میکنی.

درضمن لطف کن بخون ببین چی نوشتم.
نوشتن اینجور برنامه ها از عهده ی یه نفر خارجه

UfnCod3r
سه شنبه 04 تیر 1392, 20:09 عصر
من ویرویس نویس نیستم
ولی اونقدری سواد دارم ک به فهمم ی برنامه چیه و سیستم عامل این وسط چی کار می کنه
شما می گی بدون استفاده از API سیستم عامل
بدون اینا می تونی ی بایت فضا بگیری
این کارو بکن ارسال فایل باشه برا بعد

darknes666
سه شنبه 04 تیر 1392, 20:10 عصر
شما برین نحوه ی درست شدن سیستم عامل رو مطالعه کنین.
این کارم یاد میگیرین.

یوسف زالی
سه شنبه 04 تیر 1392, 20:18 عصر
فرضا یه تابعی بنویسین که بدون وابستگی به سیستم عامل.یه فایل رو آپلود کنه.
چه تو mac چه تو linux چه تو ویندوز

X-Platform یا X-OS برنامه ای که وابسته به سیستم عامل خاصی نباشد که مثلا با جاوا می شه این کار رو کرد. با دلفی می شه در حال حاضر روی ویندوز - لینوکس - مک برنامه نوشت و در ورژن بعدی که سال دیگه میاد قول آندروید هم داده شده.



شما می گی بدون استفاده از API سیستم عامل
بدون اینا می تونی ی بایت فضا بگیری


البته بدون API هم می شه کارهایی کرد. مثلا در سطح کرنل با Interrupt ها.
خود ویندوز رو با چی نوشتن؟ اگر قرار بود نشه بدون API هاش کاری کرد.

نوشتن برنامه ای که بدون توجه به سیستم عامل فایلی رو آپلود کنه هم خیلی کار شاقی نیست. البته باز هم می گم، در هنگام کامپایل ماجرا عوض می شه.
دوست من، هنوز منتظر اسم یک ویروس X-Plat یا حتی اسم یک مازول اون ویروس معروف هستم تا ببینم به چی می گی خوف و خفن D:

برنامه هایی که بدون نیاز به کامپایل مجدد روی چندین پلتفرم اجرا می شن، به احتمال خیلی زیاد (نمی گم صد در صد شاید اطلاعاتم ناقص باشه) نیاز به یک VirtualMachine روی سیستم مقصد دارند.
اصلا برای همین که شما نتونی با جاوا کارهای خطری کنی (دلیلش اینه که روی همه سیستم عامل ها ویرچوال ماشین داره) اومدن پوینتر ها رو توش از اختیار برنامه نویس خارج کردن.

darknes666
سه شنبه 04 تیر 1392, 20:25 عصر
نوشتن برنامه ای که بدون توجه به سیستم عامل فایلی رو آپلود کنه هم خیلی کار شاقی نیست. البته باز هم می گم، در هنگام کامپایل ماجرا عوض می شه.


اینجا اینم در نظر بگیرین که کی داره برنامه مینیویسه :چشمک:
تازه اونم به اسمبلی که دیگه....

من مثال زدم و اگر مثال شاخ میخواین باید بگم پیدا میشه ولی من نمیدونم.:لبخندساده:

در مورد اون ویروس خفن :لبخند:
باید بگم تو youtube یه هم چین چیزی دیدم.
اگر پیداش کردم آپ میکنم لینکشو میزارم.
اگرم نشد یکی دیگه پیدا میکنم.