今日看到用sed -i 修改字符串及十六进制,
sed -i 's/RESTRICT/RXSTRICT/g' AWZ
sed -i 's/\x80\x52\x01\x10\x00\xd4/\x80\x52\x1f\x20\x03\xd5/g' AWZ
第一句是修改RESTRICT,修改后让其可以被加载;
第二句是修改app的十六进制,其实就是修改汇编代码。可以在
http://armconverter.com/hextoarm/
这个网址上输入十六进制进行查询,如:01 10 00 d4 转换后为SVC #0x80,这个是系统调用的汇编代码;1f 20 03 d5 转换后就NOP。
但是,你会发现,在mac下使用sed 有坑!!!上面的命令会报错:
sed: 1: "AWZ": invalid command code A
什么情况?
man 一下,看看说明:
-i extension
Edit files in-place, saving backups with the specified extension. If a zero-length extension is given, no backup will be saved. It is not recommended to
give a zero-length extension when in-place editing files, as you risk corruption or partial content in situations where disk space is exhausted, etc.
因此,使用下面的命令就对了