|
- Public Function SpyFindSubString(ByRef MainString As UNICODE_STRING, ByRef SubString As UNICODE_STRING) As Boolean
- Dim Buff1() As Integer
- Dim Buff2() As Integer
- Dim i As Integer
- Dim j As Integer
- If MainString.Length < SubString.Length Then SpyFindSubString = False: Exit Function
- If MainString.Length = SubString.Length Then
- ReDim Buff1(1 To MainString.Length / 2)
- ReDim Buff2(1 To MainString.Length / 2)
- CopyMemory VarPtr(Buff1(1)), MainString.pBuffer, MainString.Length
- CopyMemory VarPtr(Buff2(1)), SubString.pBuffer, SubString.Length
- For i = 1 To MainString.Length / 2
- If Buff1(i) <> Buff2(i) Then
- SpyFindSubString = False
- Exit Function
- End If
- Next i
- SpyFindSubString = True
- Else
- ReDim Buff1(1 To MainString.Length / 2)
- ReDim Buff2(1 To SubString.Length / 2)
- CopyMemory VarPtr(Buff1(1)), MainString.pBuffer, MainString.Length
- For j = 1 To (MainString.MaxLength - SubString.Length) / 2
- CopyMemory VarPtr(Buff2(1)), SubString.pBuffer, SubString.Length
- For i = 1 To SubString.Length / 2
- If Buff1(i + j - 1) <> Buff2(i) Then
- SpyFindSubString = False
- Exit Function
- End If
- Next i
- Next j
- SpyFindSubString = True
- End If
复制代码
这串代码有个问题就是字符串长度不等就会发生逻辑错误。。。 |
|