0
我正在研究使用NFQUEUE过滤另一个应用程序的流量的C程序。我需要做的一件事是用另一个字符串替换一个包中包含的字符串。搜索并替换字符串并忽略空字节字符
问题是,数据包似乎随机(在字符串中间)包含空终止符字节。这意味着我使用strstr()看到的大多数解决方案都不起作用。我需要找到类似的东西,它在到达空终止符字节时不会停止,而是允许指定长度并使用它。 (nfq_get_payload()返回一个长度。)
我已经着眼于在执行替换之前用另一个字节替换空字节,然后在发送数据包之前恢复空字节。这种方法的问题是数据包可能包含角色的机会,所以这不是最好的方法。我想我也可以找到一个没有包含在数据包中的随机字节,但我宁愿避免这样做。
编辑:原始字符串和替换字符串都是相同的长度,这是13个字符。
*数据包似乎随机包含空终止符字节* - 获取协议和流量规范,以便您确切知道这些数字在何处以及为何存在。修改您不了解格式的流量可能会破坏应用程序,并让您进入调试地狱,并带来各种可能的副作用,包括用户数据的丢失。 – Secure
这是一个封闭的源代码应用程序,没有开发人员提供的规范,所以很不幸,这不是一个选项。 – Mike
不只是寻找一个特殊的位模式而不是一个字符串? – Superlokkus