我试图在二进制文件中的一系列偏移之间进行搜索。我已经将bin文件作为字节数组[]加载,然后将其内容编码为String,稍后我用它来搜索String序列。问题是我需要进行搜索,但只能在我输入的偏移范围内(开始和结束)...并且还使用不同的字符串序列进行搜索,所以打印给我这样的东西:
0x180 30
0x240 17
0x350 30
0x464 30
0x650 17
现在我自己得到30个所有序列。
这是我的代码:
byte[] model = Read.readBytesFromFile();
String x = HexBin.encode(model);
String v30 = "05805A6C";
String v17 = "0580336C";
String beg = txtBeg.getText().toString();
int beg2 = Integer.parseInt(beg);
int start = (model.length + beg2) - model.length;
String end = txtEnd.getText().toString();
int end2 = Integer.parseInt(end);
int ending = (model.length + end2) - model.length;
int index = 0;
if (x.contains(v30)
{
if (cbxVer.isSelected()) {
while ((index = x.indexOf(v30, index)) != -1) {
System.out.println("0x" + (Integer.toHexString((index / 2) + 4)) + " 30");
index = index + 2;
}
}
} else {
JOptionPane.showMessageDialog(rootPane, "Wrong File");
}