热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装“万能解码器”还原真实“解码”(纯以个人兴趣分析)

0×01前言最近新出一部很火的电视剧,每天晚上更新两集,看完之后总觉得不过瘾,就去网上找后面的视频,还真被笔者找到。毫不犹豫点击播放,发现提示需要安装某某解码器。对于这类提示一点都不新鲜,尝试下载

0×01前言

最近新出一部很火的电视剧,每天晚上更新两集,看完之后总觉得不过瘾,就去网上找后面的视频,还真被笔者找到。毫不犹豫点击播放,发现提示需要安装某某解码器。对于这类提示一点都不新鲜,尝试下载并运行解码器后,往往并没有达到预期效果,还会再次提醒下载,并没有网站上描述的那么管用。笔者很好奇既然没用,那运行的软件具体功能是什么。笔者便下载了一个“解码器”,果真不出所料,没有任何解码的功能,但是一个流氓推广软件。表面上看不出问题,只在后台搞鬼,笔者便花了点心思详细看了下该软件的实现,发现该软件作者在免杀和隐藏上下足了功夫。虽然功能老套但是思路不错,下面就请跟随笔者一起来看看这个所谓的“万能解码器”,还原真实“解码”。

0×02技术特点

下载之后,没有图标,运行没有任何界面,并且多次运行效果相同。最后通过详细分析,总结该程序有如下特点:

1. 程序对重要字符串进行了加密处理,且有多个加密算法。

2. 释放的功能模块文件在本地经过RC算法加密,非正常的PE文件。

3. 无主进程运行,核心模块为内核驱动,找不到可疑进程。

4. 敏感操作放置在shellcode中,并进行加密,防止被第一时间杀掉。

5. 使用了内核技术,内核HOOK,设备HOOK。

6. 双驱动相互保护隐藏,并且通用32位和64位系统平台。

从对抗手法来看,该程序开发者无论在静态还是动态对抗上面都花了大量功夫,以达到免杀和隐藏行为的效果。

0×03程序具体分析

下图是该程序的签名信息,从表面上看没有任何问题。

1、加载器功能

该程序实际上是一个加载器,第一次运行后,后期都不再依靠该加载器运行。加载器通用于32位 和64位多个操作系统平台,根据不同系统平台释放不同文件。数据解密之后释放到系统目录下(PassProtect.sys和2.dat)。

解密shellcode并运行代码。

Shellcode中加载“PassProtect.sys”驱动文件,驱动加载状态为自动启动(开机自动加载)。

2. “PassProtect.sys”功能

首先清理“ntfs”和“fastfat”内核的所有设备,阻止自身被外部访问,执行完操作后会对其还原。

对“2.dat”文件解密,使用RC算法,解密和加密是同一个函数,解密后回写到文件。

通过内核函数ZwSetSystemInfomation加载“2.dat”驱动。

驱动加载之后再次通过RC加密回写数据“2.dat”,并还原“ntfs”和“fastfat”的设备栈,隐藏第二个驱动代码。

3. “2.dat”功能

通过设置线程创建回调,并主动触发回调来找到“ExCallBackBlockRoutineProc”函数地址。

挂钩“ExCallBackBlockRoutineProc”函数,通过过滤系统模块和自身模块,把其余所有模块的回调函数修改入口直接返回,达到反进程创建监视的作用。

设置模块加载回调和进程创建回调。

通过检查加载的模块是否是”kernel32.dll”判断创建进程,并且修改浏览器进程的命令行参数。

检查父进程为“explorer.exe”(用户打开运行),并且添加事件修改命令行参数。

修改进程命令行参数,改变浏览器主页。

创建系统线程,挂钩NTfs的create回调。

在Create回调中,保护第一个驱动文件“PassProtect.sys”不被任何程序访问。

0×04总结

从上面分析看出,程序开发者通过各种技术手段,费劲心思,最终达到锁主页的目的。随着目前各大杀软对流氓推广软件的封杀,常规的推广手法已不在适用,升级后的对抗已经不在简单的修改注册表。更为猥琐和流氓的推广方式纷纷出现,各显神通,一不留神便被乘虚而入。当用户放行这个程序,流氓推广已经势不可挡,直捣黄龙。假如作者狠一点,后果将是不可不堪设想。所以笔者在这里提醒各位读者,对这类所谓解码器最好从正规网站下载。由于程序经过免杀处理,能够查杀的杀毒软件并不多(见下图VT扫描结果)。如果系统中曾经运行过该类解码器或播放器,可以安装下列可查杀的杀毒软件进行查杀。最后祝愿各位免受“流氓”困扰,金龙索玉柱,百毒不沾身。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • FIN7后门工具伪装成白帽工具进行传播
    fin7,后门,工具,伪装,成,白, ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 开发笔记:图像识别基于主成分分析算法实现人脸二维码识别
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了图像识别基于主成分分析算法实现人脸二维码识别相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
顾凡人_479
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有