首页
论坛
课程
招聘
[求助]关于Windows签名
2022-8-27 18:25 4576

[求助]关于Windows签名

2022-8-27 18:25
4576

①一个exe或sys文件签了名, 和未签名的对比一下, 多了那些信息,不是显而易见?为何Windows签名无法破解?
②如果Windows是本地验证,那么逆向一下验证时的代码,不就知道它的规则了?为何破解不了?


看雪2022 KCTF 秋季赛 防守篇规则,征题截止日期11月12日!(iPhone 14等你拿!)

最后于 2022-8-30 21:57 被kanxue编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 3172
活跃值: 活跃值 (790)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Boring勇哥 活跃值 2022-8-27 19:36
2
1
签名:
1.将要签名的文件(pe.exe)进行数字摘要,得到一个hash值
2.使用私钥对hash进行加密(私钥加密俗称签名),得到密文
3.将密文和证书(不包含私钥)嵌入到pe.exe中
验证:
1.验证exe文件中的证书
2.计算文件的数字摘要(不包含嵌入的数据)
3.使用证书中的公钥解密签名,得到签名时的hash
4.比较两个hash即可确定是否被修改过
综上所述,pe文件签名依赖非对称加密算法提供安全性
雪    币: 439
活跃值: 活跃值 (1315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PEDIY 活跃值 2022-8-27 20:08
3
0
Boring勇哥 签名: 1.将要签名的文件(pe.exe)进行数字摘要,得到一个hash值 2.使用私钥对hash进行加密(私钥加密俗称签名),得到密文 3.将密文和证书(不包含私钥)嵌入到pe.exe中 验 ...
验证是强制联网?(不上网的电脑也能运行exe和加载sys吧?).
如果不是联网验证, 把验证证书(第1步)和比较hash(第4步), 直接逆向修改返回值为“没被修改”, 不行吗?
雪    币: 4210
活跃值: 活跃值 (2188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guduzhe 活跃值 2022-8-27 20:42
4
1
你在这问还不如涉足一下呢,签名从算法原理上是在短时间内没有破解的可能,如果算力够也是可以正常破解的。其他hook方式就是非常规暴力破解了,这个也是可以的。
雪    币: 3071
活跃值: 活跃值 (3308)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
爱我佳鑫 活跃值 2022-8-27 20:49
5
1
BeholdSnow 验证是强制联网?(不上网的电脑也能运行exe和加载sys吧?). 如果不是联网验证, 把验证证书(第1步)和比较hash(第4步), 直接逆向修改返回值为“没被修改”, 不行吗?
"验证是强制联网?(不上网的电脑也能运行exe和加载sys吧?)."
这你要把非对称加密算法过一遍
"如果不是联网验证, 把验证证书(第1步)和比较hash(第4步), 直接逆向修改返回值为“没被修改”, 不行吗?"
这个估计要修改win内核才能实现
雪    币: 439
活跃值: 活跃值 (1315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PEDIY 活跃值 2022-8-27 21:03
6
0
guduzhe 你在这问还不如涉足一下呢,签名从算法原理上是在短时间内没有破解的可能,如果算力够也是可以正常破解的。其他hook方式就是非常规暴力破解了,这个也是可以的。
我说的就是这个. hook直接返回“验证无误”不行吗?为什么没人提到(没看到)?
PS:不涉足. 一个人不可能什么都研究, 而且在技术论坛提问已经算乐学了, 世界上十万个为什么不可能每一个都亲历研究, 业内高手几句话就能给你点拨的疑问, 何乐而不为?毕竟人生问题无数, 大多数问题只想了解下缘由.
雪    币: 439
活跃值: 活跃值 (1315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PEDIY 活跃值 2022-8-27 21:13
7
0
爱我佳鑫 "验证是强制联网?(不上网的电脑也能运行exe和加载sys吧?)." 这你要把非对称加密算法过一遍 "如果不是联网验证, 把验证证书(第1步)和比较hash(第4步) ...
3Q. 我也这样考虑过, 要修改Windows验证函数, 可能自己必须是驱动级, 就得先有一个“花钱买的有效证书并给驱动签名”, 那么既然已经花钱买了证书, 也没必要破解证书验证了
雪    币: 407
活跃值: 活跃值 (804)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Thead 活跃值 2022-8-27 21:57
8
1
需要验证数字签名的一般是x64下的驱动程序,应用层的程序以及x86下的驱动一般是不校验数字签名的。所以hook直接返回验证无误是没有问题的,但是有需要这么做的情况是x64加载驱动;加载驱动时校验数字签名由内核完成,这种情况下的hook又需要借助驱动。所以x64下加载未签名的驱动,可以用已签名的驱动实现,这个技术几年前就有了。
签了数字签名的程序,是会定期联网验证的。
至于签名的破解,几年前有md5碰撞的,不知道是不是你所要描述的那种破解。之前我读过一篇文章,说是签了数字签名的程序,校验签名的时候,有一部分是不参与hash计算的,而不参与hash计算的这一部分,就可以被利用起来
雪    币: 2517
活跃值: 活跃值 (765)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wonghouleong 活跃值 2022-8-28 00:08
9
1
签名验证算法即使是本地的,你想通过修改系统算法,让系统认为你的软件证书正确,想法没问题;
你是不是要先运行一次你的软件才能对系统进行修改呢?但使用者在运行你的软件前,他就可以验算你的程序是否合法。
游客
登录 | 注册 方可回帖
返回