LINUX.ORG.RU

Ответ на: комментарий от LamerOk

А если б был не опенсорс то «прочитать бинарники и узнать».

firkax ★★★★★
()

Для начала можешь просто погрепать память. Наверное она по какому-то адресу в памяти который где-то прописан.

Поищи в исходниках линукса файл arch/i386/boot/head.S или его аналог для ARM. Там где-то должно быть вытаскивание командной строки из памяти.

Xenius ★★★★★
()
Ответ на: комментарий от Xenius

Нашел через

find 0x0, maxMemory, "HELLO WORLD" 

main.c

print_uart0((char *)0x12c); // вывод

Запускаю

qemu-system-arm -M versatilepb -m 1M -kernel bin -nographic -s -S -append "HELLO WORLD"
HELLO WORLD
tyamur ★★
() автор топика
Последнее исправление: tyamur (всего исправлений: 1)

В регистр r2 передается адрес 0x100. Посмотрев на содержимое памяти нагуглил что это ATAG и как раз по смещению 0x124 0x00000005 0x54410009 далее байты строки.

ATAG_CMDLINE 0x54410009 // tag

0x00000005 размер в 32 битных словах

12 символов / 4 = 3 3 + 2 = 5

tyamur ★★
() автор топика
Последнее исправление: tyamur (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.