隐藏软件怎么弄出来,隐藏软件的原理是什么

题图来自Unsplash,基于CC0协议
导读
文件和文件夹的隐藏是计算机和移动设备上实现软件隐蔽性的一种常见手段,但这背后隐藏的是一个非透明、甚至可能有风险的过程。
步骤一:放置隐藏软件
隐藏软件的存在通常不依赖于极其复杂的加密或混淆技术,而是利用操作系统本身的特性。
- 文件/文件夹隐藏属性:在Windows系统中,可以通过修改文件或文件夹的“隐藏”属性来实现。常规的文件资源管理器查看设置可能会忽略这些项目,但通过“查看”选项卡勾选显示隐藏的文件、文件夹和驱动器,仍然可以访问。在Mac OS中,文件名前的“.”字符常用于隐藏文件。直接删除这些隐藏属性并不能保证软件真正“消失”,使用系统工具进行彻底删除仍有痕可循,理想情况下,单纯的隐藏属性仅能提供有限程度的保护,尤其是在系统或安全软件的扫描下更容易暴露。
- 不寻常的位置:恶意软件或需要隐藏的应用倾向于安装在非标准目录下,例如Windows下的
C:Program Files之外的C:Program Files (x86)子文件夹、用户的AppData或Local Settings文件夹的深处,甚至是系统盘根目录下不常见的位置。这些地方对普通用户来说不熟悉,增加了发现的难度。但这并非万全之策,只要能访问这些目录,系统扫描通常也能触及。手机上,隐藏软件可能藏在系统应用目录或通过拆包修改APK后重新签名安装到非预期路径。 - 注册表键值:在Windows系统中,注册表是应用程序配置和行为的重要存储区域。恶意软件可以通过修改注册表键值来改变其启动方式、图标、名称,甚至将自身集成到系统服务或运行项中,极大地增加其隐蔽性。分析注册表时,需要结合系统日志和行为监控,单靠查询即可识别所有异常。尤其是在没有管理员权限的情况下,初步检测和分析会更加困难。
步骤二:启动隐藏程序
仅仅将程序放在隐藏位置还不够,需要有合适的启动时机。
- 非标准启动项:隐藏程序通常不将自身添加到常规的启动文件夹(如Windows的
C:Users[用户名]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup或Mac的~/Library/LaunchAgents,但有时也隐藏在User目录下的.config/autostart文件夹),但可能利用系统组件的漏洞、利用复杂的依赖关系(如需要用户交互后的特定调试程序界面才能启动)或是在系统后台服务启动时。 - 命令行/脚本启动:可以通过加密或混淆的命令行脚本、VBScript、PowerShell脚本等来启动隐藏程序。用户可以通过修改注册表中的
ComputerHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage.FileExecution键值,改变文件关联,用看似无害的可执行文件名来启动真正的程序。比如设置一个看似是图片查看器关联的新扩展名,真正的执行程序可能是隐藏的恶意软件。 - 利用VPN或远程连接:更隐蔽的隐藏方式可能涉及利用VPN或远程桌面连接建立隧道,让恶意代码在后台通信和执行,而不直接占用用户端的可见进程和资源。这使得恶意软件的行为在本机本地分析时并不显眼,需要网络流量监控才能部分发现。
步骤三:保持隐匿与检测
隐藏软件追求的是“低能见度”的运行状态。
- 自我隐藏技术:好的隐藏程序会将自己的进程、文件和网络活动伪装得很好。它们可能绕过安全软件的检测,低权限运行,或模仿已知的、无害的系统进程和文件名。如果隐藏软件本身被监控工具发现,可能会采取反调试、反虚拟化等技术来干扰分析工作,变得更难反查。
- 如何检测(用户视角):
- 查看常规隐藏文件:在文件资源管理器中更改设置,检查隐藏文件夹和文件。
- 任务管理器:虽然现代安全工具会突出显示异常进程,但在任务管理里查看隐藏进程可能仍有需求。要看隐藏进程,可能需要以管理员身份运行任务管理器指令来显示隐藏的系统进程,但这往往需要一定的技术知识,而且直接通过常规UI可能无法显示所有隐藏或可疑进程。
- 系统工具:使用系统自带的资源监视器可以查看更详细的进程关联,有时能看到看似无害的进程启动了隐藏程序。分析CPU和磁盘活动异常的进程是关键,但需要广泛监测才能发现问题的根源。
- 第三方工具:利用专门的恶意软件扫描工具、行为监控软件、高级的系统信息工具或注册表查看器,可以更深入地探查潜在的隐藏软件。例如,Wise Process Explorer等高级工具可以显示更多系统级进程和隐藏属性,这在Windows环境下是常用的手段,区分系统、服务和未知进程尤为重要。手机上,一些第三方安全软件也能扫描隐藏应用,尽管方法并非绝对。
隐藏软件的原理
隐藏软件之所以难以发现,常常利用了以下几点原理:
- 利用标准API进行文件和进程隐藏:操作系统API本身就提供了隐藏功能(如
SetFileAttributes()、隐藏进程标志),恶意软件可以调用这些API来欺骗普通查看工具。 - 自删除程序:简单的隐藏文件或目录很容易被发现,程序员可能设置一个在启动后自动删除自身文件和目录的程序,使其彻底从磁盘上消失,增加了检测难度。简单的隐藏文件很快会被找到,不留痕迹是非常重要的隐藏策略。
- Shell替换:注册表键值劫持技术允许某个文件扩展名关联到伪造的Shell(程序),这可以使得特定类型的文件操作行为不显示该程序图标、名称以及任务栏信息,实际上执行的是完全不同的程序,对普通用户来说是鱼目混珠。
- 高权限隐藏:在Windows上,以System权限或其他高权限用户运行进程(如SYSTEM甚至NT AUTHORITYNetworkService)可以使其在常规任务管理器中接近不可见,这些进程通常只有通过Sysinternals Suite等高级工具才能被识别和监控。
隐藏软件的风险与防护
了解隐藏软件的存在方式并非为了恶意使用,而是为了识别潜在威胁。很多隐藏软件是恶意的,如间谍软件、广告软件、病毒或勒索软件,会对隐私、安全和系统稳定造成危害。
- 用户层面:提升个人安全意识,注意异常行为,定期更新操作系统和应用程序,谨慎下载和安装来源不明的软件,使用强密码,并定期进行安全扫描。
- 系统层面:使用并定期更新信誉良好的防病毒软件和防火墙。定期进行系统检查,包括任务管理器、资源监视器和安全扫描工具的检查。对于个人隐私安全,可以选择支持远程监控的伴侣应用程序,以帮助防止隐私泄露。设备上的邮件和浏览器应更新到最新版本,这有助于减少漏洞被利用的风险。
合法隐藏软件的用途
需要明确的是,并非所有隐藏软件都是恶意的:
- 家长控制:可以隐藏家长控制软件的图标和某些访问入口。
- 其他设备上的个人监控:例如,为了防止伴侣查看你智能手机上的某些/全部内容,可能会使用带有隐匿功能的监控应用程序,这些软件有时会采用隐藏机制。
- 用于调试的工具:有时,开发者为了测试其应用程序在受限环境下或相关开发平台上的兼容性,可能会将程序暂时隐藏或间接启动。
- 清理和优化工具:一些此类工具可能为了降低阻止系统优化软件时用户遇到的抵抗而采用隐藏方式,但应避免使用网络上非官方来源未经审核的隐藏工具,这些软件可能存在风险。
理解隐藏软件的技术在于揭示其运作机制,从而更好地理解网络威胁,增强个人防护能力,并合法了解计算机及其应用程序的行为。然而,对于普通用户来说,使用预期的一般软件通常比探索未知的隐藏应用更为安全和高效。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com