无忧启动论坛

标题: 最为简单的补充pe依赖文件的基于findstr.exe的TXT文本比较方法适合给pe补充缺失文件 [打印本页]

作者: sairen139    时间: 2023-12-29 10:17
标题: 最为简单的补充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了。





对比列表找出要补充的pe依赖文件.zip

24.25 KB, 下载次数: 43, 下载积分: 无忧币 -2

对比列表找出要补充的pe依赖文件


作者: sairen139    时间: 2023-12-29 10:17
本帖最后由 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文件中。


IMG_8615.png (631.67 KB, 下载次数: 33)

把txt换成a.txt和b.txt也一样。

把txt换成a.txt和b.txt也一样。

数组法对比列表找出要补充的pe依赖文件.bat.TXT

308 Bytes, 下载次数: 3, 下载积分: 无忧币 -2

数组法对比列表找出要补充的pe依赖文件.bat


作者: yyz2191958    时间: 2023-12-29 10:23
觉得有一点高深
作者: martin313    时间: 2023-12-29 10:26


我的方法比较笨,用excel的vlookup来对比筛选
作者: yyz2191958    时间: 2023-12-29 10:30
原来是这样:
1.txt————自己pe里的system32下的文件名称列表
2.txt————别人pe里的system32下的文件名称列表
buchong.txt————需要补充的依赖文件名称列表
作者: tanglf    时间: 2023-12-29 10:36
楼上的可行,手动处理
作者: yc2428    时间: 2023-12-29 11:02
谢谢分享
作者: vaf    时间: 2023-12-29 11:32

作者: nttwqz    时间: 2023-12-29 12:55
直接用对比软件不就结了。

开源的有WinMerge
作者: lusir401    时间: 2023-12-29 15:43
补充了文件还有需要注册表的。
作者: 2012andyle113    时间: 2023-12-29 16:22
比对法确实不错
作者: nathan6498    时间: 2023-12-29 19:30
谢谢分享
作者: 无犹启动    时间: 2024-1-28 11:24
谢谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3