后门程序分析1

news2025/1/13 10:33:40

临时补充一个内容,这是一个后门程序,通过IDA分析,之后把里面收集的信息点全部整理出来(包括:反虚拟机,系统信息等等)pass:guet

用IDA打开先看看主函数的样子
在这里插入图片描述
在这里插入图片描述
查阅一些这些API



    InternetOpenA:
        参数:
            lpszAgent: [输入] 指定用户代理名称的字符串。
            dwAccessType: [输入] 指定访问类型的标志。例如,使用 INTERNET_OPEN_TYPE_DIRECT 直接连接到互联网。
            lpszProxyName: [输入] 指定代理服务器名称的字符串。
            lpszProxyBypass: [输入] 指定应绕过的代理服务器的主机名的字符串。
            dwFlags: [输入] 附加选项标志。
        返回值:返回一个有效的句柄,表示打开的 Internet 会话;如果失败,则返回 NULL。

    InternetOpenUrlA:
        参数:
            hInternet: [输入] 用于请求的 Internet 连接句柄。
            lpszUrl: [输入] 指向包含 URL 的 null 结尾字符串的指针。
            lpszHeaders: [输入] 指向包含 HTTP 请求标头的可选 null 结尾字符串的指针。
            dwHeadersLength: [输入] 指定标头字符串的长度(以字节为单位)。
            dwFlags: [输入] 附加选项标志。
            dwContext: [输入] 用户定义的上下文值。
        返回值:如果成功,则返回一个有效的句柄,表示在指定的 Internet 会话中打开的 URL;如果失败,则返回 NULL。

    InternetCloseHandle:
        参数:
            hInternet: [输入] 打开的 Internet 句柄。
        返回值:如果成功,返回 TRUE;如果失败,返回 FALSE。

    GetLastError:
        参数:无
        返回值:返回最近发生的错误代码。

    FormatMessageA:
        参数:
            dwFlags: [输入] 格式化选项标志。
            lpSource: [输入] 指向包含消息定义的可执行模块或 DLL 的指针。
            dwMessageId: [输入] 错误消息标识符。
            dwLanguageId: [输入] 语言标识符。
            lpBuffer: [输出] 接收格式化消息文本的缓冲区。
            nSize: [输入] 缓冲区的大小(以字符为单位)。
            Arguments: [输入] 指向一个数组,其中包含要插入格式化消息的参数的地址。
        返回值:如果成功,则返回写入缓冲区的字符数,不包括 null 终止字符;如果失败,则返回 0。

    LocalFree:
        参数:
            hMem: [输入] 要释放的内存句柄。
        返回值:如果成功,返回 NULL;如果失败,返回非空值。

也就是说上面这段代码就是传输在你本机上读取的信息

看到sub_1400010D0这个函数这个函数有点长,我们慢慢分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先查阅一下函数



    RegOpenKeyExW:
        参数:
            hKey: [输入] 要打开的注册表项的父键句柄。
            lpSubKey: [输入] 指向要打开的子键名称的字符串指针。
            ulOptions: [输入] 注册表项打开选项,例如 REG_OPTION_OPEN_LINK。
            samDesired: [输入] 访问注册表项的安全性和访问权限。
            phkResult: [输出] 接收打开的注册表项句柄。

    RegQueryValueExW:
        参数:
            hKey: [输入] 打开的注册表项句柄。
            lpValueName: [输入] 指向要查询的值的名称的字符串指针。
            lpReserved: [保留] 保留参数,必须设置为 NULL。
            lpType: [输出] 接收值的类型。
            lpData: [输出] 接收查询到的值的缓冲区。
            lpcbData: [输入/输出] 指定 lpData 缓冲区大小的指针。

    RegCloseKey:
        参数:
            hKey: [输入] 要关闭的注册表项句柄。

    SLIsGenuineLocal:
        参数:
            pComponent: [输入] 保留参数,必须设置为 NULL。

    SysAllocString:
        参数:
            psz: [输入] 指向以 null 结尾的字符串的指针。

    CoUninitialize:
        参数:无

    SysFreeString:
        参数:
            bstrString: [输入] 要释放的 BSTR 字符串。

    GetPwrCapabilities:
        参数:
            pSystemPowerCapabilities: [输出] 接收系统电源功能信息的结构体指针。

    MultiByteToWideChar:
        参数:
            CodePage: [输入] 指定要使用的代码页。
            dwFlags: [输入] 附加选项标志。
            lpMultiByteStr: [输入] 指向多字节字符的字符串指针。
            cbMultiByte: [输入] 多字节字符的长度(以字节为单位)。
            lpWideCharStr: [输出] 接收宽字符的缓冲区。
            cchWideChar: [输入] 缓冲区的大小(以字符为单位)。

    GetDiskFreeSpaceExW:
        参数:
            lpDirectoryName: [输入] 要查询的目录的路径。
            lpFreeBytesAvailable: [输出] 接收可用空间的指针。
            lpTotalNumberOfBytes: [输出] 接收总空间的指针。
            lpTotalNumberOfFreeBytes: [输出] 接收总可用空间的指针。

    GlobalMemoryStatusEx:
        参数:
            lpBuffer: [输入/输出] 指向接收内存信息的结构体指针。

    Sleep:

    参数:
        dwMilliseconds: [输入] 线程挂起的时间,以毫秒为单位。

    GetLastInputInfo:
        参数:
            plii: [输入/输出] 指向 LASTINPUTINFO 结构体的指针,用于接收最后输入信息。

    GetTickCount:
        参数:无

    VariantClear:
        参数:
            pvarg: [输入/输出] 要清除的 VARIANT 变量。


    RegOpenKeyExW:如果成功,返回 ERROR_SUCCESS;如果失败,返回错误代码。
    RegQueryValueExW:如果成功,返回 ERROR_SUCCESS;如果失败,返回错误代码。
    RegCloseKey:如果成功,返回 ERROR_SUCCESS;如果失败,返回错误代码。
    SLIsGenuineLocal:如果操作系统是正版的,返回非零值;否则返回零。
    SysAllocString:如果成功,返回分配的 BSTR 字符串;如果失败,返回 NULL。
    CoUninitialize:无返回值。
    SysFreeString:无返回值。
    GetPwrCapabilities:如果成功,返回非零值;如果失败,返回零。
    MultiByteToWideChar:如果成功,返回转换后的宽字符数;如果失败,返回零。
    GetDiskFreeSpaceExW:如果成功,返回非零值;如果失败,返回零。
    GlobalMemoryStatusEx:无返回值。
    Sleep:无返回值。
    GetLastInputInfo:如果成功,返回非零值;如果失败,返回零。
    GetTickCount:返回从系统启动到当前经过的毫秒数。
    VariantClear:如果成功,返回 S_OK;如果失败,返回错误代码。

后续我们分析一下代码逻辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1151535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++入门06—结构体

1. 结构体基本概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型 2. 结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种(相当于python中的实例化对象): struct 结构体…

图像无损放大画质修复工具 Topaz Photo AI「Mac」

Topaz Photo AI是一款适用于Mac的图像处理软件,它使用人工智能技术对照片进行编辑和优化。该软件提供了多种强大的功能,帮助用户轻松地改善图像质量,并实现自定义的效果。 Topaz Photo AI支持多种文件格式,包括JPEG、TIFF、PNG、R…

BLIP2中Q-former详解

简介 Querying Transformer,在冻结的视觉模型和大语言模型间进行视觉-语言对齐。 为了使Q-Former的学习达到两个目标: 学习到和文本最相关的视觉表示。 这种表示能够为大语言模型所解释。 需要在Q-Former结构设计和训练策略上下功夫。具体来说&…

氧化铜纳米线 纳米氧化铜 Cupric oxide 瑞禧

氧化铜纳米线 中文名称:纳米氧化铜 英文名称:Cupric oxide CAS:1317-38-0 保存条件:密封保存于干燥、阴凉的环境中 产品特点 1.氧化铜可溶于稀酸、NH4Cl、(NH4)2CO3、氰化钾溶液,不溶于水,在醇、氨溶液中溶解缓慢。高温遇氢或一氧化碳,可…

如何实现树莓派Raspberry Pi无公网IP环境下远程访问?

文章目录 前言如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址…

想喝一点汤 - 如何看懂新闻联播

看懂新闻联播 埋头苦干、辛苦劳作是挣不到钱的,要去离钱近的地方。在中国需要靠近政府。 告知性新闻 告知性的新闻往往隐藏着机会. 国际新闻各国领导人来访 潜台词:双边可能达成了某种协议,需要重要领导见证签字。 普通人机会 外贸机会…

Pr2022安装教程(超级好用)附网盘资源(正版教程)

文末资源自提 一.简介 Premiere是由Adobe Systems开发的专业视频编辑软件,被广泛用于电影制作、电视节目制作、广告制作和个人视频编辑等领域。它提供了丰富的工具和功能,使用户能够进行视频剪辑、调色、特效添加和输出等操作。 下面是对Premiere的详…

【Linux】多路IO复用技术①——select详解如何使用select模型在本地主机实现简易的一对多服务器(附图解与代码实现)

这一篇的篇幅可能有点长,但真心希望大家能够静下心来看完,相信一定会有不小的收获。那么话不多说,我们这就开始啦!!! 目录 一对一服务器中的BUG 如何实现简易的一对多服务器 实现简易一对多服务器的大体…

web前端常见开发工具汇总 你用过几个?

搬运旗下公众号的内容~ 目录 1.记事本 2.Visual studio code 3.Hbuilder 4.Eclipse 5.Webstorm 6.Notepad 随着信息时代的不断进步,互联网在人类社会中所占的地位愈发举足轻重。大大小小的网站,构成了如今光怪陆离的网络社会。我们知道&#xff0c…

上海中优城市万豪酒店推出全新国际IP童趣主题房,独特住宿体验中国首秀

2023年10月30日,中国上海 – 近日,上海中优城市万豪酒店正式推出由全球品牌娱乐公司孩之宝官方授权打造的小马宝莉和变形金刚主题客房,以创意客房、新奇体验和丰富礼遇,为童游家庭或年轻的动漫迷们开启沉浸式入住之旅,…

直击电商商城内核!一站式解决方案

作为一家深耕电商运营多年的软件开发公司,我们拥有先进的轻量级电商中台系统,且100%开源,包含B2C、B2B2C、S2B2C、O2O和社区团购等多种商业模式,无论在技术、业务架构、功能、设计还是售后支持上,我们都秉承着追求极致…

函数栈帧的创建和销毁(以C语言代码为例,汇编代码的角度分析)

函数栈帧的创建和销毁[以C语言代码为例,汇编代码的角度分析] 一.前言1.几个问题2.几个说明 二.相关寄存器和汇编命令的简要说明三.从汇编代码调试的角度逐步分析函数栈帧的创建于销毁1.函数栈区的知识:2.逐步调试分析1.保存__tmainCRTStartup这个函数栈帧的栈底地址2.正式进入m…

【Linux】centOS7安装配置及Linux的常用命令---超详细

一,centOS 1.1 centOS的概念 CentOS(Community Enterprise Operating System)是一个由社区支持的企业级操作系统,它是以Red Hat Enterprise Linux(RHEL)源代码为基础构建的。CentOS提供了一个稳定、可靠且…

解决计算机msvcp120.dll文件丢失的5种方法,亲测有效

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp120.dll丢失”。这个错误提示可能会给我们带来很大的困扰,影响我们的正常使用。本文将详细介绍msvcp120.dll丢失的原因、解决方法以及预防措施,帮助大家更好地…

python读取shadow文件脚本

python读取shadow文件脚本 该脚本源代码为kali中执行的源代码 from dataclasses import fieldswith open(/etc/shadow,r)as file:for line in file:listline.split(:)if list[1]!"*" and list[1]!"!" and list[1]!"!*":paslist[1].split($)sal…

基于FMCW雷达的人体复杂动作识别

基于FMCW雷达的人体复杂动作识别

【Python算法】算法练习(一)

❤️博客主页: iknow181 🔥系列专栏: Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 目录 1、输出n以内的质数 2、求n以内最大的m个质数的和,并打印这些质数以及它们的和 方法一 方法二…

合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 作者:爱吃饼干的小白鼠。Python领域优质创作者,2022年度博客新星top100入围,荣获多家平台专家称号。…

postgresql14-sql基础(一)

初始化 在“开始”中运行pgadmin4,输入密码,连接实例,创建测试数据库:hrdb 开启查询工具面板。 https://download.csdn.net/download/hy19930118/88419281 SELECT version() AS "pg版本"简单查询 SELECT first_na…

性能测试支持结果抽样分析,执行机新增运行状态和CPU监控,MeterSphere开源持续测试平台v2.10.8 LTS版本发布

2023年10月30日,MeterSphere一站式开源持续测试平台正式发布v2.10.8 LTS版本。自2023年5月发布v2.10 LTS版本后,MeterSphere开源项目组坚持发布小版本,持续进行问题的修复更新,并针对部分功能进行优化。 本次发布的MeterSphere v…