Что делать с присвоением переменных значения?

В качестве примечания, глядя на сценарий Эндрю Брэмптона, упомянутый в ответе @don _crissti , вы можете получить тот же результат от Radare2 , который является обратным -инженерная база.

pf x[4]z[64]zN1N1N1N1 magicfile magicblob text serial api minor major
  • pfпечать отформатированных данных
    • x0xHEX value and flag (fd @ addr) (see 'd' and 'i')
    • [4]znull terminated stringмин. -длина 4 размер
    • [64]znull terminated stringмин. -длина 64 размер
    • N1N1N1N1next char specifies size of unsigned value (1, 2, 4 or 8 byte(s))

Вы можете запустить это из скрипта, подобного этому,

for f in /lib/firmware/iwlwifi-*.ucode; do
    echo $f;
    radare2 -qc "pf x[4]z[64]zN1N1N1N1 magicfile magicblob text serial api minor major" "$f";
done;

Вот пример вывода

 magicfile : 0x00000000 = 0x00000000
 magicblob : 0x00000004 = IWL.
      text : 0x00000008 = 6000g2b fw v18.168.6.1 build 0.
    serial : 0x00000048 = 1
       api : 0x00000049 = 6
     minor : 0x0000004a = 168
     major : 0x0000004b = 18

Вы играете их в обратном порядке, major.minor.api.serialчтобы получить18.168.6.1

0
30.04.2020, 19:01
2 ответа

Если вы присвоите значение var1переменной var2, вы получите две независимые переменные var1и var2, которые имеют одинаковые значения.

Вы можете использовать переменную var2, объявленную с атрибутом nameref, для ссылки на var1.

$ var1=1
$ declare -n var2=var1
$ echo "$var2"
1
$ var1=2
$ echo "$var2"
2
$ var2=3
$ echo "$var2 $var1"
3 3
1
28.04.2021, 23:17

Это распространенное -представление о том, как работают многие / большинство языков программирования.

В императивных языках(bash/ C/ Java/ python.... )оператор =работает не так же, как в математике.

a=1означает поместить 1 вa(перезаписав то, что там было ).

И.Е.

var1=1       # var1 ← 1      #overwrite var1 with 1 
var2=$var1   # var2 ← $var1  #overwrite var2 with evaluation of $var1 (i.e 1) 
var1=2       # var1 ← 2      #overwrite var1 with 2
stdout ←← $var2              #append $var2 to stdout

Поэтому

#              var1   var2
var1=1       #  1      n/a     
var2=$var1   #  1      1
var1=2       #  2      1
1
28.04.2021, 23:17

Теги

Похожие вопросы