سلام خدمت همه ی دوستان و اساتید
تو این تاپیک در مورد یکی از بحث هایی که تو یکی از تاپیک های دیگه به وجود اومد بحث میکنیم.
https://barnamenevis.org/showthread.p...76#post1802376
Printable View
سلام خدمت همه ی دوستان و اساتید
تو این تاپیک در مورد یکی از بحث هایی که تو یکی از تاپیک های دیگه به وجود اومد بحث میکنیم.
https://barnamenevis.org/showthread.p...76#post1802376
خیلی خب.
فرض کنین میخواییم یه نرم افزار بنویسیم که عکس های سیستم رو تو یه ftp آپلود کنه.این کار رو, هم میشه با api انجام داد وهم بدون اون.
اگر بخواییم ویروس تو linux هم کار کنه api رو باید بزاریم کنار واز راه های دیگه استفاده کنیم.
به ویروسی که اینجوری نوشته بشه میگن ویروس بدون وابستگی.
و همین باعث میشه تعداد خطوط خیلی خیلی زیاد بشه.
واز عهده ی یه نفر خارجه.
سلام.
ابدا !!
به این برنامه نویسی می گن کراس پلتفرم. که اتفاقا در دلفی با برنامه نویسی 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 کنی تا بتونی هر قری می خوای بدی! :قهقهه:
شما شخصا چه ویروسی دیدی که یک نسخه واحدش روی دو پلتفرم متفاوت ران بشه؟
تا اونجایی که من میدونم و تحقیق کردم کراس پلتفرم نیست.
احتمالا منظور من رو اشتباه متوجه شدین.
فرضا یه تابعی بنویسین که بدون وابستگی به سیستم عامل.یه فایل رو آپلود کنه.
چه تو mac چه تو linux چه تو ویندوز
برای مثال میگم.
یه راحش اینه به اسمبلی بنویسیم.
بدون استفاده از سیستم عامل هیچ کاری نمی تونی بکنی
همه از توابع سیستم عامل استفاده می کنن
می تونی ی کد بدی که با اسمبل حافظه بگیره یا همون ارسال فایل
:قهقهه:
بنده اینجا نیومدم کد های اسمبلی شما رو بنویسم.
یه سرچ کن تو نت پیدا میکنی.
درضمن لطف کن بخون ببین چی نوشتم.
نوشتن اینجور برنامه ها از عهده ی یه نفر خارجه
من ویرویس نویس نیستم
ولی اونقدری سواد دارم ک به فهمم ی برنامه چیه و سیستم عامل این وسط چی کار می کنه
شما می گی بدون استفاده از API سیستم عامل
بدون اینا می تونی ی بایت فضا بگیری
این کارو بکن ارسال فایل باشه برا بعد
شما برین نحوه ی درست شدن سیستم عامل رو مطالعه کنین.
این کارم یاد میگیرین.
X-Platform یا X-OS برنامه ای که وابسته به سیستم عامل خاصی نباشد که مثلا با جاوا می شه این کار رو کرد. با دلفی می شه در حال حاضر روی ویندوز - لینوکس - مک برنامه نوشت و در ورژن بعدی که سال دیگه میاد قول آندروید هم داده شده.نقل قول:
فرضا یه تابعی بنویسین که بدون وابستگی به سیستم عامل.یه فایل رو آپلود کنه.
چه تو mac چه تو linux چه تو ویندوز
البته بدون API هم می شه کارهایی کرد. مثلا در سطح کرنل با Interrupt ها.نقل قول:
شما می گی بدون استفاده از API سیستم عامل
بدون اینا می تونی ی بایت فضا بگیری
خود ویندوز رو با چی نوشتن؟ اگر قرار بود نشه بدون API هاش کاری کرد.
نوشتن برنامه ای که بدون توجه به سیستم عامل فایلی رو آپلود کنه هم خیلی کار شاقی نیست. البته باز هم می گم، در هنگام کامپایل ماجرا عوض می شه.
دوست من، هنوز منتظر اسم یک ویروس X-Plat یا حتی اسم یک مازول اون ویروس معروف هستم تا ببینم به چی می گی خوف و خفن D:
برنامه هایی که بدون نیاز به کامپایل مجدد روی چندین پلتفرم اجرا می شن، به احتمال خیلی زیاد (نمی گم صد در صد شاید اطلاعاتم ناقص باشه) نیاز به یک VirtualMachine روی سیستم مقصد دارند.
اصلا برای همین که شما نتونی با جاوا کارهای خطری کنی (دلیلش اینه که روی همه سیستم عامل ها ویرچوال ماشین داره) اومدن پوینتر ها رو توش از اختیار برنامه نویس خارج کردن.
اینجا اینم در نظر بگیرین که کی داره برنامه مینیویسه :چشمک:
تازه اونم به اسمبلی که دیگه....
من مثال زدم و اگر مثال شاخ میخواین باید بگم پیدا میشه ولی من نمیدونم.:لبخندساده:
در مورد اون ویروس خفن :لبخند:
باید بگم تو youtube یه هم چین چیزی دیدم.
اگر پیداش کردم آپ میکنم لینکشو میزارم.
اگرم نشد یکی دیگه پیدا میکنم.