TMD/WL (Themida / Winlicense ) SDK VM的解决方案 (应用篇,非引擎分析)

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过校验,网络验证破解等有一定的研究。

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在国内软件行业环境混乱,基本上有点优秀的商业软件大部份都会被破解,有许多开发者为了保护自已的软件不被破解,使用很多复杂的加密算法,这样花费了很多精力。今天我为大家推荐一款软件Themida ,它是一个常强大的软件加密保护系统,专门是为了那些想保护自己的软件不被先进的反向工程和黑客软件破解的开发者而设计的。开发者不需要更改任何的源代码就可以使用Themida轻松的将自已的软件进行加密,防止被黑客轻易破解Themida使用SecureEngine的保护技术。它能够以最高的优先等级运行,这些保护技巧是从来都没在电脑防御技术领域出现过,Themida能在最大程度地保护你的软件产品。特别适合保护.net程序。 Themida的一些最重要的注册保护措施特点 1、可以创建用来延长试用版本的有效期的特别码。 2、一个用来储藏试用 状态的 强劲的引擎,以避免任何软件破解者尝试重置有效期。可以13、为个别开发者的需要创建不同的注册码。 4、针对特定国家的试用锁定和注册码。 5、机器锁定,使程式只运行在特定的电脑上。 6、自定的试用计算器来控制你试用版本的有效资源。 7、为试用版本和完全版本制定独立的密码。 8、可以使用外部 Themida DLL 来创建你自己的自动化系统。 9、超过 50 种不同函数的完整 SDK 。 10、为试用版和完全版提供 .NET SDK 支援。 11、使用数据库来安全地储存你所有的软件,客户和注册资料。 13、自定义所有的试用 / 注册讯息,也控制是否要展示特定的试用 / 注册讯息 重要提示(设置中文方法): Advanced Options--->localization--->选择simple_chinese.lng

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值