VB程序的破解

news/2024/10/23 9:36:06/

VB程序的破解

VB程序使很多朋友感到头痛,主要是VB程序反编译时产生大量的垃圾代码,而且也找不到有
用的信息,在动态调试过程中,垃圾代码太多,往往迷失于冗余的代码中,找不到方向。
记住VB常用的一些函数:


MultiByteToWideChar         将ANSI字符串转换成UNICODE字符
WideCHatToMultiByte  将UNICODE字符转换成ANSI字符
rtcT8ValFromBstr         把字符转换成浮点数  
vbaStrCmp        比较字符串(常用断点)
vbaStrComp       字符串比较(常用断点)
vbaStrCopy       复制字符串
StrConv        转换字符串
vbaStrMove       移动字符串
__vbaVarCat                         连接字符串
rtcMidCharVar                      在字符串中取字符或者字符串!
__vbaLenBstr                       取字符串的长度
vbaVarTstNe      变量比较
vbaVarTstEq      变量比较
rtcMsgBox       显示对话框
VarBstrCmp       比较字符串
VarCyCmp        比较字符串

  
用OD载入脱壳后的程序,在命令行输入:bpx hmemcpy,然后回车,会弹出程序运行调用的所有的函数,在每个函数上设置好断点!
说明:我破VB程序喜欢用这个断点设置方法,通过一步步跟踪,基本可以把握程序保护的思路,所以我破VB程序基本用这个断点,
当然你可以用其它的断点,只要能找到关键,任何断点都是用意义的。

关于VB的程序,注册没有提示的二个办法:

第一(提示错误):用GetVBRes来替换里面的提示串,一般是以‘111111’,‘222222’之类的替换

因为:VB,用的字来存放提示还有加了点东东,我们用的工具一般是字节分析。换成‘22222’之类的就是字节了,用静态分析,就有你该的串了。GetVBRes(网上很多,自己下吧)

第二(没有提示):用vbde这个工具(不知道,有没有用过DEDE,是一样思路),主要是找出破解的按钮窗口的位置,来进行跟踪。

先给出修改能正确反编译VB程序的W32DASM的地址:

======================

offsets 0x16B6C-0x16B6D

修改机器码为: 98 F4

======================

VB程序的跟踪断点:

============

MultiByteToWideChar,
rtcR8ValFromBstr,
WideCharToMultiByte,
__vbaStrCmp
__vbaStrComp
__vbaStrCopy
__vbaStrMove
__vbaVarTstNe
rtcBeep
rtcGetPresentDate (时间API)
rtcMsgBox

=========

时间限制断点:

================
CompareFileTime
GetLocalTime
GetSystemTime
GetTimeZoneInformation
msvcrt.diffTime()
msvcrt.Time()
================

VB断点查找方法
1,VB6.0编写,OD载入程序调出注册窗口,alt+e调出可执行模块窗口找到X:/WINDOWS/system32/MSVBVM60.DLL
双击,在ctrl+n调出窗口找到,名称XXXXXXE区段=ENGINE 导出__vbaVarMove双击来到下面地址(可以直接在命令行 bp __vbaVarMove)
回到程序注册窗口点注册被拦断在刚才下断的地址,断后在ctrl+F9,F8回

2,OD载入程序,命令行下断点。

bp rtcMsgBox
堆栈友好提示
确定注册失败按钮返回。接着向上找出点注册按钮执行的代码第一句,可以吗?当然行,根据我们知道程序员写一个事件执行的代码是如这种,
各种语言都差不多。

3,OD载入程序,命令行下断点。
bp rtcMsgBox
任意填入伪注册码 9999999999999999999
确定后中断
堆栈友好提示
确定注册失败按钮返回。
W32Dasm反汇编程序,Shiht+F12

4,VB中的messagebox是一个消息框,汇编中用rtcMsgBox下断点.用olldbg载入程序,Alt+e,在可执行文件模块中找到Msvbvm60.dll,双击它,  在代码窗口点右键-搜索-当前模块中的名称中的rtcMsgBox函数,双击它,在6A362F29 55 PUSH EBP这一句双击下断点,关掉多余的窗口,只留下  cpu调试主窗口,F9运行程序,点?号按钮,随便输入987654321后,回车后立即中断,然后Ctrt+f9执行到返回地址,因为这是msvbvm60的领空,
我们要回到程序领空.秘密记事本弹出message错误提示信息,点确定,向上看 ,再按F8就回到

5,为Microsoft Visual Basic 6.0。先用SmartCheck找到程序比较注册码点,

6,用vb常用比较断点
vbastrcmp
vbastrcomp
vbavartsteq
在od中设断点找注册码

7,用Od载入程序,运行,填入上面的注册码和顺序号。在Od中下断点,Alt+E,双击Msvbvm60运行库,右键-搜索当前模块中的名称,找到Vbastrcmp,双击下断点。


http://www.ppmy.cn/news/818328.html

相关文章

Visual Basic 6.0 中文企业版

Visual Basic6是现阶段最多人使用的一款Basic编程软件,Visual Basic又被称作VB,是很多软件工程学生必学的课程之一,通过Visual Basic用户可以轻松的制作出软件窗口,尤其是在这个大多数软件开源的时代,通过Visual Basic…

快速入门vb语言——第一天

day1-VB的简单介绍 一、文章主要内容 什么是VB编程语言VB的应用场景VB的编辑器——Visual Basic我的第一个VB程序——Hello,World 二、什么是VB语言 VB语言是一门面向对象的编程语言,它具有模块化、结构化等特点。它与其他的编程语言最大的特别是它自带UI界面&a…

VB编程必备!_VB源码之友(内含-下载-破解-使用方法)

这个控件绝对要的!名字叫VB源码之友—— 发现!—— 今天我在编程序的时候正在听《山丘》(推荐听)这首歌、什么?听歌跟编程有什么关系?我现在就告诉你!我的发现。 今天一不小心把歌词锁定了、就…

VB 6.0下载|Visual Basic 6.0简体中文企业版下载

Visual Basic 6.0 中文企业版http://www.xue51.com/soft/1323.html vb6.0是由微软官方推出Visual Basic 6.0,是一款用于编程的rad开发软件。Visual Basic 6.0简体中文企业版是被开发者广泛使用的一款开发软件,其使用价值非常的高,适合所有的开…

VB6.0 与 VS2010 在VB编程上的区别小总结

这段时间相信大家已经慢慢习惯使用VB6.0来制作各自的小程序了,不过除了VB6.0以外,VS2008和VS2010都可以进行VB程序设计,这一点想必没有太多同学去关注。 其实发现这个也纯属巧合,因为笔记本重装系统之后程序不全,而我有…

Win7+Visual Basic V6.0精简版安装过程中的问题

VB精简中文版: https://download.csdn.net/download/sl131021100802/10670243 下载地址:https://pan.baidu.com/s/1TB_AjRSZgSJkUMewpoLL-A 提取码:s98g VB精简英文版: https://download.csdn.net/download/lhminute/4931400…

VB6-Mini_20160110(VB6精简版下载)

这个今天在百度搜索时候找到的,看起来还不错,以后学习不出问题肯定用这个。 下载地址:链接: http://pan.baidu.com/s/1geIk103 密码: y5eq 欢迎各位同学关注- - 转载于:https://blog.51cto.com/hekaihao/1791813

python有关异常知识总结

引言 异常处理在编程中扮演着重要的角色,特别是在Python中。Python的异常处理机制提供了一种优雅的方式来处理程序中的错误和异常情况。本文将介绍Python异常处理的基本概念和常见用法,并探讨异常处理的重要性以及为什么我们应该捕获异常而不是忽略它们…