Шестнадцатеричное число в bash (да, это грубая сила)

Я пытаюсь сделать bash криптом для грубой атаки на ключ загрузчика android oem, чтобы разблокировать fastboot. Я сделал этот скрипт

#!/usr/bin/zsh
setopt c_bases
typeset -i 16 num
for num in $( seq $((0x10000000000000)) 1 $((0xffffffffffffff)) ); do 
    echo "$num"
    fastboot oem unlock $num
done

но у меня есть проблемы, потому что, если я пытаюсь выполнить это, у меня заканчивается оперативная память. Есть ли способ сделать инкрементный скрипт, подобный этому, без нехватки памяти? большое спасибо

1 ответ

for num in $( seq $((0x10000000000000)) 1 $((0xffffffffffffff)) ); do 

никогда не будет работать, потому что весь вывод подстановки команд будет помещен в память до вызова цикла. Используйте цикл в стиле c (специфичный для bash) для циклов со многими итерациями:

for ((num=0x10000000000000;num<=0xffffffffffffff;num++)); do 

Вы также можете рассмотреть возможность использования gnu параллельно для повышения скорости теста.

Другие вопросы по тегам