توی این پست میخوام اون چیزی رو که از ACPI فهمیدم بگم.
ببینید شما دکمه پاور رو میزنید و یه سری اتفاقات میوفته. به ترتیب، اول UEFI یا BIOS که یه میکروکنترلره، یه برنامهای که داخلش هست رو اجرا میکنه. این برنامه CPU و رم رو initialize میکنه و سختافزارها رو یه چک کلی میکنه. بعد یه سری دیتا رو پاس میده به bootloader و میره کنار. بوت لودر هم میاد و ایمیج OS رو پیدا میکنه، decompress میکنه و لودش میکنه تو مموری. و...
اینجا یه سری مشکل هست. مثلا اینه من باید بدونم چه سختافزارهایی دارم. مثلا فنم کجاست و چجوری کنترل میشه، کیبوردم چی. و خلاصه یه تعداد زیادی دیوایس و سخت افزار داریم که باید بدونیم کجان و چیان. ACPI بخشی از این ماجراست. UEFI که میخواد فرایند بوت رو به بوت لودر واگذار کنه، یکی از دیتاهایی که پاس میده بهش آدرس یه استراکچر به اسم RSDT هست که خودش قبلا اون رو ساخته و توی مموری گذاشته. این استراکچر باز یکی دوتا پوینتر داره به استراکچرهای مختلف ولی نهایتا ما رو میرسونه به DSDT ها. این DSDT ها یه سری استراکچر به زبان ماشین ACPI (ACPI Machine Language or AML) هستن که به ما اطلاعات خیلی خوبی راجع به دیوایس های ACPI میدن. درواقع هرکدوم مال یه دیوایس هست. حالا سیستم عامل لازمه که این دیتاهای باینری رو به اسکی دیکامپیال کنه تا برسه به کدی به زبان ACPI Source Langugae یا ASL یا هم که دیکامپایل نکنه بلکه پارس کنه و استراکچر خوش از ACPI رو که با اسم ACPI namespace شناخته میشه، بسازه که کار دوم رو میکنه. این کار رو ACPI subsystem یا AML Parser توی کرنل انجام میده و ACPI namespace ساخته میشه. این namespace اطلاعات خیلی خوبی داره که مثلا شامل این میشه که کیبورد به چه IRQای متصله و باید حساس به سطح یا لبه باشه و...
البته فقط دیتای خالی نیست که از ACPI به ما میرسه بلکه میتونیم به زبون ASL کد بزنیم، کد رو کامپایل کنیم به AML و از این طریق یه سری فانکشن رو صدا بزنیم. عمدتا این توابع برای پاور منیجمنت و مسایل مربوط به باتری و مدار شارژ و فن و... بکار میره(فک کنم).
نهایتا اگه خواستین ببینین توی DSDTهاتون چیا نوشته شده، کافیه کامپایلر اینتل برای ASL رو نصب کنین(iasl) و با استفاده از acpidump جدولهای ACPI رو دامپ کنین. بعدش میتونین با acpixtract این جداول رو تفکیک شده داشته باشین. نهایتا کافیه iasl -d بزنین و جدولهای تفکیک شده رو دیکامپایل کنین ببینین چی توش هست!
این ابزارهای اینتل و دامپ و اکسترکت، تو پکیج acpica هستتن که باید نصب شه
این داکیومنتهای اینتل هم برای اطلاعات بیشتر:
https://cdrdv2.intel.com/v1/dl/getContent/772721
https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/overview.html
#linux
ببینید شما دکمه پاور رو میزنید و یه سری اتفاقات میوفته. به ترتیب، اول UEFI یا BIOS که یه میکروکنترلره، یه برنامهای که داخلش هست رو اجرا میکنه. این برنامه CPU و رم رو initialize میکنه و سختافزارها رو یه چک کلی میکنه. بعد یه سری دیتا رو پاس میده به bootloader و میره کنار. بوت لودر هم میاد و ایمیج OS رو پیدا میکنه، decompress میکنه و لودش میکنه تو مموری. و...
اینجا یه سری مشکل هست. مثلا اینه من باید بدونم چه سختافزارهایی دارم. مثلا فنم کجاست و چجوری کنترل میشه، کیبوردم چی. و خلاصه یه تعداد زیادی دیوایس و سخت افزار داریم که باید بدونیم کجان و چیان. ACPI بخشی از این ماجراست. UEFI که میخواد فرایند بوت رو به بوت لودر واگذار کنه، یکی از دیتاهایی که پاس میده بهش آدرس یه استراکچر به اسم RSDT هست که خودش قبلا اون رو ساخته و توی مموری گذاشته. این استراکچر باز یکی دوتا پوینتر داره به استراکچرهای مختلف ولی نهایتا ما رو میرسونه به DSDT ها. این DSDT ها یه سری استراکچر به زبان ماشین ACPI (ACPI Machine Language or AML) هستن که به ما اطلاعات خیلی خوبی راجع به دیوایس های ACPI میدن. درواقع هرکدوم مال یه دیوایس هست. حالا سیستم عامل لازمه که این دیتاهای باینری رو به اسکی دیکامپیال کنه تا برسه به کدی به زبان ACPI Source Langugae یا ASL یا هم که دیکامپایل نکنه بلکه پارس کنه و استراکچر خوش از ACPI رو که با اسم ACPI namespace شناخته میشه، بسازه که کار دوم رو میکنه. این کار رو ACPI subsystem یا AML Parser توی کرنل انجام میده و ACPI namespace ساخته میشه. این namespace اطلاعات خیلی خوبی داره که مثلا شامل این میشه که کیبورد به چه IRQای متصله و باید حساس به سطح یا لبه باشه و...
البته فقط دیتای خالی نیست که از ACPI به ما میرسه بلکه میتونیم به زبون ASL کد بزنیم، کد رو کامپایل کنیم به AML و از این طریق یه سری فانکشن رو صدا بزنیم. عمدتا این توابع برای پاور منیجمنت و مسایل مربوط به باتری و مدار شارژ و فن و... بکار میره(فک کنم).
نهایتا اگه خواستین ببینین توی DSDTهاتون چیا نوشته شده، کافیه کامپایلر اینتل برای ASL رو نصب کنین(iasl) و با استفاده از acpidump جدولهای ACPI رو دامپ کنین. بعدش میتونین با acpixtract این جداول رو تفکیک شده داشته باشین. نهایتا کافیه iasl -d بزنین و جدولهای تفکیک شده رو دیکامپایل کنین ببینین چی توش هست!
این ابزارهای اینتل و دامپ و اکسترکت، تو پکیج acpica هستتن که باید نصب شه
این داکیومنتهای اینتل هم برای اطلاعات بیشتر:
https://cdrdv2.intel.com/v1/dl/getContent/772721
https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/overview.html
#linux
Stuff for Geeks
Filed of a sheet of uniform current .pdf
اسلایدهای دانشگاه mit برای الکترومغناطیس و فتونیک:
https://ocw.mit.edu/courses/6-007-electromagnetic-energy-from-motors-to-lasers-spring-2011/
https://ocw.mit.edu/courses/6-007-electromagnetic-energy-from-motors-to-lasers-spring-2011/
MIT OpenCourseWare
Electromagnetic Energy: From Motors to Lasers | Electrical Engineering and Computer Science | MIT OpenCourseWare
This course discusses applications of electromagnetic and equivalent quantum mechanical principles to classical and modern devices. It covers energy conversion and power flow in both macroscopic and quantum-scale electrical and electromechanical systems,…
Forwarded from Source Byte
CoffLoader
Introduction
Portable Executable (PE)
Store data in a PE
Reference to functions and variables during execution
Object files
Overview
Coff Loader
BOF or COFF ?
BOF advantages
BOF disadvantage
Hands on : COFF Loader
Blueprint
COFF specification
COFF Header
Sections Header
Navigate into sections
Relocations Table
Absolute and Relative address
Symbol Table
Symbol Table String
Conclusion
Write sections in memory
Perform relocations
Special symbol
Standard symbol relocation
Put things altogether
Run the code
Upgrade
Compatibility with CobaltStrike BOF
CobaltStrike BOF specificities
Add support for beacon internal functions
Format parameters for CobalStrike BOF
Dynamic .got and .bss
Conclusion
Ressources
External contribution
Forwarded from S.E.Book
• Каждый день тысячи людей используют SSH для подключения к серверам, домашним ПК, роутерам и смартфонам. SSH-клиенты есть для всех сколько-нибудь популярных платформ, а сервер SSH встраивают даже в умные лампочки.• Вашему вниманию предлагается крайне наглядный разбор SSH туннелей. Уж сколько про них уже написано, но такого красиво оформленного материала вроде еще не видел.
Всем начинающим для прочтения строго обязательно.
• В дополнение: Практические примеры SSH.
#SSH #Сети
Please open Telegram to view this post
VIEW IN TELEGRAM
DSP resources and guide
https://github.com/mikeroyal/DSP-Guide#digital-signal-processingdsp-learning-resources
https://github.com/mikeroyal/DSP-Guide#digital-signal-processingdsp-learning-resources
GitHub
GitHub - mikeroyal/DSP-Guide: Digital Signal Processing(DSP) Guide
Digital Signal Processing(DSP) Guide. Contribute to mikeroyal/DSP-Guide development by creating an account on GitHub.
Forwarded from Лаборатория хакера
Linkook — это инструмент OSINT для обнаружения связанных/подключенных учетных записей в социальных сетях и связанных с ними электронных писем на нескольких платформах с использованием одного имени пользователя.
— Данный инструмент также поддерживает экспорт собранных отношений в формате, дружественном к Neo4j, для визуального анализа.
#OSINT #Web #Mail
Please open Telegram to view this post
VIEW IN TELEGRAM
Microwave engineering handouts
The university of Kansas
https://www.ittc.ku.edu/~jstiles/723/handouts/
#microwave
The university of Kansas
https://www.ittc.ku.edu/~jstiles/723/handouts/
#microwave