我需要一些有关更新某些Windows软件以与非存储SCSI设备通信的安全问题的帮助。原始软件是作为DLL为WindowsXP编写的,并通过Adaptec的ASPIAPI与设备通信。ASPI实际上没有任何安全性,因此任何用户运行的任何应用程序都可以使用我的DLL与这些设备之一通信,一切都运行良好。我现在正在更新软件以使用Microsoft的现代SPTI(SCSI直通接口(interface))API与Windows7一起工作。XP下的SPTI工作正常,但Windows7具有更严格的安全性,对于普通用户甚至管理员,SPTI调用会返回一个错误,指示权限不足。如果我使用隐藏的“管理员”帐户登录
项目场景:请求https报错证书校验失败(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIXpathbuildingfailed:sun.security.provider.certpath.SunCertPathBuilderException:unabletofindvalidcertificationpathtorequestedtarget)问题描述项目中请求第三方https的URL,报错ssl证书校验失败14:33:55.195[main]ERRORcom.bd.comm
我的机器名称是小写的(我在“高级系统设置”对话框的“计算机名称”选项卡中看到了这一点)但是System.Environment.MachineName报告它是大写的。这是为什么?这对我来说是一个真正的问题,因为根据我的测试PrincipalPermissionAttribute对角色名称执行区分大小写的比较(我将我的自定义角色映射到Windows组并且我的环境是非域)。有什么建议吗? 最佳答案 .NET4.7.1的Environment.MachineName源代码在这里:https://referencesource.micros
我负责开发一个大型Python/Windows/Excel应用程序,供一家在世界各地设有办事处的金融机构使用。最近某个国家/地区的法规发生了变化,因此我们被告知需要创建一个“锁定”版本的发行版。在与我的外国同行进行了一些令人沮丧的对话之后,他们似乎担心有人可能会滥用他们计算机上的python解释器来生成可能用于规避安全性的非标准应用程序。我最初的建议只是取消对python.exe和pythonw.exe的执行权限:我们的应用程序作为Excel插件使用,仅使用PythonDLL。这些exe文件从未实际使用过。我的对手仍然担心有人可以对PythonDLL进行调用-黑客可以利用“exec”函
我的桌面应用程序要求用户提供代理服务器凭据以便稍后使用。但是,存储此安全信息以供进一步使用的最佳方式是什么? 最佳答案 在Windows中,您可以使用CryptProtectData功能使用帐户密码加密您的数据,然后将加密的数据存储在注册表或配置文件中。这样您根本不需要询问任何密码。 关于windows-存储安全信息以供进一步使用的最佳方式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu
我有一个控制台应用程序,它列出了IIS中的网站绑定(bind)using(vardirectoryEntry=newDirectoryEntry("IIS://localhost/w3svc/"+GetWebSiteId())){varbindings=directoryEntry.Properties["ServerBindings"];}我通过进程从ASP.NET调用这个控制台应用程序varprocess=newProcess{StartInfo=newProcessStartInfo{FileName="c:/app.exe",Arguments="check",UseShell
假设我希望我的客户能够为他们的应用程序创建插件,但我不想让他们破坏我程序的内存,是否可以防止这种情况发生?或者将DLL加载到一种它无法访问主程序内存的内存区域? 最佳答案 您可以让插件在单独的进程中运行。插件需要的任何信息都作为消息传递给该进程。应用程序需要的任何结果都作为消息接收。每个插件可以有一个单独的进程,也可以让所有插件在同一进程中运行。顺便说一句,大多数现代版本的插件功能都使用嵌入式运行时环境,例如JVM。然后,插件与应用程序在同一进程中运行,但在虚拟环境的范围内运行,这有效地限制了插件对您的程序造成的破坏。在这种情况下,
我正在为半受信任的客户端编写一个简单的应用程序,对某些细节没有发言权。必须为客户端提供一份二进制文件myTestApp,它使用外部库libsecrets中的专有代码。它是一个Windows应用程序,可以在几台独立的Windows7笔记本电脑上运行。我被告知,在应用程序完成其目的后,它将被删除。我知道对此没有完美的解决方案,但我想在程序中实现一个到期日期,并阻止可能对代码进行逆向工程的努力,或者至少防止libsecrets的内容被泄露太容易暴露了。所以,我的第一步是将myTestApp静态链接到libsecrets,这样所有内容都包含在一个二进制文件中,所以只有libsecrets包含在
我对ASLR相当熟悉,但今天我听到了一个关于Windows中ASLR实现的有趣的新事实。如果进程A和B加载相同的dll,为了优化性能,Windows只会将其加载到物理内存一次,并且两个进程将通过共享页面共享同一实例。这已经是老新闻了..但有趣的是,进程A和B都会在同一个虚拟地址加载共享库(为什么??)。在我看来,任何本地攻击(例如权限提升)都可以通过以下方式轻松绕过ASLR:1.Createanewdummyprocess2.Checktheaddressofdllsofinterest(kernel32,user32..)3.Attacktheprivilegedprocessand
当我编写需要执行“可管理”操作的应用程序时会发生什么?就像将文件写入C:\ProgramFiles-然后,当应用程序尝试这样做时,会发生什么?是否会弹出一条消息要求用户输入密码?会抛出异常吗?程序会不会终止,电脑会不会爆炸?上述所有的?:)旁注:Windows7用户是否默认以管理员身份登录? 最佳答案 一般来说,WindowsVista和Windows7不会自动检测到您需要管理员权限,也不会自动提升您的应用程序。Microsofthassomeguidelines正确请求提升。没有list的旧应用程序可能会发现自己也已虚拟化-也就是