0
我正在研究使用NFQUEUE過濾另一個應用程序的流量的C程序。我需要做的一件事是用另一個字符串替換一個包中包含的字符串。搜索並替換字符串並忽略空字節字符
問題是,數據包似乎隨機(在字符串中間)包含空終止符字節。這意味着我使用strstr()看到的大多數解決方案都不起作用。我需要找到類似的東西,它在到達空終止符字節時不會停止,而是允許指定長度並使用它。 (nfq_get_payload()返回一個長度。)
我已經着眼於在執行替換之前用另一個字節替換空字節,然後在發送數據包之前恢復空字節。這種方法的問題是數據包可能包含角色的機會,所以這不是最好的方法。我想我也可以找到一個沒有包含在數據包中的隨機字節,但我寧願避免這樣做。
編輯:原始字符串和替換字符串都是相同的長度,這是13個字符。
*數據包似乎隨機包含空終止符字節* - 獲取協議和流量規範,以便您確切知道這些數字在何處以及爲何存在。修改您不瞭解格式的流量可能會破壞應用程序,並讓您進入調試地獄,並帶來各種可能的副作用,包括用戶數據的丟失。 – Secure
這是一個封閉的源代碼應用程序,沒有開發人員提供的規範,所以很不幸,這不是一個選項。 – Mike
不只是尋找一個特殊的位模式而不是一個字符串? – Superlokkus