学了两课,膨胀的找了个两个软件,一个vmp壳一个Themida & WinLicense 2.0 - 2.4.6。老实了。以下为转载,目前看不懂完全。

总结vmp壳基础原理,大牛不要喷啊!

1.与传统的加壳工具不同,不是简单的把目标进行压缩、内存解压运行,而是修改目标源码,让目标的部分指令在vmp创建的虚拟环境下运行,虚拟环境中无操作数比较指令、条件跳转和无条件跳转指令;
2.被修改替换的目标指令最终形成的字节码有前后相关性,即你改变其他任意一个字节会影响到所有被vm虚拟化的指令
3.vmp的虚拟机其实是一个字节码解释器,循环的读取指令并执行,并且只有一个入口和一个出口
4.虚假跳转和垃圾指令, vmp会使用大量的虚拟跳转和垃圾指令将原有简单的代码变得复杂
5.vmp是基于堆栈的虚拟机,虚拟机指令不是显示的读取参数,而是把要使用的参数压入堆栈,而后直接从堆栈中读取
6.vmp指令
  1)算数运算和移位运算
  2)堆栈操作
  3)系统相关
  4)逻辑运算,这个最复杂,vmp中只有一个逻辑运算指令nor, 它可以模拟not and or xor 四个逻辑运算指令
6.vmp寄存器轮转
  mvp将所有的寄存器都放在一个堆栈的结构vm_context中, 结构中的每一项代码一个寄存器或临时变量
  在程序运行过程中, vm_context结构中保存的寄存器不是固定的,每当执行完一个操作或一个指令结构中的项与真实寄存器之间的映射关系会发生变化,就像一个齿轮随机的转动了一下, 转动过后原有的映射关系全部改变了
7.字节码加密和随机效验
  随机效验比较牛B, vmp会在编译好的字节码中加入自己的一些指令(专属于vmp自动的指令), 每一次执行都会对一段代码随机生成hash值, 然后与另一个随机数相加, vmp要求相加的结果必须为0, 否则会出错.

个人总结,不一定十分准确,请勿引用!

(一),

Themida和不用license的Winlicense脱壳就不说了,直接上脚本脱壳。

(二),

先看看不同版本OEP的一些小特征:

2.1.X.X版本之后的OEP特征(2.0.8.0,2.1.0.10,2.1.3.32等)

2.1版本之前的OEP特征,如(2.0.3.0,1.8.2.0,1.885等):

Temida OEP特征:如(2.0.3.0,)

一,对于Winlicense2.1.0.10及其以下版本,不用license,可自己随意构造一个license直接bypass.然后脱壳。

bypass过程

1, 先获得license名称,自己随便构造一个license,然后OD运行程序,弹出提示窗口后获得JMP的首地址:FirstJmpAddress。

2, 下FirstJmpAddress硬件断点,重新运行程序,中断后,在第二个jmp,enter进入,然后搜索cmp ecx,eax,下断点,运行,中断在CmpEcxEaxAddress。

3, 运行几次后,会得到eax,ecx不同的值,其中eax为正确的checkword,把eax值赋给ecx即可。共有两次不同,所以有两个checkword。

4, 搜索kenrel.dll的首地址,本机为7c800000, ctrl+B,输入:00 00 80 7C。再搜索dll地址的第二个地址,可以获得SecondDllAddress。在改完第二个checkword后,把SecondDllAddress更改为首个dll地址,运行即可bypass.

二,2.1.X.X版本之后的OEP特征(2.0.8.0,2.1.0.10,2.1.3.32等):

bypass过程:

1,需要一个可用license

第1,2步骤与以上相同.

第3个步骤中,只有一个checkword,但是这个checkword值也有两次校验,分别赋给ecx即可bypass.

三,还碰到过一种bypass,是需要不断监控eax和SecondDllAddress 值的,不知道属于哪个版本。可看教程WinLicense ByPass For SecondDllAddress.

以上三种版本bypass过程需要如何分辨,主要看cmp ecx,eax时候的值来辨别!

Winlicense脱壳过程:

把bypass的script插入zhw hwid Themida - Winlicense 1.x - 2.x Multi PRO Edition 1.2.txt中即可实现bypass加脱壳。

搜索/*zhw bypass   */部分可看到插入的script.

上面的例子我放到资源中供大家下载,里面有加壳的例子以及对应的bypass脚本和脱壳脚本。

地址: http://download.csdn.net/detail/zhw309/4249943
---------------------
作者:zhw309
来源:CSDN
原文:https://blog.csdn.net/zhw309/article/details/7490331
版权声明:本文为博主原创文章,转载请附上博文链接!

转载 关于两个壳VMP 和TMD相关推荐

  1. VMware虚拟机去虚拟化完整版教程|永久过强壳VMP、SE壳、GK盾、TMD教程|VMware去虚拟化吾爱汇编论坛教程完整版

    VMware去虚拟化完整版教程|永久过强壳VMP.SE壳.GK盾.TMD|VMware去虚拟化吾爱汇编论坛教程完整版 教程内容: 实际效果:

  2. 【解决】client does not support authentication转载的两种解法

    碰到这个问题一直难以解决,直到我看到了以下两位博主的博客.非常的有用. 第一位采用CMD cmd窗口登陆mysql: C:\Users\Administrator>  sqlplus  /nol ...

  3. python 工程结构加固_[原创]某企业级加固[四代壳]VMP解释执行+指令还原

    现在的VMP的比较常见了,应该也是稳定性满足要求了,今天来分析一波,如有不当还请各位大佬指正 实际上 libdexjni.so在不同的APP中体积会不一样,应该是硬编码写入字符串和指令导致的 1-VM ...

  4. 两条命令解决移动硬盘无法弹出的问题(转载 )

    转载自 两条命令解决移动硬盘无法弹出的问题 | 呉真的博客 自从 Windows 10 更新到 20H2 版本后,几乎每次弹出移动硬盘都要碰到 "正在使用中" 无法弹出的问题,一般 ...

  5. 计算机云教室VMP,冷小黑od过检测插件

    冷小黑od过检测插件2021是一款最新的无视E盾/VMP等检测的od破盾插件,可以用于为每个计算机提供驱动程序调试和管理功能,以便在使用各种硬件驱动程序时可以为计算机提供更安全的保护,软件能实时通过鼠 ...

  6. 两个月拿到N个offer,看看我是如何做到的

    转载自   两个月拿到N个offer,看看我是如何做到的 前言: 北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五 ...

  7. 两张趣图助你理解 HTTP 状态码

    转载自   两张趣图助你理解 HTTP 状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. 我们可以通过查看HTTP状态码来判断服务器状态, ...

  8. 两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践

    转载自   两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践 Spring Boot是最流行的用于开发微服务的Java框架.在本文中,我将与你分享自2016年以来我在专业开发中使用Sp ...

  9. 两步验证杀手锏:Java 接入 Google 身份验证器实战

    转载自   两步验证杀手锏:Java 接入 Google 身份验证器实战 什么是两步验证? 大家应该对两步验证都熟悉吧?如苹果有自带的两步验证策略,防止用户账号密码被盗而锁定手机进行敲诈,这种例子屡见 ...

最新文章

  1. 未来一年最有可能成为独角兽的29家美国初创公司
  2. unicode字符串操作函数 vc
  3. 使用win32 API 下载文件
  4. 2015.12.23 OC中的字符串(NSStringNSMutableString) 数组(NSArrayNSMutableArray)
  5. 软件设计模式之适配器模式(JAVA)
  6. 用Delphi制作网络游戏外挂
  7. php中访问控制_PHP之Trait详解
  8. 远程桌面发生身份验证错误,要求的函数不受支持
  9. INSERT … ON DUPLICATE KEY UPDATE
  10. javah生成java头文件
  11. Hyper-V固定虚拟机IP
  12. python pyinstaller使用方法_【python快手菜】pyinstaller使用指南
  13. 肿瘤基因组学数据库终结者:cBioPortal---转载
  14. C# 蓝牙编程(InTheHand.Net.Personal.dll-32feet),教程地址
  15. 用OneNote从图片提取文字
  16. kubernetes日志架构PLG(promtail+loki+grafana)
  17. linux带gui的服务器和gnome,请求指点:Server with GUI 和 GNOME Desktop 的区别是什么?...
  18. 主成分回归python实现
  19. 全球免费软件推荐(国外篇)
  20. 【STM32】基于正点原子『探索者』开发板的烧录

热门文章

  1. 人群标签的作用,怎样形成人群标签
  2. math的向上取整_math的向上取整_JavaScript Math.ceil 方法(对数值向上取整)
  3. 企业HR面试提问100例分享(上)
  4. vue 选择下拉框选项更改触发事件
  5. Spring Aware 是什么?
  6. 关于新浪微博里面长图加载功能的一点窥探
  7. 2022新版前端开发工具vscode使用教程之下载安装详解
  8. 2021-07-21项目实训后端第四周(1)
  9. 如何开始写技术博客?
  10. WPF学习:4.类型转换和标记扩展