TMD/WL (Themida / Winlicense ) SDK VM的解决方案 (应用篇,非引擎分析)
来源:互联网 发布:算法设计与分析考试题 编辑:程序博客网 时间:2024/06/05 08:48
在Themida / Winlicense脱壳后,在以下几种情况可能需要对SDK VM 进行处理。
1,程序分析需要。
2,由于最新版本anti-dump原因,有可能导致脱壳后的程序不能运行。
3,需要减小程序体积,删去TMD/WL壳区段。
TMD/WL VM的两种常见方式,
1,JMP 方式
在程序中很容易找到
jmp aaaaaaaa
aaaaaaaa:
push key
JMP vm_start
2,非jmp方式,如call XXXXXXXX。
TMD/WL VM的虚拟机出入口的一般方式:
push key
Jmp Vm_Start 进入虚拟机
00514835 9C pushfd ; Vm_Start 虚拟机入口
00519518 311C24 xor dword ptr ss:[esp],ebx
0051951B 331C24 xor ebx,dword ptr ss:[esp]
0051951E 8B2424 mov esp,dword ptr ss:[esp]
00519521 61 popad
00519522 9D popfd
00519523 C3 retn ;Vm_Retn 虚拟机出口
在虚拟机出口处可以得到返回的地址,如VM的API函数等:
popad
popfd
retn
Un VM步骤:
1,在OD的CPU窗口上 右键---选择find reference
2,在出现的reference窗口上选择要VM的jmp / call。
3,右键---选择UnVirtualizer with jump / no jump.
4,点确定。
5,再次 右键---选择UnVirtualizer with jump,此时会弹出一个文本窗口,查找
POP ESP
或者
MOV ESP, DWORD PTR SS:[ESP]
或者
MOV ESP,DWORD PTR [ESP]
或者
ADD ESP,0x4
一般从最后面往上找起,如找到
00C27B02 POP EAX
00C27B0D POP ESP
00C27B13 MOV ECX,DWORD PTR [EBP+0xfffffff0]
00C27B70 CMP DWORD PTR [ECX+0xfffffff8],EDI
那么,在弹出的窗口中输入00C27B13这个地址,点确定即可。
6,如何确认unVM的数据是否正确:
A,根据unVM后的最后一个数据JMP是否为(EB 10).或EB 11等,即最后面这个JUMP是短距离的往后跳,如果是跳到前面那说明unVM的
数据太多了。
B,只能根据上下文来判断。
以上过程如有补充或疑问,可问QQ: 9112627, 对软件破解、Winlicense脱壳,Zprotect脱壳,NP过校验,网络验证破解等有一定的研究。
- TMD/WL (Themida / Winlicense ) SDK VM的解决方案 (应用篇,非引擎分析)
- Themida / Winlicense (TM / WL)脱壳总结
- Themida / Winlicense (TM / WL)脱壳总结,Themida脱壳,Winlicense脱壳各个版本区别总结
- Themida/WinLicense IAT 处理流程分析
- Themida/WinLicense.V1.8.2.0 的Anit OllyDBG新方法
- 总结Themida / Winlicense加壳软件的脱壳方法
- Themida / Winlicense (TM / WL) 2.1.0.10 无key通过认证,对2.1.0.0或以下版本无KEY脱壳。
- quosego [Themida/Winlicense unpacking questions]
- GetDuxiuStr破解 ---WL/TMD加密
- Themida 1.7.6.0,WinLicense [1.7.6.0]
- Themida/Winlicense v.2.1.x.x ( std )
- winlicense/TMD脱壳----私募牛股预警系统 脱壳
- comments from LCF-AT on Themida Winlicense unpacking script
- Themida WinLicense免费下载脱壳使用教程功能介绍大全
- Themida和Winlicense加壳软件脱壳教程
- 史上最全的 Winlicense 版本
- Themida/WinLicense V1.8.2.0 +脱壳 FOR PcShare远程控制会员版本20070826
- SSD 之wl(wear leveling)算法分析
- C#函数的重载
- 【模拟】Another Easy Problem
- 面向对象设计原则之合成复用原则
- iphone No architectures to compile for (ARCHS=i386, VALID_AR
- 面向对象设计原则之迪米特法则
- TMD/WL (Themida / Winlicense ) SDK VM的解决方案 (应用篇,非引擎分析)
- hdoj 1253 胜利大逃亡 宽度优先遍历
- Java中的异常对程序效率有无影响
- USACO Riding The Fences 与欧拉路径问题
- IE10 中增强的内存保护
- 创建工厂和双分派工厂
- C病毒读写,自我启动复制
- vMware安装Ghost操作系统
- 七龙珠ol恋情语录