0

我的 shell 脚本有问题:

我想用不同类型的字符串运行我的程序 m4,我写下了这个脚本:

#!/bin/bash

for number in $( seq 16 253 )
  do
    num=$((number+2))
    hex_base=$( printf "%X" ${number} )
    hex_offset=$( printf "%X" ${num} )
    ./m4 "`python -c 'print "\x66\x66\x${hex_offset}\xed\xff\xbf\x${hex_base}\xed\xff\xbf%49135c%88$hn%14153c%89$hn"'`"
done

它以十六进制从 10 计数到 FD,并将此值放入我的字符串中。出现此错误:

ValueError: invalid \x escape

第一个问题:这是一个真正的错误还是只是一个警告? 第二个问题:为什么如果所有值都由您应该在字符串中看到的地址中的两个字符组成,但会出现错误?

4

1 回答 1

0

hex_base当你去掉单引号时应该工作:

./m4 "`python -c 'print "\x66\x66\x'${hex_offset}'\xed\xff\xbf\x'${hex_base}'\xed\xff\xbf%49135c%88$hn%14153c%89$hn"'`"
于 2014-05-10T12:36:31.440 回答