百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

PC端恶意代码隐藏手段对抗

yuyutoo 2025-02-09 14:49 3 浏览 0 评论

点击蓝字 · 关注我们

前言

恶意代码分析是安全从业人员非常重要的一个技能。

之前提到过SSDT hook隐藏和PEB断链隐藏,今天接触一下其他的。

参考书籍:<<恶意代码分析实战>>

<>

Lab13-1

这里先运行一下,可以看到对一个网站的请求。


然后用IDA查看,没有看到这个域名相关的信息。


看到这里抽取资源文件,并对资源文件进行了异或操作。


这里我们对资源文件提取,进行异或操作,可以看到域名。


之后再调用了一个函数,获得主机名。


这里之后调用一个函数,我们用od看一下这里干了啥。

可以知道这里进行了base64编码


然后发送请求


读取返回内容。

然后进行判断。


Lab13-2

用IDA打开。


GetTickCount

GetTickCount返回(retrieve)从操作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD。

函数解除锁定的内存块,使指向该内存块的指针无效

GlobalFree

释放指定的全局内存块

GetSystemMetries

通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。

GetDesktopWindows

该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是一个要在其上绘制所有的图标和其他窗口的区域。

该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。

该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。

CreateCompatibleBitmap

该函数创建与指定的设备环境相关的设备兼容的位图。

SelectObject

该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。

GetObjectA

t函数得泛指得到对象,到指定图形对象的信息,根据图形对象,函数把填满的或结构,或表项(用于逻辑调色板)数目放入一个指定的缓冲区。

GlobalAlloc

该函数从堆中分配一定数目的字节数。Win32内存管理器并不提供相互分开的局部和全局堆。提供这个函数只是为了与16位的Windows相兼容。简称全局堆分配

GlobalLock

锁定内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处。

GlobalUnlock

函数解除锁定的内存块,使指向该内存块的指针无效,GlobalLock锁定的内存,一定要用GlobalUnlock解锁。

GlobalFree

释放指定的全局内存块

ReleaseDC

函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。它只释放公用的和设备上下文环境,对于类或私有的则无效。

DeleteDC

函数删除指定的设备上下文环境(Dc)。

DeleteObject

该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。

先获得操作系统的时间,作为文件名


然后截图


之后进入一个加密函数


最后写入文件


那么怎么看到这个截图呢,一种方法是在加密前直接返回。



还有一种是将加密后的图片内容取出来,放到加密的参数,这里是先假设自定义加密是可逆的进行尝试。按住第一个字节,shift往下脱,在最后一个字节上面按一下。


Lab13-3

放入PEid,无壳,并且可以看到有加密字段。



放入IDA中查看,这里通过插件可以看到先是调用了AES相关的函数


接着启用了socket初始化,与服务器通信


然后这里创建了两个管道

之后创建了cmd的进程。


之后创建了一个线程,从socket读取内容。



这里还涉及到了一个函数,点进去查看,可以得知是base64


然后调用了另一个函数,也是读和写的操作,这里进行了AES加密操作。


理一下,就是socket获取服务器base64编码后的数据,然后解码传递给cmd,然后cmd运行结果aes加密,然后传递给服务器。

这里通过插件和字符串可以判断出AES加密和base64编码,AES的私钥可以从main函数中得知。

相关推荐

微软Win10/Win11版Copilot上线:支持OpenAI o3推理模型

IT之家4月3日消息,科技媒体WindowsLatest昨日(4月2日)发布博文,报道称Windows10、Windows11新版Copilot应用已摘掉Beta帽...

WinForm 双屏幕应用开发:原理、实现与优化

在当今的软件开发领域,多屏幕显示技术的应用越来越广泛。对于WinForm应用程序来说,能够支持双屏幕显示不仅可以提升用户体验,还能满足一些特定场景下的业务需求,比如在演示、监控或者多任务处理等场景...

推荐一个使用 C# 开发的 Windows10 磁贴美化小工具

...

OpenJDK 8 安装(openjdk 8 windows)

通常OpenJDK8和11都能互相编译和通用。我们建议使用11,但是如果你使用JDK8的话也是没有问题的。建议配置使用OpenJDK,不建议使用OracleJDK,主要是因为版...

基于 Linux 快速部署 OpenConnect VPN 服务(ocserv 实战指南)

一、前言在如今远程办公和内网穿透需求日益增长的背景下,搭建一套安全、稳定、高效的VPN系统显得尤为重要。OpenConnectServer(ocserv)是一个开源、高性能的VPN服务端软件...

巧妙设置让Edge浏览器更好用(edge怎么设置好用)

虽然现在新版本的Edge浏览器已经推出,但是毕竟还处于测试的状态中。而Win10系统里面自带的老版Edge浏览器,却越来越不被人重视。其实我们只需要根据实际情况对老版本的Edge浏览器进行一些简单的设...

WPF做一个漂亮的登录界面(wpf页面设计)

...

微软开源博客工具Open Live Writer更新:多项Bug修复

OpenLiveWriter前身是WindowsLiveWriter,是微软WindowsLive系列软件之一,曾经是博主们非常喜爱的一款所见即所得博文编辑工具,支持离线保存,还支持图像编辑...

基于OpenVINO的在线设计和虚拟试穿 | OPENAIGC大赛企业组优秀作品

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。...

C#开源免费的Windows右键菜单管理工具

...

Windows10或11中隐藏的功能,用它再也不用担心电脑中病毒!

...

Python open函数详解(python open函数源码)

演示环境,操作系统:Win1021H2(64bit);Python解释器:3.8.10。open是Python的一个内置函数,一般用于本地文件的读写操作。用法如下。my_file=open(fi...

Windows 11 安装 Docker Desktop(Windows 11 安装助手 Windows 易升 关系)

...

Windows 11 新版发布:屏幕亮度自适应控制,小组件界面重新设计!

...

世界上最好用的Linux发行版之一,OpenSUSE安装及简单体验

背景之前无意在论坛里看到openSUSE的Linux发行版,被称为世界上最好用的Linux发行版之一(阔怕),一直想体验一下,于是这期做一个安装和简单体验教程吧。...

取消回复欢迎 发表评论: