Шестнадцатеричное число в 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 параллельно для повышения скорости теста.