Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
tamago — إطار لتجميع وتنفيذ تطبيقات Go على معالجات عارية (bare metal)، مما يتيح تطوير برامج ثابتة آمنة مع تقليل سطح الهجوم من خلال إزالة اعتماديات نظام التشغيل وC. | Kitploit
أدوات/GitHubGitHub/usbarmory/tamago
أمان الأنظمة المدمجةالمحاكاة الافتراضية للأمانأمن الأجهزةتحليل البرامج الثابتة
GitHubusbarmory/tamago

tamago

إطار لتجميع وتنفيذ تطبيقات Go على معالجات عارية (bare metal)، مما يتيح تطوير برامج ثابتة آمنة مع تقليل سطح الهجوم من خلال إزالة اعتماديات نظام التشغيل وC.

عرض المستودع
2.0k83منذ 5 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

TamaGo - bare metal Go

tamago | https://github.com/usbarmory/tamago

حقوق النشر (ج) مؤلفو TamaGo. جميع الحقوق محفوظة.

TamaGo gopher

مقدمة

TamaGo هو إطار عمل يُمكّن من تجميع وتنفيذ تطبيقات Go غير المقيدة على معالجات العارية (AMD64, ARM, ARM64, RISCV64).

ينبثق المشروع من الرغبة في تقليل مساحة الهجوم للبرامج الثابتة للأنظمة المدمجة عن طريق إزالة أي اعتماد زمني على كود C وأنظمة التشغيل.

يتكون إطار عمل TamaGo من المكونات التالية:

  • توزيعة Go معدلة والتي تمدد دعم GOOS إلى الهدف tamago، مما يسمح بالتنفيذ العاري من خلال طبقة تراكب runtime/goos يتم تعيينها بواسطة GOOSPKG.

  • حزم Go لدعم المعالج/SoC.

  • حزم Go لدعم اللوحة.

التعديلات ضئيلة مقارنة بمترجم Go الأصلي ووقت التشغيل والتطبيق المستهدف (استيراد واحد مطلوب)، مع فصل نظيف عن البنى الأخرى.

يتم التركيز بشدة على إعادة استخدام الكود من البنى الموجودة بالفعل في وقت تشغيل Go القياسي، انظر الداخلية.

تحافظ التعديلات على دعم كامل للمكتبة القياسية.

هذه الجوانب مدفوعة بالرغبة في توفير إطار عمل يسمح بتطوير برامج Go آمنة على الأنظمة المدمجة.

الإصدارات الحالية

الروابط التالية هي أحدث إصدارات توزيعة Go المعدلة لـ TamaGo، والتي تضيف دعم GOOS=tamago لإصدار Go المقابل، و مكتبة TamaGo:

GitHub release Build Status
GitHub release

التوثيق

Go Reference

يمكن العثور على التوثيق الرئيسي على مشروع ويكي.

يمكن العثور على توثيق واجهة برمجة التطبيقات (API) على pkg.go.dev.

أهداف AMD64 المدعومة

يلخص الجدول التالي أهداف x86-64 المدعومة حاليًا (GOOS=tamago GOARCH=amd64).

أهداف ARM المدعومة

يلخص الجدول التالي معالجات SoC واللوحات ARM المدعومة حاليًا (GOOS=tamago GOARCH=arm).

أهداف ARM64 المدعومة

يلخص الجدول التالي معالجات SoC واللوحات ARM64 المدعومة حاليًا (GOOS=tamago GOARCH=arm64).

أهداف RISC-V المدعومة

يلخص الجدول التالي معالجات SoC واللوحات RISC-V المدعومة حاليًا (GOOS=tamago GOARCH=riscv64).

أهداف مساحة المستخدم

يمكن أيضًا تنفيذ البرامج المجمعة باستخدام GOOS=tamago في مساحة المستخدم عن طريق استيراد أي حزمة تطبق طبقة التراكب المطلوبة runtime/goos مع إشراف نظام التشغيل بدلاً من برامج تشغيل العارية.

يوفر تجميع وتشغيل برامج Go في مساحة المستخدم كـ GOOS=tamago ميزة عزل استدعاءات النظام حيث لا يمكن للبرنامج التنفيذي الاستفادة من وقت تشغيل Go للوصول المباشر إلى موارد نظام التشغيل، وينتج عن ذلك:

  • عزل عن نظام ملفات نظام التشغيل، من خلال قرص محاكى في الذاكرة
  • عزل عن شبكات نظام التشغيل، انظر net.SocketFunc
  • واجهة برمجة تطبيقات (API) للشبكات المخصصة، ومعالجات rng، والوقت

يلخص الجدول التالي دعم مساحة المستخدم المتاح حاليًا:

¹ يُستخدم لتشغيل اختبارات التوزيع القياسية و go test -tags user_linux

التجميع

توزيعة Go التي تدعم GOOS=tamago

يقوم الأمر tamago بتنزيل وتجميع وتشغيل الأمر go من توزيعة TamaGo المطابقة لإصدار وحدة tamago من ملف go.mod للتطبيق.

يمكن للتطبيقات إضافة github.com/usbarmory/tamago إلى go.mod، ثم استبدال الأمر go بـ:

root@kitploit:~
go run github.com/usbarmory/tamago/cmd/tamago

أو إضافة السطر التالي إلى go.mod لاستخدام go tool tamago كأمر go:

root@kitploit:~
tool github.com/usbarmory/tamago/cmd/tamago

بدلاً من ذلك، يمكن بناء أحدث توزيعة TamaGo يدويًا أو يمكن استخدام أحدث إصدار ثنائي:

root@kitploit:~
wget https://github.com/usbarmory/tamago-go/archive/refs/tags/latest.zip
unzip latest.zip
cd tamago-go-latest/src && ./all.bash
cd ../bin && export TAMAGO=`pwd`/go

بناء التطبيقات

أثناء التجميع، يجب تعيين متغير بيئة Go GOOSPKG لتمكين هذه المكتبة كطبقة تراكب لدعم GOOS=tamago.

root@kitploit:~
export GOOSPKG=github.com/usbarmory/tamago

يُطلب من تطبيقات Go استيراد حزمة اللوحة ذات الصلة لضمان حدوث تهيئة الأجهزة ودعم وقت التشغيل:

root@kitploit:~
import (
	// مثال لـ USB armory Mk II
	_ "github.com/usbarmory/tamago/board/usbarmory/mk2"
)

يمكن تجميع تطبيقات Go باستخدام المترجم الذي تم بناؤه في الخطوة السابقة، مع إضافة بعض العلامات/المتغيرات:

root@kitploit:~
# تعيين هذه المكتبة كطبقة تراكب `runtime/goos`
export GOOSPKG=github.com/usbarmory/tamago

# مثال لـ Cloud Hypervisory, QEMU و Firecracker KVMs
GOOS=tamago GOARCH=amd64 ${TAMAGO} build -ldflags "-T 0x10010000 -R 0x1000" main.go

# مثال لـ NXP i.MX6UL
GOOS=tamago GOARM=7 GOARCH=arm ${TAMAGO} build -ldflags "-T 0x80010000 -R 0x1000" main.go

# مثال لـ NXP 8MPLUSLPD4-EVK
GOOS=tamago GOARCH=arm64 ${TAMAGO} build -ldflags "-T 0x40010000 -R 0x1000" main.go

# مثال لـ SiFive FU540
GOOS=tamago GOARCH=riscv64 ${TAMAGO} build -ldflags "-T 0x80010000 -R 0x1000" main.go

# مثال لـ AI Foundry Erbium
GOOS=tamago GOARCH=riscv64 GOSOFT=1 ${TAMAGO} build -ldflags "-T 0x40010000 -R 0x1000" main.go

# مثال لـ Linux userspace
GOOS=tamago ${TAMAGO} build main.go

راجع ملف README الخاص بحزمة اللوحة المعنية للحصول على معلومات التجميع لكل هدف محدد.

علامات البناء (Build tags)

تسمح علامات البناء التالية للتطبيقات بتجاوز تعريف الحزمة الخاص لطبقة التراكب runtime/goos:

  • linkramstart: تجاوز ramStart
  • linkramsize: تجاوز ramSize
  • linkprintk: تجاوز printk
  • linkcpuinit: تجاوز cpuinit
  • tiny: تقليل متطلبات تخصيص الكومة

التنفيذ وتصحيح الأخطاء

راجع ملف README الخاص بحزمة اللوحة المعنية للحصول على معلومات التنفيذ وتصحيح الأخطاء لكل هدف محدد (حقيقي أو محاكي).

يوفر التطبيق النموذجي استخدامًا نموذجيًا لبرنامج التشغيل وتعليمات للتنفيذ الأصلي وكذلك المحاكي.

يمكن إطلاق تشغيل محاكي لـ التطبيق النموذجي على النحو التالي:

root@kitploit:~
git clone https://github.com/usbarmory/tamago-example
cd tamago-example && make qemu

التطبيقات التي تستخدم TamaGo

  • go-boot - مدير الإقلاع UEFI العاري بلغة Go
  • GoKey - البطاقة الذكية العارية بلغة Go
  • GoTEE - بيئة التنفيذ الموثوقة بلغة Go
  • ArmoredWitness - شبكة شهود عبر الأنظمة البيئية
  • armory-drive - محرك أقراص USB مشفر
  • armory-ums - البرامج الثابتة للتخزين الشامل عبر USB
  • armory-boot - محمل الإقلاع لـ USB armory
  • tamago-example - تطبيق TamaGo نموذجي
  • tamago-sev-example - مثال على VM سري (AMD SEV-SNP)
  • kotama - جهاز عرض RISC-V مصغر
  • kanzashi - وكيل العارية

برامج تشغيل خارجية تستخدم TamaGo

  • go-net - برنامج تشغيل الشبكة العام
  • go-net/imx-usb - برنامج تشغيل Ethernet عبر USB لـ i.MX
  • go-net/virtio - برنامج تشغيل شبكة VirtIO
  • imx-usbserial - برنامج تشغيل Serial عبر USB لـ i.MX

موارد إضافية

  • واجهة برمجة التطبيقات (API)
  • واجهة برمجة تطبيقات وقت التشغيل (Runtime API)
  • التوافق
  • الداخلية
  • الأسئلة الشائعة (FAQ)
  • العروض التقديمية: TamaGo, ArmoredWitness

المسؤولون

Andrea Barisani
[email protected]

Andrej Rosano
[email protected]

الترخيص

tamago | https://github.com/usbarmory/tamago
حقوق النشر (ج) مؤلفو TamaGo. جميع الحقوق محفوظة.

يتم توزيع هذا المشروع بموجب ترخيص نمط BSD الموجود في ملف LICENSE.

شعار TamaGo مقتبس من تميمة Go المصممة من قبل Renee French والمرخصة بموجب ترخيص Creative Commons 3.0 Attributions. رسم توضيحي متجه لتميمة Go بواسطة Hugo Arganda.

تنزيل الأداة
CPUPlatformCPU packagePlatform package
AMD/Intel 64-bitCloud Hypervisoramd64cloud_hypervisor/vm
AMD/Intel 64-bitFirecracker microvmamd64firecracker/microvm
AMD/Intel 64-bitQEMU microvmamd64qemu/microvm
AMD/Intel 64-bitUEFIamd64uefi/x64
AMD/Intel 64-bitGoogle Compute Engineamd64google/gcp, uefi/x64
SoCBoardSoC packageBoard package
NXP i.MX6ULZ/i.MX6ULUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULL/i.MX6ULUSB armory Mk II LANimx6ulusbarmory/mk2
NXP i.MX6ULL/i.MX6ULZMCIMX6ULL-EVKimx6ulmx6ullevk
Broadcom BCM2835Raspberry Pi Zerobcm2835pi/pizero
Broadcom BCM2835Raspberry Pi 1 Model A+bcm2835pi/pi1
Broadcom BCM2835Raspberry Pi 1 Model B+bcm2835pi/pi1
Broadcom BCM2836Raspberry Pi 2 Model Bbcm2835pi/pi2
Nuvoton NUC980NuMaker-IIoT-NUC980G2nuc980nuc980iiot
SoCBoardSoC packageBoard package
NXP i.MX8M Plus8MPLUSLPD4-EVKimx8mpimx8mpevk
Microchip LAN969xEVB-LAN9696-24portlan969xlan9696evb
SoCBoardSoC packageBoard package
SiFive FU540QEMU sifive_ufu540qemu/sifive_u
AI Foundry Erbiumerbium_emuerbiumerbium_emu
AI Foundry ET-SoC-1sys_emuetsoc1sys_emu
Operating SystemGOARCHRuntime packages
Linuxamd64,arm,arm64,riscv64runtime/goos¹
Linuxamd64,arm,arm64,riscv64linux
GoTEEarm,riscv64applet