noonsun 发表于 2012-3-20 00:13:49

如何者比较 2个文件

比如 一个文件夹内 有 几个 dll 文件,其中 a.dllb.dll是同一个文件, 但是文件名不一样,如何去定位这两个个文件。 还请论坛里的高手帮忙指点一下。谢谢!

noonsun 发表于 2012-3-20 00:19:34

补充一点 排除掉 SHA1 MD5CRC32 等方法

user3000 发表于 2012-3-20 00:30:52

以二进制读出文件内容, 然后再比较
'同一'文件(文件主体与副本), 它们的内容当然会完全一致!

noonsun 发表于 2012-3-20 00:40:13

以二进制读出文件内容, 然后再比较
'同一'文件(文件主体与副本), 它们的内容当然会完全一致!
user3000 发表于 2012-3-20 00:30 http://www.autoitx.com/images/common/back.gif


    改了名字的文件如果被修改过一点点呢?我如何去定位这个dll 呢

afan 发表于 2012-3-20 00:43:37

If FileRead('a.dll') == FileRead('b.dll') Then Msgbox(0, '', 'ok')

afan 发表于 2012-3-20 00:44:39

改了名字的文件如果被修改过一点点呢?我如何去定位这个dll 呢
noonsun 发表于 2012-3-20 00:40 http://www.autoitx.com/images/common/back.gif


    被修改过一点点还算同一个文件?

noonsun 发表于 2012-3-20 00:51:17

被修改过一点点还算同一个文件?
afan 发表于 2012-3-20 00:44 http://www.autoitx.com/images/common/back.gif


    两个dll 拥有同样的功能,就是被修改过了,比如改过里面的文字

noonsun 发表于 2012-3-20 01:03:46

谢谢 user3000和 afan帮我想办法,我突然 想到 这个 dll 里面有相同 的 字符串,现在就是 如何读出这两个 dll 文件中的 那个字符串 然后比较两个文件中相同的字符串 就可以了

whm123 发表于 2012-3-20 02:56:31

用cm32可以实现

netegg 发表于 2012-3-20 03:25:32

用cm32可以实现
whm123 发表于 2012-3-20 02:56 http://www.autoitx.com/images/common/back.gif


    读签名

netegg 发表于 2012-3-20 03:25:37

本帖最后由 netegg 于 2012-3-20 03:29 编辑

不走签名的话,编码比对吗,全半角比对吗,以及其余的可能造成误判的情况

haijie1223 发表于 2012-3-20 15:01:20

不管你改里面的什么文件,改过多少,都不能算是相同文件了吧。

Qokelate 发表于 2012-3-21 13:38:15

由楼主提供条件可知

1.文件是个DLL
2.功能相同
因此,判断是否“相同”的办法就是读导出函数是否一致!   WinHex一下   收工

Ycxw2008 发表于 2012-3-22 12:24:33

API有个枚举dll函数的好像
页: [1]
查看完整版本: 如何者比较 2个文件