Java 在其他文本字段中查找文本

Java 在其他文本字段中查找文本,java,parsing,text,Java,Parsing,Text,我有一个关于用Java解析文本的问题 Name Virtual address Virtual size Raw size Entropy MD5 CODE 4096 37732 37888 6.56 2c410dfc3efd04d9b69c35c70921424e DATA 45056 588 1024 2.74 d5ea23d4ecf110fd2591314cbaa84278 BSS 49152 3720 0 0.00 d41d8cd9

我有一个关于用Java解析文本的问题

  Name  Virtual address  Virtual size  Raw size  Entropy  MD5
  CODE  4096  37732  37888  6.56  2c410dfc3efd04d9b69c35c70921424e
  DATA  45056  588  1024  2.74  d5ea23d4ecf110fd2591314cbaa84278
  BSS  49152  3720  0  0.00  d41d8cd98f00b204e9800998ecf8427e
 .idata  53248  2384  2560  4.43  bb5485bf968b970e5ea81292af2acdba
 .tls  57344  8  0  0.00  d41d8cd98f00b204e9800998ecf8427e
 .rdata  61440  24  512  0.20  9ba824905bf9c7922b6fc87a38b74366
 .reloc  65536  2228  0  0.00  d41d8cd98f00b204e9800998ecf8427e
 .rsrc  69632  378360  378368  4.42  dc75e95cd49ce06a635cad0b18dab6d7
 ? Runtime DLLs
 c:\docume~1\<USER>~1\locals~1\temp\glc1.tmp (successful)
 c:\docume~1\<USER>~1\locals~1\temp\glk2.tmp (successful)
 riched32.dll (successful)
 secur32.dll (successful)
 shell32.dll (successful)
 ole32.dll (successful)
 setupapi.dll (successful)
 rpcrt4.dll (successful)
 clbcatq.dll (successful)
 comctl32.dll (successful)
 ntshrui.dll (successful)
 linkinfo.dll (successful)
 userenv.dll (successful)
 netapi32 (successful)
 Contract
 ? PE imports
 [+] advapi32.dll ()
 LookupPrivilegeValueA
名称虚拟地址虚拟大小原始大小熵MD5
代码4096 37732 37888 6.56 2c410dfc3efd04d9b69c35c70921424e
数据45056 588 1024 2.74 d5ea23d4ecf110fd2591314cbaa84278
BSS 49152 3720 0 0.00 d41d8cd98f00b204e9800998ecf8427e
.idata 53248 2384 2560 4.43 bb5485bf968b970e5ea81292af2acdba
.tls 57344 8 0.00 d41d8cd98f00b204e9800998ecf8427e
.rdata 61440 24 512 0.20 9ba824905bf9c7922b6fc87a38b74366
.reloc 65536 2228 0 0.00 d41d8cd98f00b204e9800998ecf8427e
.rsrc 69632 378360 378368 4.42 dc75e95cd49ce06a635cad0b18dab6d7
?运行时DLL
c:\docume~1\~1\locals~1\temp\glc1.tmp(成功)
c:\docume~1\~1\locals~1\temp\glk2.tmp(成功)
riched32.dll(成功)
secur32.dll(成功)
shell32.dll(成功)
ole32.dll(成功)
setupapi.dll(成功)
rpcrt4.dll(成功)
clbcatq.dll(成功)
comctl32.dll(成功)
ntshrui.dll(成功)
linkinfo.dll(成功)
userenv.dll(成功)
netapi32(成功)
合同
? PE进口
[+]advapi32.dll()
LookupPrivilegeValueA

我想解析文本,这在运行时DLL一节中。是否有任何解决方案在找到字符串运行时DLL时开始追加到stringbuilder,并在找到下一个DLL时追加?哪一行是PE导入?或者他们会为此解析选择其他解决方案吗?

您可以逐行读取文本文件,并在找到字符串“Runtime DLL”后开始向stringbuilder追加行,直到找到终点:

String file = "your_file";
StringBuilder result = new StringBuilder();
boolean flag = false;
try(BufferedReader br = new BufferedReader(new FileReader(file))) {
    for(String line; (line = br.readLine()) != null; ) {
        if (line.trim().startsWith("? ")) { //lines starting at "? "
            flag = !flag;
            continue;
        }

        if (flag) {
            //here lines can be parsed to successful or not
            result.append(line + "\n");
        }
    }
}

但是有很多文本字段,并不是在DLL之后的每个后续PE导入中…为了这个需要,我找到了解决方案..thanksI更新了我的代码段:它找到所有从“?”开始的字符串,并将其包含到stringbuilder内容中的一对“?”。这将非常好,它将开始附加到我想要的值上,然后在下一个值上停止?一行..如何做到这一点?最好为这个字符串设置一个模式,比如从问号开始的字符串。你想指出“开始”和“结束”字符串的列表吗?如果这是最好的解决方案..好的..如何?