首页
社区
课程
招聘
[原创][驱动、进程、服务、文件]签名验证工具2.27
发表于: 2010-9-27 15:24 26152

[原创][驱动、进程、服务、文件]签名验证工具2.27

2010-9-27 15:24
26152
收藏
免费 7
支持
分享
最新回复 (42)
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
不一定是。很多程序都没有数字签名,数字签名将是以后的发展方向。会有越来越多的程序加入数字签名,网上有个数字签名的添加器,那是个假签名,是没用的,过不了真签名。

对震旦病毒能仿冒数字签名,很期待能看到它。
2010-10-11 19:49
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
感谢啊,不知道能不能提供源码,我现在在学习这方面的知识,准备毕设
2010-10-12 09:00
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
有付出,才有收获。过关不是目的,祝你成功!
2010-10-12 13:23
0
雪    币: 243
活跃值: (209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
BOOL CheckFileTrustW( IN LPCWSTR lpFileName )
{
        BOOL bRet = FALSE;
        WINTRUST_DATA wd = { 0 };
        WINTRUST_FILE_INFO wfi = { 0 };
        WINTRUST_CATALOG_INFO wci = { 0 };
        CATALOG_INFO ci = { 0 };

        HCATADMIN hCatAdmin = NULL;
        if ( !CryptCATAdminAcquireContext( &hCatAdmin, NULL, 0 ) )
        {
                return FALSE;
        }

        HANDLE hFile = CreateFileW( lpFileName, GENERIC_READ, FILE_SHARE_READ,
                NULL, OPEN_EXISTING, 0, NULL );
        if ( INVALID_HANDLE_VALUE == hFile )
        {
                CryptCATAdminReleaseContext( hCatAdmin, 0 );
                return FALSE;
        }

        DWORD dwCnt = 100;
        BYTE byHash[100];
        CryptCATAdminCalcHashFromFileHandle( hFile, &dwCnt, byHash, 0 );
        CloseHandle( hFile );

        LPWSTR pszMemberTag = new WCHAR[dwCnt * 2 + 1];   

        for ( DWORD dw = 0; dw < dwCnt; ++dw )
        {
                wsprintfW( &pszMemberTag[dw * 2], L"%02X", byHash[dw] );
        }

        HCATINFO hCatInfo = CryptCATAdminEnumCatalogFromHash( hCatAdmin,
                byHash, dwCnt, 0, NULL );
        if ( NULL == hCatInfo )
        {
                wfi.cbStruct = sizeof( WINTRUST_FILE_INFO );
                wfi.pcwszFilePath = lpFileName;
                wfi.hFile = NULL;
                wfi.pgKnownSubject = NULL;

                wd.cbStruct = sizeof( WINTRUST_DATA );
                wd.dwUnionChoice = WTD_CHOICE_FILE;
                wd.pFile = &wfi;
                wd.dwUIChoice = WTD_UI_NONE;
                wd.fdwRevocationChecks = WTD_REVOKE_NONE;
                wd.dwStateAction = WTD_STATEACTION_IGNORE;
                wd.dwProvFlags = WTD_SAFER_FLAG;
                wd.hWVTStateData = NULL;
                wd.pwszURLReference = NULL;
        }
        else
        {
                CryptCATCatalogInfoFromContext( hCatInfo, &ci, 0 );
                wci.cbStruct = sizeof( WINTRUST_CATALOG_INFO );
                wci.pcwszCatalogFilePath = ci.wszCatalogFile;
                wci.pcwszMemberFilePath = lpFileName;
                wci.pcwszMemberTag = pszMemberTag;

                wd.cbStruct = sizeof( WINTRUST_DATA );
                wd.dwUnionChoice = WTD_CHOICE_CATALOG;
                wd.pCatalog = &wci;
                wd.dwUIChoice = WTD_UI_NONE;
                wd.fdwRevocationChecks = WTD_STATEACTION_VERIFY;
                wd.dwProvFlags = 0;
                wd.hWVTStateData = NULL;
                wd.pwszURLReference = NULL;
        }
        GUID action = WINTRUST_ACTION_GENERIC_VERIFY_V2;
        HRESULT hr = WinVerifyTrust( NULL, &action, &wd );
        bRet = SUCCEEDED( hr );

        if ( NULL != hCatInfo )
        {
                CryptCATAdminReleaseCatalogContext( hCatAdmin, hCatInfo, 0 );
        }
        CryptCATAdminReleaseContext( hCatAdmin, 0 );
        if(pszMemberTag)
                delete[] pszMemberTag;

        return bRet;
}
2010-10-13 08:43
0
雪    币: 6
活跃值: (1146)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
大概测试有2个bug
插件注册表键值不能删除
退出时有异常
2010-10-13 09:27
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
谢谢楼上朋友提供你的方法。
2010-10-13 17:29
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
谢谢热心朋友的测试。

我又测试了下,能够删除啊,如果您的不能删除,能不能提供更详细的说明。

至于退出时有异常,不敢保证没有,但自从上次解决后已经有很久没有出现了,能不能再详细地说明,如在什么操作后退出,出现什么错误提示等等,如果有这些东西给我看看帮助我修正错误,我将是非常开心的,以便能提供更加完善的程序给大家。
2010-10-13 17:32
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
再升级,顶。
2010-10-27 13:47
0
雪    币: 334
活跃值: (78)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
34
你不知道 process explorer 老早就有这个功能?
2010-10-28 14:50
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
老大,我的工具比你讲的那个要全面的多,不光有进程,还有驱动、服务、文件啊,你肯定没有用过我的工具,请用过后再发言。

但还是感谢你的意见。
2010-10-29 22:21
0
雪    币: 1489
活跃值: (1053)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
36
怕有人居心叵测。。
2010-10-29 22:42
0
雪    币: 2015
活跃值: (902)
能力值: ( LV12,RANK:1000 )
在线值:
发帖
回帖
粉丝
37
逆了一下,发现和网上老外的那个DELPHI版一模一样,我也懒得下载那个IP数据库,改个跳转就能调试。不知道伪造签名有没有可能。
2010-10-29 23:44
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
和老外的一样?不会吧,早知道我就不写了,还是有点累人的。能给个老外的链接吗?

伪造签名,是没用的,能验证出来。
2010-11-2 14:21
0
雪    币: 442
活跃值: (107)
能力值: ( LV9,RANK:350 )
在线值:
发帖
回帖
粉丝
39
see see
2010-11-5 10:59
0
雪    币: 240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
IP库跟数字签名有什么关系?
2010-12-29 15:27
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
没有关系,只是链接地址时要用到。
2010-12-29 22:53
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
谁有实战中更快的、更实用的多线程源码?要delphi的。
2011-2-7 16:02
0
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
因工作关系,没有时间再次升级,准备出售源代码,有意者可联系我。
2011-3-16 22:42
0
游客
登录 | 注册 方可回帖
返回
//