提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:杨鹏连|2021-07-06 11:13:34.203|阅读 325 次
概述:看了网上大神们写了好多的vmp 虚拟代码的分析 ,但是在对实在项目时,插件总是提示不对或者未知版本,一直对vm代码的还原有质疑,于是就萌发了具体分析这个vm代码是怎么回事,若有错误,欢迎指出,能力有限只能分析皮毛,只谈vm的代码。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。
VMProtect通过在具有非标准体系结构的虚拟机上执行代码来保护代码,这将使分析和破解软件变得十分困难。除此之外,VMProtect还可以生成和验证序列号,限制免费升级等等。
VMProtect正版授权在线订购享受最低价,仅售801元起!还不赶紧加入你的订购清单?>>更多详情可点击咨询购买
相关链接:
代码保护软件VMP逆向分析虚拟机指令:初步认识与环境搭建(一)
代码保护软件VMP逆向分析虚拟机指令:VMP代码的提取(二)
代码保护软件VMP逆向分析虚拟机指令:分析那4条汇编被VM的VM指令
七、附加 分析如果VM的指令中包含了函数调用
材料文件在vmptestcall2文件夹中,不知道为什么我这个vm后的exe总报毒,之前上面那个没报。追踪时一样是按Ctrl+F11记录,我们先看一下原来的汇编是什么样:
然后VMP3后我们下的trace断点:
0043D9C2 主 push 0x7EBD5487 ESP=0012FF88 ; 进入虚拟机前兆 VM_Entry 0043D9C7 主 call vmptestc.0041258D ESP=0012FF84 0041258D 主 push edi ESP=0012FF80 0041258E 主 mov di,0x7063 EDI=00007063 00412592 主 pushfd ESP=0012FF7C 00412593 主 push ebx ESP=0012FF78 00412594 主 clc 00412595 主 neg bx FL=CPS, EBX=7FFD9000我们直接搜索puts字符串,得到所在位置如下:
00414248 主 jmp vmptestc.0047DE97 0047DE97 主 retn ESP=0012FF84 ; 退出虚拟机环境 进入函数调用内部 puts 主 push 0xC ESP=0012FF80 -----------------------------------------------------------puts 75A68D06 主 push msvcrt.75A68E80 ESP=0012FF7C 75A68D0B 主 call msvcrt.759F9836 FL=0, EAX=0012FF70, ESP=0012FF54, EBP=0012FF80 75A68D10 主 or ebx,0xFFFFFFFF FL=PS, EBX=FFFFFFFF 75A68D13 主 mov dword ptr ss:[ebp-0x1C],ebx 75A68D16 主 xor eax,eax FL=PZ, EAX=00000000而我们往上看,看出上面是退出虚拟机的代码,特征不要我多说了吧,很多pop,然后只有一个VM_Exit。在往下看看退出puts后紧跟着的是什么:
75A68E4E 主 mov dword ptr ss:[ebp-0x4],-0x2 75A68E55 主 call msvcrt.75A68E6D 75A68E5A 主 mov eax,dword ptr ss:[ebp-0x1C] 75A68E5D 主 call msvcrt.759F987B ECX=75A68E62, EBX=7FFD7000, ESP=0012FF84, EBP=0012FF94, ESI=00000000, EDI=00000000 75A68E62 主 retn ESP=0012FF88 ; 退出puts 0042AB41 主 push 0x7EB991DF ESP=0012FF84 ; 重新进入虚拟机 0042AB46 主 call vmptestc.0041258D ESP=0012FF80 0041258D 主 push edi ESP=0012FF7C 0041258E 主 mov di,0x7063 EDI=00007063 00412592 主 pushfd ESP=0012FF78 00412593 主 push ebx ESP=0012FF74 00412594 主 clc这里我们看到我们退出puts后,紧跟着并没有看到调用我们的EspArg1函数,而是又进入虚拟机,难道我们的EspArg1内部被VM了,然后我们继续往下分析,找下VM_Exit看看。我们直接搜索特征: 提示我们可以搜索popfd,当然仅限这里,为什么?
00461852 主 popfd FL=PZ, ESP=0012FF7C 00461853 主 cmovne edi,esi 00461856 主 movsx edi,sp EDI=FFFFFF7C 00461859 主 pop edi ESP=0012FF80, EDI=00000000 0046185A 主 jmp vmptestc.004266A6 004266A6 主 retn ESP=0012FF84 ;退出虚拟机 00401008 主 mov dword ptr ss:[esp+0x4],vmptestc.00403018 ---------------------------EspArg1 function 00401010 主 retn ESP=0012FF88 0045AAE7 主 push 0x7EB42BBF ESP=0012FF84 ;进入虚拟机 0045AAEC 主 call vmptestc.0041258D ESP=0012FF80 0041258D 主 push edi ESP=0012FF7C 0041258E 主 mov di,0x7063 EDI=00007063嗯什么情况,我们看到退出虚拟机,然后下一条就是我们的EspArg1 function里面的内容("原画"),然后又进入虚拟机。
push offset HelloWord call crt_puts call EspArg1然后我们可以分析一下有多少次退出虚拟机的操作,我们可以搜索特征去分析,经过分析:
1.VM_Entery ............ 2.VM_Exit 3.Call puts 4.VM_Entery ........... 5.VM_Exit 6.Call EspArg1 7.VM_Entery ........... 8.VM_Exit我们主要分析的是被VM代码中存在调用函数时的问题,所以其他我们不多管,只管这个是怎么处理调用函数的,现在应该可以大致知道是什么调用的了吧。所以知道为什么有的代码被VM了,我们还能东扣西扣的了没。看到源码 call puts 与call EspArg1中间可是没有代码的 ,但还是要重新进入虚拟机。
如果您对该加密/解密软件感兴趣,欢迎加入vmpQQ交流群:740060302
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@hmdbvip.cn
文章转载自:



在现代软件开发过程中,自动化单元测试是确保代码质量与可靠性的关键环节。尤其对于特定框架(如MFC)的代码,测试复杂度显著增加,常因依赖外部资源或交互操作而难以在静默环境中顺利执行。Parasoft C/C++test作为专业的软件测试工具,致力于帮助开发团队高效实施自动化测试,通过其强大的桩函数功能,能够有效模拟依赖组件的行为,从而实现对复杂逻辑的隔离测试。
本文将为大家介绍如何在MyEclipse中使用XDoclet开发EJB 2 Session Bean,欢迎下载最新版体验!
如果能将 CSV 自动转换为 PDF ,就能快速生成清晰、美观的报表,既节省手动排版时间,又能保持数据的专业呈现。本文将介绍如何使用 Spire.XLS for Java 实现这一过程——从加载 CSV 到输出高质量 PDF,仅需数行代码即可完成。
Parasoft C/C++test是一款专为C/C++代码设计的自动化测试工具,通过静态代码分析、单元测试和运行时错误检测等功能,帮助开发团队在早期发现并修复缺陷,提升代码质量和开发效率 。在实际使用中,尤其是在VC6此类旧版开发环境中执行单元测试时,可能会因环境兼容性问题触发链接错误。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站