-
-
[原创]本机突破.net Framework强名称验证 1.1
-
-
[原创]本机突破.net Framework强名称验证 1.1
由于.net下没有动态调试工具,所以很多时候都是修改文件,加入自己的代码来执行(比如在特定位置dump)。但是,对于强名称验证,修改将导致验证失败。如果删除强名称或者用其他密钥对签名,会导致publickey不同,程序里一个AssemblyName.GetPublicKey就死翘了。
所以,能蒙混过系统的验证最好。StrongName强名称相关的操作在mscorsn.dll里,里面有三个导出函数是验证相关的:
StrongNameSignatureVerification
StrongNameSignatureVerificationEx(调用StrongNameSignatureVerification)
StrongNameSignatureVerificationFromImage
为了保险起见,把StrongNameSignatureVerification和StrongNameSignatureVerificationFromImage都patch掉:
StrongNameSignatureVerification
xor eax,eax
inc eax
retn 0ch
StrongNameSignatureVerificationFromImage
xor eax,eax
inc eax
retn 10h
保存,替换原来的mscorsn.dll。运行一个修改过的具有强名称的.net可执行文件,成功~ 记得没事的时候要改回去哦,改回去要安全一些的。
有什么错误缺漏还请大虾们指正,谢谢。
注 以上环境为.net Framework 1.1
Bi11[CCG]
1 Feb 2006
[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!