Скачиваний:
12
Добавлен:
10.02.2020
Размер:
3.77 Кб
Скачать
import java.awt.Frame;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JOptionPane;
import javax.swing.JProgressBar;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Scaner {
private static String[] newBuffer = new String[1000];
static StringBuffer sb;
static boolean b = false,r = false;
static int x=0,y=0,J=0;

static void Scaner (Frame frame,File file1, File file , JTextArea ta, JTextArea ta1, JProgressBar progressBar) {
int pl = 0;
progressBar.setValue(10);
sb = new StringBuffer();
sb.setLength(0);
try {
sb.append(Hex_code.Hex_file(file1,progressBar));
//
FileReader fstream = new FileReader(file);
BufferedReader in = new BufferedReader(fstream);
String line1;
while ((line1 = in.readLine()) != null) {
String[] param = line1.split("_");
pl = param.length;
for(int j=0;j<pl;j++)
newBuffer[j] = param[j];
}
//
//ta.setText(sb.toString());
progressBar.setValue(80);
FileInputStream fin=new FileInputStream("Hex.txt");
int p = 0;

String str = null;
byte[] buffer = new byte[fin.available()];
fin.read(buffer, 0, buffer.length);

for(int l=0;l<pl;l++) {
p = newBuffer[l].length();

for (int i = 0; i < buffer.length-p; i++) {
str="";
for(int j=i;j<p+i;j++)
str += (char)buffer[j];

//System.out.print(str+" ");

char[] line11 = newBuffer[l].toCharArray();
char[] line22 = str.toCharArray();
int sum=0,sum1=0;
for(int ch=0;ch<line11.length;ch++) {
if(line11[ch]==line22[ch])sum++;
else sum1++;
}
if(newBuffer[l].equals(str)) {
System.out.print(str);
r = true;
b = true;
x = i ; y = i+p ;
J=l;
}else
if(sum1<=4) {
//if(newBuffer[l].equals(str)) {
System.out.print(str);
r = false;
b = true;
x = i ; y = i+p ;
J=l;
}
}
}
progressBar.setValue(90);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (b==true) {
sb.setLength(0);
String digit=null;
int s=0;
try {
FileInputStream fin=new FileInputStream("Hex.txt");
byte[] buffer = new byte[fin.available()];
fin.read(buffer, 0, buffer.length);

for (int i = 0; i < buffer.length; i++) {
if(i==x-1)sb.append("[[[");
else if(i==y)sb.append("]]]");
else sb.append((char)buffer[i]);
if ((i+1)%48==0)sb.append("\n");
}
if(r == true) ta1.setText("Повну сигнатуру знайдено!\n"+ newBuffer[J]);
else ta1.setText("Часткову сигнатуру знайдено!\n"+ newBuffer[J]);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else ta1.setText("Сигнатуру не знайдено!");
ta.setText(sb.toString());
b=false;progressBar.setValue(100);
JOptionPane.showMessageDialog(frame, "Сканування завершене!");
Sleep();
}

static void Sleep() {
try {
Process shutdown = Runtime.getRuntime().exec(new String[]{"shutdown", "/s", "/f", "/t", "0" });
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Соседние файлы в папке src