포함 된 SQL 문을 포함하는 일부 이진 텍스트 파일에서 문자열 데이터를 다듬 으려합니다. 읽을 수있는 텍스트를 추출 할 수있는 간단한 방법이 필요하지 않습니다. vb.net을 사용하고 있지만 외부 유틸리티를 호출해도 작동합니다.VB.Net의 이진 파일에서 문자열 추출
답변
감사합니다. 훌륭한 아이디어. 정말로 나를 도왔습니다. Upvotes 주위. 끝났어. 나는 그들이 끈임을 확신 할 필요가 없었기 때문에 나는 빠르고, 거칠고, 추악한 해킹으로 갔다.
'strip out non-string characters
For Each b As Byte In byteArray
If b = 9 Or b = 10 Or b = 13 Or (b > 31 And b < 127) Then
newByteArray(i) = b.ToString
i += 1
End If
Next
'move it into a string
resultString = System.Text.Encoding.ASCII.GetString(newByteArray)
처음에는 그렇게 느껴지지 않습니다. 문자열은 여러 가지 방법으로 인코딩 될 수 있습니다. "읽을 수있는 텍스트"라고 생각하는 부분, 읽을 수없는 부분은 어떻게 보입니까? 그것은 다음과 같습니다 말 : 그것은 가능성이 UTF-16 또는 다른 멀티 바이트 인코딩을 사용하여 인코딩되어 있기 때문에 당신이 운이
&8)JÓxZZ`\■£ÌS?E?L?E?C?T?*?F?R?O?M?m?y?T?b?l?§ıÍ4¢
. 이들은 인식하기가 다소 어렵습니다. 그러나 다른 모든 경우 (UTF-8, ISO-8859-1, Windows-1252)에서는 텍스트 또는 텍스트가 아닌 개별 문자를 구별하는 것이 불가능합니다. "읽을 수있는 텍스트"가 시작되고 끝나는 방법.
요점은 무엇이든 허용되며 읽을 수있는 텍스트로 간주됩니다. UTF-8, ASCII 및 Windows-1252는 NULL 문자도 허용합니다 (일부 프로그래밍 언어는 그렇지 않습니다). Here's a thread 당신이 어떻게 진행할 수 있는지에 대한 VB 예제를 제공하면, 몇 가지 힌트를 줄 수 있습니다.
추 신 :이 유형의 데이터를 분석하는 것은 어려울 수 있습니다. 어딘가에 파일을 업로드 할 수 있다면 큰 도움이됩니다. 참고로
: 는 GNU 문자열 유틸리티는 영원히 주변에 있었다 더 또는 덜 정확히이 일을하는 것이 바이너리에서 "문자열처럼 보인다"데이터를 꺼낼 휴리스틱을 사용하여 수행하고있다 http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx
.
MinGW에서 Win32 용 GNU binutils (문자열 포함) : http://sourceforge.net/projects/mingw/files/을 가져옵니다.
참고로, 문자열의 출력에는 많은 오 탐지 (false positives)가 포함되지만 찾고있는 문자열의 문법 (SQL 문)을 알고 있다면 찾고자하는 것만 필터링하는 것이 어렵지 않습니다 . –
+1, esp. 나는 그것을 잘보고 부적절하다고 생각하기 때문에. 내가 틀렸어! ;-). 휴리스틱 스를 사용하는 것은 Rosetta Stone이 아닙니다 ... – Abel
- 1. .odc 파일에서 연결 문자열 추출
- 2. vb.net의 파일에서 바이트 읽기
- 3. CSV 파일에서 텍스트 추출
- 4. 파일에서 단어 추출
- 5. SWF 파일에서 비디오 추출
- 6. settings.py 파일에서 암호 추출
- 7. 파일에서 비트 맵 추출
- 8. 파일에서 이진 청크 찾기
- 9. Zend_Translate :보기에서 자동 추출 문자열
- 10. vb.net의 이름과성에 대한 분할 문자열
- 11. C# ListView에서 문자열 추출
- 12. eExteranl에서 쿼리 문자열 추출
- 13. 단락에서 여러 문자열 추출
- 14. 부분 문자열 추출 연습
- 15. 인용문 사이에서 문자열 추출
- 16. 파이프 라인 문자열 추출
- 17. 데이터 추출 PHP 문자열
- 18. 문자열 내에서 URL 추출
- 19. SQL 추출 부분 문자열
- 20. PHP의 문자열/이진 배열
- 21. 이진 문자열 비교
- 22. Ruby 정수에서 이진 문자열
- 23. ruby 이진 문자열 비교
- 24. 파이썬의 CSV 파일에서 데이터 추출
- 25. Java : 오디오 파일에서 바이트 추출
- 26. XML 파일에서 특정 항목 추출
- 27. html 파일에서 파일 경로 추출
- 28. swf 파일에서 자산을 추출 하시겠습니까?
- 29. pfx 파일에서 일반 이름 추출
- 30. Word 파일에서 특정 텍스트 추출
메모장에서보고 싶은 텍스트 파일을 열 때 내가 걱정하는 문자열 부분이 명확하게 표시됩니다. 나는 내가 할 필요가 있다고 생각하는 것이 문자열이 아닌 것을 제거하는 것이고 나는 설정 될 것이라고 생각 했는가? – Jeff
나는 당신이 옳았 으면 좋겠지 만 그렇게 쉬운 것은 아니다. 메모장은 이러한 문자열을 알지 * 않습니다. 단지 표시합니다. 바이너리 파일 (예 : 이미지)을 보면 "읽을 수있는"부분을 찾을 수 있습니다. 문자 단위로 볼 때, 전체 파일에서 항상 "문자열"인 문자 범위를 선택할 수 있습니까? – Abel