标签: diff

在两个二进制文件中查找匹配序列

让我从一些背景开始。

今天早上,我们的一位用户报告说,Testuff 的安装文件被 CA 防病毒软件报告为感染了病毒。确信这是误报,我在网上查看,发现另一个程序 (SpyBot) 的用户报告了同样的问题。

现在,对于实际问题。

假设防病毒软件正在文件中寻找特定的二进制签名,我想在两个文件中找到匹配的序列,并希望找到一种方法来调整安装脚本以防止出现该序列。

我在 Python 中尝试了以下方法,但它已经运行了很长时间,我想知道是否有更好或更快的方法。

from difflib import SequenceMatcher

spybot = open("spybotsd160.exe", "rb").read()
testuff = open("TestuffSetup.exe", "rb").read()

s = SequenceMatcher(None, spybot, testuff)
print s.find_longest_match(0, len(spybot), 0, len(testuff))
Run Code Online (Sandbox Code Playgroud)

有没有更好的 Python 或其他语言的库可以做到这一点?也欢迎采用完全不同的方法来解决这个问题。

python binary diff antivirus

2
推荐指数
1
解决办法
1904
查看次数

传递给 SVNs --diff3-cmd 的参数是什么?

我一直在尝试为 SVN 编写自己的 diff3 包装脚本,我想知道传递给的各种参数是什么--diff3-cmd

到目前为止我能找到的最接近的东西是:

如何使用 Beyond Compare 3 作为 svn 的 diff3-cmd?

但这并不能完全解释所有参数的作用。

我也试图通过它:

#!/bin/ksh
echo "$*"
Run Code Online (Sandbox Code Playgroud)

as --diff3-cmd,并得到了一些输出,但我无法对它吐出的参数做出正面或反面。这些是某些 unix diff 命令的标准参数吗?

-E -m -L .working -L .merge-left.r1000 -L .merge-right.r1001 /home/user/some/long/filename1 /tmp/tmp /home/user/some/long/filename2
Run Code Online (Sandbox Code Playgroud)

svn diff

2
推荐指数
1
解决办法
2665
查看次数

Hg根据状态选择文件?

有没有办法只选择那些具有Modified状态的文件?
是否可以将选择链接以添加更具体的选择器?

我想导出那些Modified文件中的更改,在安装插件之前还原为changeset,然后重新导入更改.

hg diff -I与模式匹配可能会有所帮助,但在这种情况下,我经常只想根据文件状态选择文件.

hg st的示例(实际内容因文件名和文件名/扩展名不同而异):

M /readme.txt
M /dir1/somefile1.txt
M /dir2/somefile2.txt
M /dir3/somefile3.txt
M /dir4/somefile4.txt
! /plugin/lotsoffileshere.txt
! /plugin/lotsoffileshere.txt
! /plugin/lotsoffileshere.txt
Run Code Online (Sandbox Code Playgroud)

diff mercurial fileset

2
推荐指数
1
解决办法
132
查看次数

通过SSH在两个远程文件夹之间区分

有谁知道如何列出存在于一个远程文件夹而不是另一个远程文件夹中的文件.我有两个服务器(比如Server1和Server2),它们具有相似的文件夹结构,我在做Rsync.但是,目标文件夹包含的文件多于源文件,因为某些文件已被删除.现在,我正在尝试通过diff在服务器1和服务器2之间使用来查找在Server2中找到哪些新文件的方法.

我可以使用以下命令直接在两个本地文件夹之间进行差异:

diff /home/www/images/test_images /var/www/site/images/test_images
Run Code Online (Sandbox Code Playgroud)

但我想知道是否可以使用ssh在两个远程服务器之间区分文件夹.像这样?

diff ubuntu1@images.server1.com:/home/www/images/test_images ubuntu2@images.server2.com:/var/www/site/images/test_images
Run Code Online (Sandbox Code Playgroud)

说服务器1和服务器2的ssh配置如下:

服务器1

IP: images.server1.com
User: ubuntu1
Password: pa$$word1
Images Path: /home/www/images/test_images
Run Code Online (Sandbox Code Playgroud)

服务器2

IP: images.server2.com
User: ubuntu2
Password: pa$$word2
Images Path: /var/www/site/images/test_images
Run Code Online (Sandbox Code Playgroud)

希望有任何帮助来解决这个问题.谢谢.

linux ssh diff

2
推荐指数
1
解决办法
5165
查看次数

寻找允许 URL 作为输入的文件差异工具

我正在寻找一个文件差异工具,它允许我输入存储在 Web 服务器上的属性文件的 URL,而不是本地文件 - 我尝试过的所有工具(WinMerge、Diffuse、Beyond Compare)似乎只允许本地文件(或服务器上的文件)进行比较。

换句话说,只需传递这两个 URL就可以直接比较http://www.example.com/releases/14F/base.propertieshttp://www.example.com/releases/14G/base.properties到文件差异实用程序。

为了使这更复杂,我真的希望它可以被技术人员和非技术人员使用 - 例如产品经理可能需要使用它......当然,我可以使用 cURL 来获取文件然后将它传递给我上面提到的工具之一,但是我的 PM 既不会安装 cURL,也不想使用它。

对我来说,它是实际的可执行文件还是基于 Web 的服务并不重要,但如果它是可执行文件,则它需要在 PC 上运行,最好也可以在 Mac 上运行。

如果它允许比较两个以上的文件,那就太好了 - 现在我们使用 Diffuse,它可以同时比较至少 10 个文件,但这不是必需的 - 能够通过提供它们的 URL 来比较文件会更多比能够比较所有需要从 Web 服务器下载的 10 个文件有用。

有没有人对启用此功能的任何工具有任何经验?如果这不能直接完成,那么一些有用的东西将使我(或上面提到的非技术人员)能够以尽可能少的步骤检索这些文件并进行比较 - 比“右键单击以查看源代码,另存为 .txt 文件到桌面等。

diff properties

2
推荐指数
1
解决办法
483
查看次数

比较二进制文件并仅打印匹配行的偏移量

对于常规文件,我可以使用 comm命令来查找公共行。

例如我们有两个文件

$ cat f1
line1
line2
line3
line4
line5

$ cat f2
line1
line20
line30
line4
line5
Run Code Online (Sandbox Code Playgroud)

它比较像:

$ comm -12 f1 f2
line1
line4
line5
Run Code Online (Sandbox Code Playgroud)

如何找到匹配行的偏移量以及如何对两个二进制文件进行比较并打印匹配行偏移量?

我一直在使用诸如diff, cmp,comm过去1小时,摸不清头脑。

编辑 1:不是确切的解决方案,但发现 vbindiff 有帮助。

linux diff binaryfiles cmp comm

2
推荐指数
1
解决办法
3101
查看次数

比较单个文件的片段或两个不同文件的部分

在 JetBrains 的 IDE (PhpStorm) 中 - 有没有办法比较单个文件的两个片段或两个不同文件的部分?

diff jetbrains-ide phpstorm

2
推荐指数
1
解决办法
196
查看次数

当R中的行少一行时,使用diff()函数添加新列

如果我有像mtcars这样的示例数据框,并且我想找到所有行的mtcars $ qsec之间的差异,我可以做diff(mtcars $ qsec).但有没有一种简单的方法可以使diff(mtcars $ qsec)成为原始mtcars数据框中的新列?我发现它很困难,因为diff(mtcars $ qsec)中的行少于其他mtcars.

> head(mtcars,3)

               mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Mazda RX4     21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag 21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Datsun 710    22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Run Code Online (Sandbox Code Playgroud)

diff r

2
推荐指数
1
解决办法
2741
查看次数

Git相当于汞添加+汞差异?

我最近习惯了水银后开始使用git。

从本质上讲,如果我hg add有一些文件,那么hg diff我会得到一个补丁,然后可以从理论上应用一个简单的补丁,patch -p1并获得完全相同的本地副本。

现在,有了git,情况就不同了:在您git diff之前git add。但是,我该如何git diff覆盖ing hg diff之后的所有未跟踪文件hg add呢?

git diff mercurial

2
推荐指数
1
解决办法
631
查看次数

Symfony 3-2 arraycollection之间的区别

有没有办法区分2 ArrayCollection?(例如array_diff)

今天我循环第一个,检查$ it-> contains()是否匹配,但是我认为它可以重构。

diff arraycollection symfony

2
推荐指数
1
解决办法
3443
查看次数