sairen139 发表于 2023-12-29 10:17:05

最为简单的补充pe依赖文件的基于findstr.exe的TXT文本比较方法适合给pe补充缺失文件

最为简单的补充pe依赖文件的基于findstr.exe的TXT文本比较方法适合给pe补充缺失文件

pe基本就是文件和注册表的配合组合,尤其是system32里的dll文件。

有时候我们会发现别人制作的pe有自己没有的系统功能,一般都是自己的pe里system32里的缺少必要的依赖文件。这时候需要对比别人pe补充system32里的依赖文件。

经试验发现最为简单的补充pe依赖文件的基于findstr.exe的TXT文本比较方法如下:

假设你把自己pe里的system32下的文件名称列表(其中大部分是XXX.dll这种)是1.txt,然后你手上有别人pe里的system32下的文件名称列表2.txt

只要打开cmd窗口输入findstr /rv /g:1.TXT 2.TXT>buchong.txt

回车后就能产生自己pe的1.txt需要补充的依赖文件名称列表buchong.txt了。





sairen139 发表于 2023-12-29 10:17:18

本帖最后由 sairen139 于 2024-1-11 21:55 编辑

要在批处理中使用find或findstr命令查找文本文件里的汉字,必须将处理文件保存为ANSI编码

如果不想用到findstr等exe,直接利用批处理的数组法如下:


@echo off
setlocal enabledelayedexpansion


REM 读取1.txt和2.txt文件内容到数组
for /f "delims=" %%a in (1.txt) do (
    set "line=%%a"
    set "file1[!line!]=1"
)
for /f "delims=" %%b in (2.txt) do (
    set "line=%%b"
    if not defined file1[!line!] (
      echo !line!>>buchong.txt
    )
)

逐句分析解说以上的批处理bat如下:这段批处理脚本的功能是将两个文件1.txt和2.txt的内容读取到数组中,然后检查2.txt中的每一行是否在1.txt中,如果不在则将其追加到buchong.txt文件中。
[*]@echo off 是关闭命令回显,这样在运行脚本时不会显示每一行命令。
[*]setlocal enabledelayedexpansion启用延迟变量扩展,这允许在代码块中使用 ! 来访问变量。
[*]for /f "delims=" %%a in (1.txt) do 从1.txt文件中逐行读取内容,并将每一行内容存储在变量 line 中。
[*]set "file1[!line!]=1" 将1.txt中的每一行内容作为数组 file1 的索引,并将其值设置为1。
[*]for /f "delims=" %%b in (2.txt) do 从2.txt文件中逐行读取内容,并将每一行内容存储在变量 line 中。
[*]if not defined file1[!line!] 检查 file1 数组中是否存在2.txt中的当前行,如果不存在,则执行下一步。
[*]echo !line!>>buchong.txt 将2.txt中的当前行追加到buchong.txt文件中。


yyz2191958 发表于 2023-12-29 10:23:47

觉得有一点高深

martin313 发表于 2023-12-29 10:26:58



我的方法比较笨,用excel的vlookup来对比筛选

yyz2191958 发表于 2023-12-29 10:30:55

原来是这样:
1.txt————自己pe里的system32下的文件名称列表
2.txt————别人pe里的system32下的文件名称列表
buchong.txt————需要补充的依赖文件名称列表

tanglf 发表于 2023-12-29 10:36:36

楼上的可行,手动处理

yc2428 发表于 2023-12-29 11:02:40

谢谢分享

vaf 发表于 2023-12-29 11:32:06

nttwqz 发表于 2023-12-29 12:55:48

直接用对比软件不就结了。

开源的有WinMerge

lusir401 发表于 2023-12-29 15:43:36

补充了文件还有需要注册表的。

2012andyle113 发表于 2023-12-29 16:22:46

比对法确实不错

nathan6498 发表于 2023-12-29 19:30:39

谢谢分享

无犹启动 发表于 2024-1-28 11:24:24

谢谢分享
页: [1]
查看完整版本: 最为简单的补充pe依赖文件的基于findstr.exe的TXT文本比较方法适合给pe补充缺失文件