P-Code逆向杂谈

本文探讨了VB程序的P-Code逆向工程,解释了P-Code如何通过MSVBVM60.dll在不同平台运行,并展示了P-Code解释执行引擎的典型过程。作者在尝试追查VB程序的注册算法时意外追到了MD5算法,揭示了P-Code逆向过程中可能遇到的挑战和有趣发现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前头:
在看雪上逛的时候,看见有一求助贴,神经一发就看了一下,VB的,而且还是P-Code格式的,呵呵,虽说没破过几个P-Code的VB,但是还是很快的找到了注册码,呵呵,使用明码比较的,感觉还不知足就打算追下其注册码,啥都不想了埋头苦追注册算法,追了几天,相当的累,把周末时间都搭上,最后才发现我竟然把MD5算法给追出来了,汗死了,谁叫我是个算法盲啊。

P-Code逆向&MD5算法
P-Code逆向
大家都知道VB程序编写后有两种编译方式,Native和P-code,Native顾名思义就是本地方式,就向像VC那样将VB高级语言编译链接成机器码。而P-Code类型则是为了实现类似java那样的“一次编译,到处运行”的目的,VB编译器将VB高级语言先编译成一种比较紧凑的中间语言格式,“到处运行”的实现是通过在不同平台上安装MSVBVM60.dll来解释VB编译器生成的中间语言。呵呵,不就是Java么,MSVBVM60.dll的功能不就是Java虚拟机的功能,MSVBVM60.dll从词义上也可以猜出,MicroSoft VB Virtual Machine == MSVBVM。关于VB P-Code的逆向,由于VB程序是由虚拟机解释执行的,即MSVBVM.dll解释执行,通过对其反编译就可以得到其原始代码,(请注意反汇编和反编译的区别),还有一种办法就是动态追踪虚拟机的执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值