TCP或WebSocket修改
解码成text重写
如果传输内容是文本,可以直接将内容转换为文本,此时用正则表达式替换对应的值,正则表达式具体的使用可以参考HTTP重写部分的正则表达式重写。
解码成binary重写
TCP和WebSocket的编码部分会采用二进制传输,因此Hodor在改写时会将二进制数据转换为Hex16进行数据操作,当修改完成以后又还原成二进制数据。
例如我一个JSON文件
{"id":10001,"name":"Anla","age":25}
我们想把name改为Emma
{"id":10001,"name":"Emma","age":25}
转换成hex以后是
7B226964223A31303030312C226E616D65223A22416E6C61222C22616765223A32357D
"name":"Anla"
转换为hex16 为 226E616D65223A22416E6C6122
"name":"Emma"
转换为hex16为 226E616D65223A22456D6D6122
因此在改写时你可以将正则表达式设置为226E616D65223A22416E6C6122
,值替换设置为226E616D65223A22456D6D6122
正则表达式参数说明:
-
可选参数:正则表达式替换是基于系统框架NSRegularExpression具体使用您可以查看文档地址
-
匹配范围:匹配时你可以选择正则表达式的匹配区域,location是字符串的开始位置,length表示从开始位置后的长度
-
值替换时全部匹配:即当你的正则表达式匹配到多个数据时,将依次全部替换所有匹配到的数据
-
值替换时逐个匹配:即当你的正则表达式匹配到多个数据时,会根据所填写的数组下标替换对应的数据