Como o Bash manipula variáveis na memória?

1

Eu apenas me desafiei a encontrar e alterar um valor na memória usando scanmem e escreveu este script para incrementar um valor simples a cada 5 segundos.

  #!/bin/bash

  i=88 #start counting from..
  printf "Variable increments every 5s\n"
  while [ 1 ]
  do 
    printf "Variable is %d\n" $i
    sleep 5s
    if [ $i -eq 300 ]; then 
            printf "Variable is now 300! WELL DONE!!\n"
            exit 1
    else
            i=$(( $i + 1))

            if [ $i -gt 299 ]; then
                    printf "Time is up!\n"
                    exit 0
            fi
    fi
  done

Deixando de lado o script de merda (estou apostando que isso me causa problemas!); Eu posso encontrar o valor (sempre 4 resultados) em 2 varreduras em scanmem anexado ao PID (de ps ax | grep bash ) mas a variável se recusa a SET para 300. Confirmei que estão corretas usando UPDATE e LIST. Na verdade, ele será SET, mas sempre retornará ao próximo incremento.

Então, por que o valor se recusa a ser alterado? script é executado como usuário, o scanmem é sudoed

    
por Sir_Scofferoff 16.03.2018 / 02:40

0 respostas