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