Updated: 2021-01-BambooFox/better-than-asm
This commit is contained in:
parent
497e40c6e0
commit
75e4734b6a
|
@ -62,27 +62,71 @@
|
||||||
|
|
||||||
## قدم اول: اسکن کردن فایل
|
## قدم اول: اسکن کردن فایل
|
||||||
ابزار ClamAV (Clam AntiVirus) یک موتور آنتیویروس متنباز و رایگان است که به طور گسترده برای شناسایی تروجانها، ویروسها، بدافزارها و سایر تهدیدات مخرب استفاده میشود. این نرمافزار به ویژه در سرورهای ایمیل برای اسکن فایلهای ضمیمه و جلوگیری از ورود بدافزارها از طریق ایمیل محبوبیت دارد، اما میتوان از آن برای اسکن فایلها و دایرکتوریها در سیستمهای لینوکس، یونیکس و ویندوز نیز بهره برد. ابزار خط فرمان اصلی برای اسکن فایلها با ClamAV، دستور `clamscan` است که به کاربران اجازه میدهد مسیرهای مشخصی را برای یافتن امضاهای بدافزار (که از پایگاه داده ویروس ClamAV بهروزرسانی میشوند) اسکن کنند. این ابزار به دلیل ماهیت متنباز بودن و قابلیت سفارشیسازی بالا، گزینهای قدرتمند و انعطافپذیر برای افزودن قابلیتهای اسکن آنتیویروس به اسکریپتها و سیستمهای خودکار است.
|
ابزار ClamAV (Clam AntiVirus) یک موتور آنتیویروس متنباز و رایگان است که به طور گسترده برای شناسایی تروجانها، ویروسها، بدافزارها و سایر تهدیدات مخرب استفاده میشود. این نرمافزار به ویژه در سرورهای ایمیل برای اسکن فایلهای ضمیمه و جلوگیری از ورود بدافزارها از طریق ایمیل محبوبیت دارد، اما میتوان از آن برای اسکن فایلها و دایرکتوریها در سیستمهای لینوکس، یونیکس و ویندوز نیز بهره برد. ابزار خط فرمان اصلی برای اسکن فایلها با ClamAV، دستور `clamscan` است که به کاربران اجازه میدهد مسیرهای مشخصی را برای یافتن امضاهای بدافزار (که از پایگاه داده ویروس ClamAV بهروزرسانی میشوند) اسکن کنند. این ابزار به دلیل ماهیت متنباز بودن و قابلیت سفارشیسازی بالا، گزینهای قدرتمند و انعطافپذیر برای افزودن قابلیتهای اسکن آنتیویروس به اسکریپتها و سیستمهای خودکار است.
|
||||||
[مستندات ClamAV](https://docs.clamav.net/manual/Usage/Scanning.html)
|
|
||||||
|
URL: [مستندات ClamAV](https://docs.clamav.net/manual/Usage/Scanning.html)
|
||||||
|
URL: [بیشتر](https://x.com/pcaversaccio/status/1941114624197231092)
|
||||||
|
```sh
|
||||||
sudo clamscan --infected --recursive
|
sudo clamscan --infected --recursive
|
||||||
sudo apt install clamav clamav-daemon clamav-freshclam
|
sudo apt install clamav clamav-daemon clamav-freshclam
|
||||||
sudo freshclam
|
sudo freshclam
|
||||||
|
```
|
||||||
|
|
||||||
## قدم دوم: شناسایی نوع و ماهیت فایلها
|
## قدم دوم: شناسایی نوع و ماهیت فایلها
|
||||||
### دستور ExifTool
|
### دستور ExifTool
|
||||||
دستور ExifTool یک ابزار خط فرمان رایگان و متنباز و یک کتابخانه پِرل (Perl library) قدرتمند است که برای خواندن، نوشتن و ویرایش فراداده (metadata) در طیف وسیعی از فرمتهای فایل، از جمله تصاویر (EXIF, IPTC, XMP)، ویدئوها، فایلهای صوتی و اسناد PDF، استفاده میشود. این ابزار قادر است تقریباً تمام تگهای فراداده استاندارد و سفارشی را استخراج و دستکاری کند، که آن را برای عکاسان، محققان پزشکی قانونی دیجیتال، توسعهدهندگان و هر کسی که نیاز به مدیریت دقیق اطلاعات جاسازی شده در فایلها دارد، بیاندازه ارزشمند میسازد. ExifTool به دلیل پشتیبانی گستردهاش از انواع تگها و فرمتها، قابلیتهای ویرایش دستهای، و توانایی حفظ یکپارچگی دادهها حتی پس از تغییر فراداده، به عنوان یک استاندارد صنعتی شناخته میشود.
|
دستور ExifTool یک ابزار خط فرمان رایگان و متنباز و یک کتابخانه پِرل (Perl library) قدرتمند است که برای خواندن، نوشتن و ویرایش فراداده (metadata) در طیف وسیعی از فرمتهای فایل، از جمله تصاویر (EXIF, IPTC, XMP)، ویدئوها، فایلهای صوتی و اسناد PDF، استفاده میشود. این ابزار قادر است تقریباً تمام تگهای فراداده استاندارد و سفارشی را استخراج و دستکاری کند، که آن را برای عکاسان، محققان پزشکی قانونی دیجیتال، توسعهدهندگان و هر کسی که نیاز به مدیریت دقیق اطلاعات جاسازی شده در فایلها دارد، بیاندازه ارزشمند میسازد. ExifTool به دلیل پشتیبانی گستردهاش از انواع تگها و فرمتها، قابلیتهای ویرایش دستهای، و توانایی حفظ یکپارچگی دادهها حتی پس از تغییر فراداده، به عنوان یک استاندارد صنعتی شناخته میشود.
|
||||||
[وبسایت ExifTool](https://exiftool.org)
|
[ ExifTool](https://exiftool.org)
|
||||||
|
```sh
|
||||||
sudo apt install libimage-exiftool-perl
|
sudo apt install libimage-exiftool-perl
|
||||||
|
```
|
||||||
|
|
||||||
### دستور File
|
### دستور File
|
||||||
دستور `file` یک ابزار استاندارد و قدرتمند در سیستمعاملهای شبهیونیکس (مانند لینوکس و macOS) است که برای شناسایی نوع محتوای یک فایل به کار میرود. برخلاف بسیاری از دستورات که نوع فایل را صرفاً بر اساس پسوند آن حدس میزنند، `file` با بررسی جادویی (magic numbers) موجود در ابتدای فایلها، ساختار داخلی و محتوای واقعی آنها را تحلیل میکند. این قابلیت به آن اجازه میدهد تا حتی فایلهایی را که پسوند اشتباه دارند یا اصلاً پسوندی ندارند، به درستی تشخیص دهد؛ مثلاً میتواند یک فایل متنی ساده، یک فایل اجرایی باینری (مانند ELF، Mach-O یا PE)، یک تصویر (JPEG، PNG)، یک آرشیو فشرده (ZIP، GZ)، یا حتی یک سند Word را شناسایی کند. این دستور برای مهندسی معکوس، بررسی امنیتی فایلها، یا صرفاً برای درک اینکه یک فایل ناشناخته واقعاً چیست، بسیار مفید است.
|
دستور `file` یک ابزار استاندارد و قدرتمند در سیستمعاملهای شبهیونیکس (مانند لینوکس و macOS) است که برای شناسایی نوع محتوای یک فایل به کار میرود. برخلاف بسیاری از دستورات که نوع فایل را صرفاً بر اساس پسوند آن حدس میزنند، `file` با بررسی جادویی (magic numbers) موجود در ابتدای فایلها، ساختار داخلی و محتوای واقعی آنها را تحلیل میکند. این قابلیت به آن اجازه میدهد تا حتی فایلهایی را که پسوند اشتباه دارند یا اصلاً پسوندی ندارند، به درستی تشخیص دهد؛ مثلاً میتواند یک فایل متنی ساده، یک فایل اجرایی باینری (مانند ELF، Mach-O یا PE)، یک تصویر (JPEG، PNG)، یک آرشیو فشرده (ZIP، GZ)، یا حتی یک سند Word را شناسایی کند. این دستور برای مهندسی معکوس، بررسی امنیتی فایلها، یا صرفاً برای درک اینکه یک فایل ناشناخته واقعاً چیست، بسیار مفید است.
|
||||||
|
```sh
|
||||||
file task.ll
|
file task.ll
|
||||||
sudo apt install file
|
sudo apt install file
|
||||||
|
```
|
||||||
### وبسایت FileInfo.com
|
### وبسایت FileInfo.com
|
||||||
وبسایت FileInfo.com یک دایرکتوری آنلاین بزرگ از پسوندهای فایل است که به شما امکان میدهد با وارد کردن پسوند یک فایل، اطلاعات جامعی درباره آن کسب کنید. این وبسایت توضیحات مربوط به نوع فایل، دستهبندی آن (مانند فایل ویدئویی یا سند)، برنامههای نرمافزاری مرتبط که میتوانند آن را باز کنند و اطلاعاتی درباره توسعهدهنده فرمت را ارائه میدهد، که آن را به ابزاری مفید برای شناسایی فایلهای ناشناخته تبدیل میکند.
|
وبسایت FileInfo.com یک دایرکتوری آنلاین بزرگ از پسوندهای فایل است که به شما امکان میدهد با وارد کردن پسوند یک فایل، اطلاعات جامعی درباره آن کسب کنید. این وبسایت توضیحات مربوط به نوع فایل، دستهبندی آن (مانند فایل ویدئویی یا سند)، برنامههای نرمافزاری مرتبط که میتوانند آن را باز کنند و اطلاعاتی درباره توسعهدهنده فرمت را ارائه میدهد، که آن را به ابزاری مفید برای شناسایی فایلهای ناشناخته تبدیل میکند.
|
||||||
|
|
||||||
|
|
||||||
|
## قدم سوم: کامپایل و اجرای فایل
|
||||||
|
|
||||||
|
نکته:
|
||||||
|
پسوند فایل .ll عمدتاً به دو منظور استفاده میشود: رایجترین آن، فایلهای پیشنمایش تولید شده توسط نرمافزار Combit List & Label است که برای گزارشگیری کاربرد دارد. اما در حوزه کامپایلرها، بهویژه در پروژه LLVM، این پسوند به فایلهای سورس نمایش میانی (Intermediate Representation - IR) اشاره دارد که یک فرمت کد سطح پایین و قابل خواندن توسط انسان است و نقش واسطهای بین کد منبع و کد ماشین را ایفا میکند تا بهینهسازی و تولید کد برای معماریهای مختلف را تسهیل کند. بهندرت نیز ممکن است به فایلهای کد منبع Lex اشاره داشته باشد. LLVM Bitcode مانند یک زبان مشترک جهانی برای کامپایلرها است
|
||||||
|
|
||||||
|
کامپایل:
|
||||||
|
(کلنگ) Clang یک کامپایلر فرانتاند (frontend) برای زبانهای برنامهنویسی C، C++، Objective-C و Objective-C++ است. این کامپایلر بخشی از پروژه بزرگتر LLVM (Low Level Virtual Machine) است و به دلیل سرعت بالا، پیامهای خطای خوانا، و پشتیبانی قوی از استانداردهای جدید زبانها، بسیار محبوب شده است.
|
||||||
|
URL: [llvm](https://github.com/llvm/llvm-project)
|
||||||
|
```sh
|
||||||
|
sudo apt install clang
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
clang task.ll -mllvm -W -g -W1,-pie -o task.out
|
||||||
|
```
|
||||||
|
اجرا:
|
||||||
|
```sh
|
||||||
|
$ ./task.out
|
||||||
|
Only the chosen one will know what the flag is!
|
||||||
|
Are you the chosen one?
|
||||||
|
flag:
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue