原创 判断程序的执行环境是VM收藏

恶意代码分析实战——利用IDA PRO分析Lab05-01.dll 恶意代码分析实战——利用IDA PRO分析Lab05-01.dll 1.实验目的 利用IDA Pro分析Lab05-01.dll中发现的恶意代码,回答以下问题: DLLMain的地址是什么? 使用Imports窗口并浏览到gethostbyname,导入函数定位到什么地址? 有多少函数调用了gethostbyname? 将精力集中在位于0x10001757处的对gethostbyname的调用,你能找出哪个DNS请求将被触发吗? IDA Pro 识别了在0x10001656处的子过程中的多少个局部变量? 阅读详情
原创 判断程序的执行环境是VM收藏

老V的代码  很古老的

抗VM分析

  mov    ecx, 0Ah        ; CX=function# (0Ah=get_version)

      mov    eax, 'VMXh'  ; EAX=magic

      mov    dx, 'VX'          ; DX=magic

      in      eax, dx              ; specially processed io cmd

    ; output: EAX/EBX/ECX = data

      cmp    ebx, 'VMXh'  ; also eax/ecx modified (maybe vmw/os ver?)

      je      under_VMware

bool IsInsideVMWare()

{

  bool rc = true;



  __try

  {

    __asm

    {

      push  edx

      push  ecx

      push  ebx



      mov    eax, 'VMXh'

      mov    ebx, 0 // any value but not the MAGIC VALUE

      mov    ecx, 10 // get VMWare version

      mov    edx, 'VX' // port number



      in    eax, dx // read port

                    // on return EAX returns the VERSION

      cmp    ebx, 'VMXh' // is it a reply from VMWare?

      setz  [rc] // set return value



      pop    ebx

      pop    ecx

      pop    edx

    }

  }

  __except(EXCEPTION_EXECUTE_HANDLER)

  {

    rc = false;

  }



  return rc;

}





bool IsInsideVPC()

{

  bool rc = false;



  __try

  {

    _asm push ebx

    _asm mov  ebx, 0 // Flag

    _asm mov  eax, 1 // VPC function number



    // call VPC

    _asm __emit 0Fh

    _asm __emit 3Fh

    _asm __emit 07h

    _asm __emit 0Bh



    _asm test ebx, ebx

    _asm setz [rc]

    _asm pop ebx

  }

  // The except block shouldn't get triggered if VPC is running!!

  __except(IsInsideVPC_exceptionFilter(GetExceptionInformation()))

  {

  }



  return rc;

}

给个通用判断的方法,不管VMWare或VirtuaPC都有效



int  DCVM ()

{

  unsigned char m[2+4], rpill[] = "/x0f/x01/x0d/x00/x00/x00/x00/xc3";

  *((unsigned*)&rpill[3]) = (unsigned)m;

  ((void(*)())&rpill)();



  printf ("idt base: %#x/n", *((unsigned*)&m[2]));

  if (m[5]>0xd0) printf ("虚拟机/r/n", m[5]);

  else printf ("真实机器/r/n");

  return 0;

}

 
从一道pwn题深入理解vm逆向 现在,越来多的比赛考察了有关vm逆向的知识点,题目不限于re类题目,还有pwn题,像今年的ciscn和qwb的remem,都考察了这个知识点ctf比赛中的vm逆向不是指VMware或VirtualBox一类的虚拟机,而是一种解释执行系统或者模拟器(Emulator)。逆向中的vm保护是一种基于虚拟机的代码保护技术。它将基于x86汇编系统中的可执行代码转换为字节码指令系统的代码,来达到不被轻易逆向和篡改的目的。 阅读详情

相关推荐

Nodejs vm/vm2沙箱逃逸

什么是沙箱:沙箱就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互干扰而被装进集装箱的应用,也可以被方便地搬来搬去。什么是VM:VM就是虚拟环境,虚拟机,VM的特点就是不受环境的影响,也可以说他就是一个 沙箱环境 (沙箱模式给模块提供一个环境运行而不影响其它模块和它们私有的沙箱)类似于docker,docker是属于 Sandbox(沙箱) 的一种。简而言之,vm提供了一个干净的独立环境,提供测试。

qq_61768489的博客 3223

虚拟机检测

下面资料比较老了,记录下只为增加下了解 虚拟机后门检测(IN) __try { __asm { push edx push ecx push ebx mov eax, 'VMXh' mov ebx, 0 // 将ebx设置为非幻数’VMXH’的其它值 mov ecx, 10 // 指定功能号,用于获取VMWare版本,当它为x14时...

kernweak的博客 5538

【VM服务管家】VM4.0软件使用_1.1 环境配置类

对于实际生产场景中,则是希望间隔耗时越短越好。点击坐标左下角“Win”图标,搜索处输入“gpedit.msc”->按“确定”,打开“本地组策略编辑器”,然后“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”->“用户帐户控制:以管理员批准模式运行所有管理员”,改为已禁用。1)管理员权限下,安装VM4.0维护20220415的安装包,截止20220505,最新补丁为20220505,建议用户打上最新补丁,若VM4.0维护版2022年5月份之后的有完整包,也可直接使用。

让视觉应用更轻松 2560

恶意代码分析实战 14 反虚拟机技术

恶意代码用存在漏洞的x86指令来确定自己是否运行在虚拟机中。使用IDA载入脚本文件。给出了地址。第一处:这串字符串进行了修改。查看调用函数的位置。使用OD查看,EAX被赋值为了00DDCC000h,将会跳转,而不会创建线程。第二处:检测虚拟机特征。检测到之后,删除自身。第三处:检测到之后不会执行创建服务的操作。使用OD检查可知,所有的操作都会失效。可能与虚拟机的内核数量有关。sidt指令:多核机器上进行实验,ECX寄存器的值不是0xFF,所以失效。

农夫果园好好喝的博客 938

【VM服务管家】VM4.2平台SDK_6.1 环境配置类

在 Lab VIEW 中通过.net 容器调用第三方库是最简单的方式(当然前提是第三库有.Net 封装),幸运的是,海康机器人的算法平台 SDK 刚好有.net 的封装,使用.net 的封装库,调用者不需要管理内存(绝大多数情况下不需要关心内存的申请和释放),更加激动人心的是,Lab VIEW 开发者调用 VM SDK,是不需要事先了解 SDK 内部 的工作原理,不需要深入理解它的框架,就可以快速开发属于自己的视觉应用。操作步骤:选择项目所在的路径,勾选需要引用的模块,也可以全部引用。

让视觉应用更轻松 2015

【VM服务管家】VM4.0平台SDK_2.1环境配置类

第三步,启动二次开发导入工具(“\VisionMaster4.0.0\Development\V4.0.0 \ComControls\Tool\ImportRef.exe”),Module(sp)的路径在生成工程Debug下的Module(sp)文件夹,项目所在路径为bin文件的上一层,在选择完指定的路径之后,需要选择引用模块的dll以及是否选择相对路径,最后点击确定,完成环境配置。现象:在VM二次开发中,有些引用需要手动添加,如引用VMControls.WPF.dll进行在渲染控件上绘图。

让视觉应用更轻松 2017

20145326蔡馨熤《计算机病毒》——高级静态分析(2)

20145326蔡馨熤《计算机病毒》——高级静态分析(2) 尝试使用IDA PRO分析文件lab05-01.dll,回答如下问题: 1.PSLIST导出函数做了什么? 首先在view中选择exports窗口,然后找到PSLIST导出函数。 双击PSLIST,然后按空格键,转换为图形模式,这样的话,观察更直观。 双击第一个call语句。看看有什么发现。如图所示。...

weixin_30376453的博客 187

node.js--vm沙箱逃逸初探

前几天遇到一个考察vm沙箱逃逸的题目,由于这个点是第一次听说,所以就花时间了解了解什么是沙箱逃逸。此篇文章是对于自己初学vm沙箱逃逸的学习记录,若记录知识有误,欢迎师傅们指正。就只针对于node.js而言,沙箱和docker容器其实是差不多的,都是将程序与程序之间,程序与主机之间互相分隔开,但是沙箱是为了隔离有害程序的,避免影响到主机环境。为什么node.js语言要引入沙箱,这就要说说js语言中的作用域(也叫上下文)。------->输出undefined-------->输出100。

m0_62422842的博客 2658

2022-03-07 Unity 3D 镜头叠加

参考资料:http://blog.sina.com.cn/s/blog_799860f90102vmxh.html 需求:camera_1和camera_2,将camera_2的画面叠加到camera_1上。 设置camera_2的Depth值大于camera_1的值, 然后Clear Flags值设为"Depth only" 并将camera_2的背景透明度设为0(没有看见在哪里设置透明度,没有设置,也达到我想要的需求了),即可完成将camera_2的画面叠加到camera_1的画面上去。 ...

悉尼没有雪 3855

Node.js中的VM模块详解:执行JavaScript代码的虚拟机

VM模块是Node.js的内置模块之一,用于在运行时执行JavaScript代码。它提供了一种在Node.js环境中创建独立的JavaScript虚拟机实例的方式,以便在隔离的环境中执行代码。这种隔离性使得VM模块非常有用,特别是在需要动态执行代码、运行用户提供的脚本或实现沙箱环境时。

laugh666的博客 1511

手把手教你用Gazebo插件实现阿克曼底盘仿真(附Navigation2适配指南)

本文提供了一份完整的ROS2 Navigation2与Gazebo阿克曼底盘仿真全栈指南。从阿克曼运动学原理出发,详细讲解了如何构建URDF/SDF模型、集成gazebo_ros_ackermann_drive插件并进行PID调优,并重点阐述了如何深度适配Navigation2,包括配置Ackermann运动模型、调整规划器与恢复行为,最终实现从建图到自主导航的全流程仿真。

weixin_29310631的博客 398

判断程序的执行环境是VM

来段老V的代码  很古老的抗VM分析  mov    ecx, 0Ah        ; CX=function# (0Ah=get_version)      mov    eax, VMXh  ; EAX=magic      mov    dx, VX          ; DX=magic      in      eax, dx              ; specially

1632

Python邮件自动化实战:基于imaplib和email库的高效邮件管理方案

本文详细介绍了如何使用Python的imaplib和email库实现高效邮件自动化管理。通过实战案例展示自动收取、解析邮件、下载附件等核心功能,帮助开发者快速构建企业级邮件处理系统,大幅提升工作效率。特别适合需要处理大量邮件的金融、数据分析等场景。

weixin_30500105的博客 618

idea程序参数,VM选项,环境变量

idea程序参数,VM选项,环境变量

ccwangwang的博客 7375

如何用ggplot2绘制专业级双侧柱状图展示GO富集结果(附完整代码)

本文详细介绍了如何使用R语言的ggplot2包绘制专业级双侧柱状图展示GO富集结果,包括数据预处理、基础图形构建、高级样式定制和出版级细节调整。通过完整的代码示例和实用技巧,帮助生物信息学研究人员高效可视化高通量数据,提升学术图表的质量和可读性。

weixin_30342209的博客 77

学Simulink——基于Simulink的输入-输出线性化精确转矩控制

本文详细介绍了基于Simulink的永磁同步电机(PMSM)输入-输出线性化(IOL)精确转矩控制方法。针对传统解耦控制在非线性转矩特性下的局限性,提出通过精确反馈线性化实现转矩指令与实际转矩的严格线性关系。文章系统阐述了IOL原理、PMSM控制器推导过程,并提供了完整的Simulink建模步骤,包括电机模型搭建、IOL控制器实现和闭环系统构建。通过仿真对比验证了IOL方法在转矩跟踪精度、动态响应和参数鲁棒性方面的显著优势,最后讨论了工程实现要点和扩展应用方向。该方法为高性能伺服系统开发提供了有效解决方案。

amy_mhd的博客 60

node之vm2库,js沙盒环境

vm2 是一个用于在 Node.js 中创建沙盒环境的模块。它提供了一种安全执行 JavaScript 代码的方式,可以隔离和限制代码的访问权限,防止恶意代码对系统造成损害。创建沙盒环境:vm2 允许你创建一个虚拟机实例(VM),在该实例中运行 JavaScript 代码。这个虚拟机实例是一个隔离的环境,与主 Node.js 进程相互独立,可以在其中执行代码。限制访问权限:vm2 允许你限制代码对系统资源的访问权限。你可以控制代码能否访问全局对象、模块、文件系统和网络等资源,从而提供更高的安全性。

老衲爱洗头的博客 6672

Classic AUTOSAR精讲专栏目录

欢迎大家来到钢琴上的汽车软件创建的《Classic AUTOSAR精讲系列专栏》,期待在这里能够与大家一起进步,分享成功,分享喜悦!下面蓝色的文章标题都是传送门,点击直接跳转到对应文章。

酒无忧的博客 3909

终极指南:如何使用vm2构建安全的用户自定义脚本执行环境

在现代应用开发中,执行用户自定义脚本是一项常见需求,但安全风险也随之而来。**vm2**作为Node.js生态中领先的沙箱解决方案,能够在隔离环境中运行不受信任的代码,同时提供白名单控制的Node.js内置模块访问。本文将通过实战案例,展示如何利用vm2构建安全可靠的用户脚本执行环境,保护你的应用免受恶意代码攻击。 ## 📦 快速入门:vm2的安装与基础配置 ### 一键安装步骤 使用np

gitblog_00307的博客 957

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由

XiaoqiangClub的博客 1万+

CANN/hcomm HCCL-VM虚拟执行环境

HCCL-VM is a virtual execution environment for high-performance collective communication targeting Huawei Ascend NPU cards. This tool enables the development and functional verification of HCCL collec

gitblog_00459的博客 1092

第十二天:Python字典(Dict)详解

字典(Dictionary)是Python中最强大的数据类型之一,它是一种可变的、无序的键值对(key-value)集合。字典中的元素是通过键(key)来存取的,而不是通过偏移量(如列表中的索引)。 字典的核心特性包括: 键值对结构:每个元素由一个键和一个值组成,中间用冒号(:)分隔 无序性:字典中的元素没有固定的顺序(Python 3.7+版本中字典会保持插入顺序,但不应依赖此特性进行顺序操作) 可变性:可以动态地添加、修改或删除键值对 键的唯一性:字典中的键必须是唯一的,如果重复,后面的键值对会覆盖

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1679

补环境:vm2 transformer.js 源码分析

throw makeNiceSyntaxError('Use of internal vm2 state variable', code, filename, internStateValiable.start,SyntaxError: Use of internal vm2 state variable

Yy_Rose的博客 4609

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OpenClaw 中的 OpenProse VM 系统提示词强制:把专用 Agent 实例变成 .prose 程序执行器

OpenProse 是一套以"AI 会话即图灵完备计算机"为理念的多 Agent 编排语言(`.prose` 程序),而 `system-prompt.md` 正是这套体系里负责"身份强制"的关键提示词附加块:它把某个 Agent 实例锁死为 OpenProse VM(虚拟机),使其只能执行 `.prose` 程序,拒绝一切无关请求。本文以该文档为骨架,结合 OpenClaw 仓库中 OpenPr

gitblog_00471的博客 1013

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 隐藏文件和进程的驱动代码收藏
下一篇: 一个向别的进程插入dll的代码收藏
大浪淘沙1
博客等级 码龄19年 42粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值