分区软件下载-tar

msvbvm60 dll
2023年4月2日发(作者:lol进不去游戏)

OD常用断点

拦截窗口:

bpCreateWindow创建窗口

bpCreateWindowEx(A)创建窗口

bpShowWindow显示窗口

bpUpdateWindow更新窗口

bpGetWindowText(A)获取窗口文本

拦截消息框:

bpMessageBox(A)创建消息框

bpMessageBoxExA创建消息框

bpMessageBoxIndirect(A)创建定制消息框

bpIsDialogMessageW

拦截警告声:

bpMessageBeep发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)

拦截对话框:

bpDialogBox创建模态对话框

bpDialogBoxParam(A)创建模态对话框

bpDialogBoxIndirect创建模态对话框

bpDialogBoxIndirectParam(A)创建模态对话框

bpCreateDialog创建非模态对话框

bpCreateDialogParam(A)创建非模态对话框

bpCreateDialogIndirect创建非模态对话框

bpCreateDialogIndirectParam(A)创建非模态对话框

bpGetDlgItemText(A)获取对话框文本作用是得指定输入框输入字符串

bpGetDlgItemInt获取对话框整数值

拦截剪贴板:

bpGetClipboardData获取剪贴板数据

拦截注册表:

bpRegOpenKey(A)打开子健

bpRegOpenKeyEx打开子健

bpRegQueryValue(A)查找子健

bpRegQueryValueEx查找子健

bpRegSetValue(A)设置子健

bpRegSetValueEx(A)设置子健

功能限制拦截断点:

bpEnableMenuItem禁止或允许菜单项

bpEnableWindow禁止或允许窗口

拦截时间:

bpGetLocalTime获取本地时间

bpGetSystemTime获取系统时间

bpGetFileTime获取文件时间

bpGetTickCount获得自系统成功启动以来所经历的毫秒数

bpGetCurrentTime获取当前时间(16位)

bpSetTimer创建定时器

bpTimerProc定时器超时回调函数

GetDlgItemInt得指定输入框整数值

GetDlgItemText得指定输入框输入字符串

GetDlgItemTextA得指定输入框输入字符串

拦截文件:

bpCreateFileA创建或打开文件(32位)

bpOpenFile打开文件(32位)

bpReadFile读文件(32位)

bpWriteFile写文件(32位)

GetModuleFileNameA

GetFileSize

Setfilepointer

fileopen

FindFirstFileA

ReadFile

拦截驱动器:

bpGetDriveTypeA获取磁盘驱动器类型

bpGetLogicalDrives获取逻辑驱动器符号

bpGetLogicalDriveStringsA获取当前所有逻辑驱动器的根驱动器路径

★★VB程序专用断点★★

文件长度:RtcFileLen

bp__vbaFreeStr对付VB程序重启验证

bp__vbaStrCmp比较字符串是否相等

bp__vbaStrComp比较字符串是否相等

bp__vbaVarTstNe比较变量是否不相等

bp__vbaVarTstEq比较变量是否相等

bp__vbaStrCopy复制字符串

bp__vbaStrMove移动字符串

bpMultiByteToWideCharANSI字符串转换成Unicode字符串

bpWideCharToMultiByteUnicode字符串转换成ANSI字符串

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

密码常用中断

Hmemcpy(win9x专用)

GetDlgItemTextA

GetDlgItemInt

vb:

getvolumeinformationa

vbastrcomp(trw)

Bpx__vbaStrComp(记得是两个'_')

MSVBVM60!_vbastrcomp|sofice

MSVBVM50!|

VBAI4STR

Ctrl+D

bpxmsvbvm60!__vbastrcompdo"d*(esp+0c)"(softice)

按几次F5出册码出来了。

bpxregqueryvalueexado"desp->8"(trw)

vbaVarTstEq判断是否注册的函数

(0042932F66898580FEFFFFmovwordptr[ebp+FFFFFE80],ax

改为0042932F66898580FEFFFFmovwordptr[ebp+FFFFFE80],bx)

时间常用中断

GetSystemTime

GetLocalTime

GetTickCount

vb:

rtcGetPresentDate//取得当前日期

杀窗常用中断

Lockmytask(win9x专用)

bpExitProcess退出进程

DestroyWindow

mouse_event(鼠标中断)

postquitmessage(Cracking足彩xp,很有用^_^)

vb:

_rtcMsgBox

ini文件内容常用中断

GetPrivateProfileStringA

GetPrivateProfileProfileInt

key文件:

getprivateprofileint

ReadFile

CreateFileA

注册表常用中断

RegQueryvalueA

RegQueryvalueExA

狗加密中断

BPIO-h278R

BPIO-h378R

其它常用函数断点

CreateFileA(读狗驱动程序),

DeviceIOControl,

FreeEnvironmentStringsA(对付HASP非常有效).

Prestochangoselector(16-bitHASP's),'7242'查找字符串(对付圣天诺).具体含义参考下面的

范例。

光盘破解中断

16:

getvolumeinformation

getdrivetype

int2fh(dos)

32:

GetDriveTypeA

GetFullPathNameA

GetWindowsDirectoryA

读磁盘中断

GETLASTERROR返回扩充出错代码

限制中断

EnableMenuItem允许、禁止或变灰指定的菜单条目

EnableWindow允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰)

不知道软盘中断是什么了?还有其它特殊中断,不知道其他朋友可否说一下了?

如ockmytaskandmouse_event,这些就不是api32函数?

win9x与win2k进行破解,以上中断有部分已经不能用了?

不知道在win2k上,以上常用中断函数是什么了?

也就是问密码、时间、窗口、ini、key、注册表、加密狗、光盘、软盘、限制等!

了解常用的中断,对破解分析可以做到事半功倍!

请大家说一下!还有如何破解了某个软件时,一重启就打回原形?

不知道下什么中断了?可以分为三种情况:

1.比较可能在注册表中

2.比较在特殊文件(*.key*.ini*.dat等)

3.比较在程序中,没有任何错误提示或者反译也找不到明显字符(这个就是我想问的)

还有一个是最难的,就是去掉水印!

也可以三种情况:

A.水印是位图文件(bitblt,creatBITMAP等位图函数)

B.水印是明显字符(反译分析)

C.水印不是明显字符(如:Thisademo!它只是显示在另一个制作文件上,可是*.htm*.exe等)

C.才是最难搞,也是很多人想知道的!包括我在内。不知道高手们有何提示了?

广告条:

可以分两种情况:

A.从创建窗口进手,可以用到movewindow或者其它窗口函数!

B.从位图进手,也可以用到bitblt或者其它位图函数!

最后可以借助一些现有工具(如:api27,vwindset,freespy之类的工具)

那要看是在哪作的标记,通常是在注册表中留下信息!

在softice中就要用bpxregqueryvalueexado"desp->8"来中断看看,

在trw中要用bpxregqueryvalueexado"d*(esp+8)"来中断看看。

还有的是在本目录下留下注册信息,常见的有.等等,

我是用bpxreadfile来中断的,还有的是在windows目录下留下注册信息。

你可以借助专用的工具帮助你查看,入filemon等!

vb:

1、__vbaVarTstNe//比较两个变量是否不相等

2、rtcR8ValFromBstr//把字符串转换成浮点数

3、rtcMsgBox显示一信息对话框

4、rtcBeep//让扬声器叫唤

5、rtcGetPresentDate//取得当前日期

针对字串:

__vbaStrComp

__vbaStrCmp

__vbaStrCompVar

__vbaStrLike

__vbaStrTextComp

__vbaStrTextLike

针对变量:

__vbaVarCompEq

__vbaVarCompLe

__vbaVarCompLt

__vbaVarCompGe

__vbaVarCompGt

__vbaVarCompNe

VB的指针:

THROW

VBDLL还调用了中的部分函数。是个通用的proxy/stubDLL,其

每个函数的原型在中定义,并在MSDN中有详细描述。这也有助于理解VBDLL

中的函数的作用。

举例:

LEAEAX,[EBP-58]

PUSHEAX

CALL[MSVBVM60!__vbaI4Var]

执行call之前敲ddeax+8,得到的值为3;

执行完call之后,eax=3

从而可知__vbaI4Var的作用是将一个VARIANT转换为I4(即一个长整数)。

__vbaVarTstNe似乎是用来进行自校验的,正常情况下返回值为0。

已知适用的软件有:网络三国智能机器人、音乐贺卡厂。当这两个软件被脱壳后都回出错,

网络三国智能机器人会产生非法*作,而音乐贺卡厂会告诉你是非法拷贝,通过修改

__vbaVarTstNe的返回值都可让它们正常运行。

所以当您遇到一个VB软件,脱壳后无法正常运行,而又找不出其它问题时,可试试拦截这

个函数,说不定会有用哦。8-)

API不太知道,也许可以通过BIOS在98平台上读写扇区,不过在2000/NT下可以通过内黑

ATAPI,HAL写扇区

machoman[CCG]

bpxWRITE_PORT_BUFFER_USHORT

NT/2000下这个断点,当edx=1f0h,时,可以看见EDI地址内数据为扇区位置数据,必须先在

中装入详细内容看ATAPI手册

补充篇:

关于对VB程序和时间限制程序的断点

CrackerABC

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

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

offsets0x16B6C-0x16B6D

修改机器码为:98F4

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

VB程序的跟踪断点:

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

MultiByteToWideChar,

rtcR8ValFromBstr,

WideCharToMultiByte,

__vbaStrCmp

__vbaStrComp

__vbaStrCopy

__vbaStrMove

__vbaVarTstNe

rtcBeep

rtcGetPresentDate(时间API)

rtcMsgBox

=========

时间限制断点:

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

CompareFileTime

GetLocalTime

GetSystemTime

GetTimeZoneInformation

me()

()

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

一般处理

bpxhmemcpy

bpxMessageBox

bpxMessageBoxExA

bpxMessageBeep

bpxSendMessage

bpxGetDlgItemText

bpxGetDlgItemInt

bpxGetWindowText

bpxGetWindowWord

bpxGetWindowInt

bpxDialogBoxParamA

bpxCreateWindow

bpxCreateWindowEx

bpxShowWindow

bpxUpdateWindow

bmsgxxxxwm_move

bmsgxxxxwm_gettext

bmsgxxxxwm_command

bmsgxxxxwm_activate

时间相关

bpint21ifah==2A(DOS)

bpxGetLocalTime

bpxGetFileTime

bpxGetSystemtime

CD-ROM或磁盘相关

bpint13ifah==2(DOS)

bpint13ifah==3(DOS)

bpint13ifah==4(DOS)

bpxGetFileAttributesA

bpxGetFileSize

bpxGetDriveType

bpxGetLastError

bpxReadFile

bpio-h(YourCD-ROMPortAddress)R

软件狗相关

bpio-h278R

bpio-h378R

键盘输入相关

bpint16ifah==0(DOS)

bpint21ifah==0xA(DOS)

文件访问(自校验)相关

bpint21ifah==3dh(DOS)

bpint31ifah==3fh(DOS)

bpint21ifah==3dh(DOS)

bpxReadFile

bpxWriteFile

bpxCreateFile

bpxGetFileSize

bpxSetFilePointer

bpxGetSystemDirectory

INI初始化文件相关

bpxGetPrivateProfileString

bpxGetPrivateProfileInt

bpxWritePrivateProfileString

bpxWritePrivateProfileInt

注册表相关

bpxRegCreateKey

bpxRegDeleteKey

bpxRegQueryvalue

bpxRegCloseKey

bpxRegOpenKey

注册标志相关

bpxcs:eipifEAX==0

内存标准相关

bpmbcs:eiprwif0x30:0x45AA==0

显示相关

bpx0x30:0x45AAdo"d0x30:0x44BB"

bpxCS:0x66CCdo"?EAX"

查找窗口

FindWindowA

BPSetFilePointer

bpxhmemcpy;破解万能断点,拦截内存拷贝动作(注意:Win9x专用断点)

bpxLockmytask;当你用其它断点都无效时可以试一下,这个断点拦截按键的动作(Win9x专

用)

实在找不到断点可以试下面的方法:

bmsghandlewm_gettext;拦截注册码(handle为对应窗口的句柄)

bmsghandlewm_command;拦截OK按钮(handle为对应窗口的句柄)

拦截窗口:

bpxCreateWindow;创建窗口

bpxCreateWindowEx(A/W);创建窗口

bpxShowWindow;显示窗口

bpxUpdateWindow;更新窗口

bpxGetWindowText(A/W);获取窗口文本

拦截消息框:

bpxMessageBox(A/W);创建消息框

bpxMessageBoxExA(W);创建消息框

bpxMessageBoxIndirect(A/W);创建定制消息框

拦截警告声:

bpxMessageBeep;发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)

拦截对话框:

bpxDialogBox;创建模态对话框

bpxDialogBoxParam(A/W);创建模态对话框

bpxDialogBoxIndirect;创建模态对话框

bpxDialogBoxIndirectParam(A/W);创建模态对话框

bpxCreateDialog;创建非模态对话框

bpxCreateDialogParam(A/W);创建非模态对话框

bpxCreateDialogIndirect;创建非模态对话框

bpxCreateDialogIndirectParam(A/W);创建非模态对话框

bpxGetDlgItemText(A/W);获取对话框文本

bpxGetDlgItemInt;获取对话框整数值

拦截剪贴板:

bpxGetClipboardData;获取剪贴板数据

拦截注册表:

bpxRegOpenKey(A/W);打开子健(例:bpxRegOpenKey(A)if*(esp->8)=='****')

bpxRegOpenKeyExA(W);打开子健(例:bpxRegOpenKeyExif*(esp->8)=='****')

bpxRegQueryValue(A/W);查找子健(例:bpxRegQueryValue(A)if*(esp->8)=='****')

bpxRegQueryValueEx(A/W);查找子健(例:bpxRegQueryValueExif*(esp->8)=='****')

bpxRegSetValue(A/W);设置子健(例:bpxRegSetValue(A)if*(esp->8)=='****')

bpxRegSetValueEx(A/W);设置子健(例:bpxRegSetValueEx(A)if*(esp->8)=='****')

注意:'****'为指定子键名的前4个字符,如子键为'Regcode',则'****'='Regc'

功能限制拦截断点:

bpxEnableMenuItem;禁止或允许菜单项

bpxEnableWindow;禁止或允许窗口

bmsghMenuwm_command;拦截菜单按键事件,其中hMenu为菜单句柄

bpxK32Thk1632Prolog;配合bmsghMenuwm_command使用,可以通过这个断点进入菜单

处理程序

应用示例:

CALL[KERNEL32!K32Thk1632Prolog]

CALL[......]<--由此跟踪进入菜单处理程序

CALL[KERNEL32!K32Thk1632Epilog]

拦截时间:

bpxGetLocalTime;获取本地时间

bpxGetSystemTime;获取系统时间

bpxGetFileTime;获取文件时间

bpxGetTickCount;获得自系统成功启动以来所经历的毫秒数

bpxGetCurrentTime;获取当前时间(16位)

bpxSetTimer;创建定时器

bpxTimerProc;定时器超时回调函数

拦截文件:

bpxCreateFileA(W);创建或打开文件(32位)

bpxOpenFile;打开文件(32位)

bpxReadFile;读文件(32位)

bpxWriteFile;写文件(32位)

bpx_lcreat;创建或打开文件(16位)

bpx_lopen;打开文件(16位)

bpx_lread;读文件(16位)

bpx_lwrite;写文件(16位)

bpx_hread;读文件(16位)

bpx_hwrite;写文件(16位)

拦截驱动器:

bpxGetDrivetype(A/W);获取磁盘驱动器类型

bpxGetLogicalDrives;获取逻辑驱动器符号

bpxGetLogicalDriveStringsA(W);获取当前所有逻辑驱动器的根驱动器路径

拦截狗:

bpio-h378(或278、3BC)R;378、278、3BC是并行打印端口

bpio-h3F8(或2F8、3E8、2E8)R;3F8、2F8、3E8、2E8是串行端口

VB程序专用断点:

bpxmsvbvm60!rtcMsgBox

bpxmsvbvm60!__vbaStrCmp

bpxmsvbvm60!__vbaStrComp

bpxmsvbvm60!__vbaStrCompVar

bpxmsvbvm60!__vbaStrTextCmp

bpxmsvbvm60!__vbaFileOpen

bpxmsvbvm60!__vbaInputFile

bpxmsvbvm60!__vbaFileSeek

bpxmsvbvm60!__vbaWriteFile

bpxmsvbvm60!__vbaFileClose

bpxmsvbvm60!rtcFileAttributes

bpxmsvbvm60!rtcFileDateTime

bpxmsvbvm60!rtcFileLen

bpxmsvbvm60!rtcFileLength

bpxmsvbvm60!__vbaVarInt

bpxmsvbvm60!__vbaVarCmpGe

bpxmsvbvm60!__vbaVarCmpGt

bpxmsvbvm60!__vbaVarCmpLe

bpxmsvbvm60!__vbaVarCmpLt

bpxmsvbvm60!__vbaVarCmpNe

bpxmsvbvm60!__vbaVarTextCmpEq

bpxmsvbvm60!__vbaVarTextCmpGe

bpxmsvbvm60!__vbaVarTextCmpGt

bpxmsvbvm60!__vbaVarTextCmpLe

bpxmsvbvm60!__vbaVarTextCmpLt

bpxmsvbvm60!__vbaVarTextCmpNe

bpxmsvbvm60!__vbaVarTextTstEq

bpxmsvbvm60!__vbaVarTextTstGe

bpxmsvbvm60!__vbaVarTextTstGt

bpxmsvbvm60!__vbaVarTextTstLe

bpxmsvbvm60!__vbaVarTextTstLt

bpxmsvbvm60!__vbaVarTextTstNe

bpxmsvbvm60!__vbaVarTstEq

bpxmsvbvm60!__vbaVarTstGe

bpxmsvbvm60!__vbaVarTstGt

bpxmsvbvm60!__vbaVarTstLe

bpxmsvbvm60!__vbaVarTstLt

bpxmsvbvm60!__vbaVarTstNe

注意:VB程序仍然可以使用普通API函数,只要函数“最终”CALL了这个函数

上面的断点对应VB6程序,如果是VB5程序则将msvbvm60改成msvbvm50即可

bpxhmemcpy破解万能断点,拦截内存拷贝动作(注意:Win9x专用断点,XP无效)

bpxLockmytask当你用其它断点都无效时可以试一下,这个断点拦截按键的动作

实在找不到断点可以试下面的方法:

bmsghandlewm_gettext拦截注册码(handle为对应窗口的句柄)

bmsghandlewm_command拦截OK按钮(handle为对应窗口的句柄)

拦截窗口:

bpxCreateWindow创建窗口

bpxCreateWindowEx(A/W)创建窗口

bpxShowWindow显示窗口

bpxUpdateWindow更新窗口

bpxGetWindowText(A/W)获取窗口文本

拦截消息框:

bpxMessageBox(A)创建消息框

bpxMessageBoxExA创建消息框

bpxMessageBoxIndirect(A)创建定制消息框

拦截警告声:

bpxMessageBeep发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)

拦截对话框:

bpxDialogBox创建模态对话框

bpxDialogBoxParam(A/W)创建模态对话框

bpxDialogBoxIndirect创建模态对话框

bpxDialogBoxIndirectParam(A/W)创建模态对话框

bpxCreateDialog创建非模态对话框

bpxCreateDialogParam(A)创建非模态对话框

bpxCreateDialogIndirect创建非模态对话框

bpxCreateDialogIndirectParam(A/W)创建非模态对话框

bpxGetDlgItemText(A/W)获取对话框文本

bpxGetDlgItemInt获取对话框整数值

拦截剪贴板:

bpxGetClipboardData获取剪贴板数据

拦截注册表:

bpxRegOpenKey(A)打开子健(例:bpxRegOpenKey(A)if*(esp+8)=='****')

bpxRegOpenKeyEx打开子健(例:bpxRegOpenKeyExif*(esp+8)=='****')

bpxRegQueryValue(A)查找子健(例:bpxRegQueryValue(A)if*(esp+8)=='****')

bpxRegQueryValueEx查找子健(例:bpxRegQueryValueExif*(esp+8)=='****')

bpxRegSetValue(A)设置子健(例:bpxRegSetValue(A)if*(esp+8)=='****')

bpxRegSetValueEx(A)设置子健(例:bpxRegSetValueEx(A)if*(esp+8)=='****')

注意:“****”为指定子键名的前4个字符,如子键为“Regcode”,则“****”=“Regc”

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

功能限制拦截断点:

bpxEnableMenuItem禁止或允许菜单项

bpxEnableWindow禁止或允许窗口

bmsghMenuwm_command拦截菜单按键事件,其中hMenu为菜单句柄

bpxK32Thk1632Prolog配合bmsghMenuwm_command使用,可以通过这个断点进入菜单

处理程序

应用示例:

CALL[KERNEL32!K32Thk1632Prolog]

CALL[......]<--由此跟踪进入菜单处理程序

CALL[KERNEL32!K32Thk1632Epilog]

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

拦截时间:

bpxGetLocalTime获取本地时间

bpxGetSystemTime获取系统时间

bpxGetFileTime获取文件时间

bpxGetTickCount获得自系统成功启动以来所经历的毫秒数

bpxGetCurrentTime获取当前时间(16位)

bpxSetTimer创建定时器

bpxTimerProc定时器超时回调函数

拦截文件:

bpxCreateFileA创建或打开文件(32位)

bpxOpenFile打开文件(32位)

bpxReadFile读文件(32位)

bpxWriteFile写文件(32位)

bpx_lcreat创建或打开文件(16位)

bpx_lopen打开文件(16位)

bpx_lread读文件(16位)

bpx_lwrite写文件(16位)

bpx_hread读文件(16位)

bpx_hwrite写文件(16位)

拦截驱动器:

bpxGetDrivetype(A/W)获取磁盘驱动器类型

bpxGetLogicalDrives获取逻辑驱动器符号

bpxGetLogicalDriveStringsA(W)获取当前所有逻辑驱动器的根驱动器路径

拦截狗:

bpio-h378(或278、3BC)R378、278、3BC是并行打印端口

bpio-h3F8(或2F8、3E8、2E8)R3F8、2F8、3E8、2E8是串行端口

+++++++++++VB程序专用断点:++++++++++

bp__vbaFreeStr偶发现了VB杀手断点.不管是重起验证.还是有错误提示的VB..下这个断点

通杀

bpxmsvbvm50!__vbaStrCmp比较字符串是否相等

bpxmsvbvm50!__vbaStrComp比较字符串是否相等

bpxmsvbvm50!__vbaVarTstNe比较变量是否不相等

bpxmsvbvm50!__vbaVarTstEq比较变量是否相等

bpxmsvbvm50!__vbaStrCopy复制字符串

bpxmsvbvm50!__vbaStrMove移动字符串

bpxMultiByteToWideCharANSI字符串转换成Unicode字符串

bpxWideCharToMultiByteUnicode字符串转换成ANSI字符串

上面的断点对应VB5程序,如果是VB6程序则将msvbvm50改成msvbvm60即可

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载入脱壳后的程序,在命令行输入:bpxhmemcpy,然后回车,会弹出程序运行调用

的所有的函数,在每个

函数上设置好断点!说明:我破VB程序喜欢用这个断点设置方法,通过一步步跟踪,基本

可以把握程序保护的

思路,所以我破VB程序基本用这个断点,当然你可以用其它的断点,只要能找到关键,任

何断点都是用意义的

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

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

替换

因为:VB,用的字来存放提示还有加了点东东,我们用的工具一般是字节分析。换成„22222‟

之类的就是字节

了,用静态分析,就有你该的串了。GetVBRes(网上很多,自己下吧)

第二(没有提示):用vbde这个工具(不知道,有没有用过DEDE,是一样思路),主要是

找出破解的按钮窗口

的位置,来进行跟踪。

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

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

offsets0x16B6C-0x16B6D

修改机器码为:98F4

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

VB程序的跟踪断点:

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

MultiByteToWideChar,

rtcR8ValFromBstr,

WideCharToMultiByte,

__vbaStrCmp

__vbaStrComp

__vbaStrCopy

__vbaStrMove

__vbaVarTstNe

rtcBeep

rtcGetPresentDate(时间API)

rtcMsgBox

=========

时间限制断点:

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

CompareFileTime

GetLocalTime

GetSystemTime

GetTimeZoneInformation

me()

()

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

VB断点查找方法

1,VB6.0编写,OD载入程序调出注册窗口,alt+e调出可执行模块窗口找到

X:

双击,在ctrl+n调出窗口找到,名称XXXXXXE区段=ENGINE导出__vbaVarMove双击来

到下面地址(可以直接在命

令行bp__vbaVarMove)

回到程序注册窗口点注册被拦断在刚才下断的地址,断后在ctrl+F9,F8回

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

bprtcMsgBox

堆栈友好提示

确定注册失败按钮返回。接着向上找出点注册按钮执行的代码第一句,可以吗?当然行,根

据我们知道程序员

写一个事件执行的代码是如这种,

各种语言都差不多。

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

bprtcMsgBox

任意填入伪注册码9999999999999999999

确定后中断

堆栈友好提示

确定注册失败按钮返回。

W32Dasm反汇编程序,Shiht+F12

4,VB中的messagebox是一个消息框,汇编中用rtcMsgBox下断点.用olldbg载入程序,Alt+e,

在可执行文件模块中

找到,双击它,

在代码窗口点右键-搜索-当前模块中的名称中的rtcMsgBox函数,双击它,在6A362F2955

PUSHEBP这一句双击下

断点,关掉多余的窗口,只留下

cpu调试主窗口,F9运行程序,点?号按钮,随便输入987654321后,回车后立即中断,然后Ctrt+f9

执行到返回地址,

因为这是msvbvm60的领空,

我们要回到程序领空.秘密记事本弹出message错误提示信息,点确定,向上看,再按F8就回到

5,为MicrosoftVisualBasic6.0。先用SmartCheck找到程序比较注册码点,

6,用vb常用比较断点

vbastrcmp

vbastrcomp

vbavartsteq

在od中设断点找注册码

7,用Od载入程序,运行,填入上面的注册码和顺序号。在Od中下断点,Alt+E,双击Msvbvm60

运行库,右键-搜

索当前模块中的名称,找到Vbastrcmp,双击下断点。

--------------------------

注意:VB程序仍然可以使用普通API函数,只要函数“最终”CALL了这个函数

上面的断点对应VB6程序,如果是VB5程序则将msvbvm60改成msvbvm50即可

★注意:上面所列函数末尾有带“A”的,有带“W”的,有不带后缀的;一般说来,如果函数

同时可以有后缀

也可以没有后缀(形如:MessageBox(A/W)),则不带后缀的表示16位的函数(MessageBox),

带后缀的

(MessageBoxA、MessageBoxW)表示32位的函数;通常优先使用带后缀(A或W)的断

点,带A后缀的一般用于

WIN9X系统,而带W后缀的一般用于NT系统;如果函数没有任何后缀,则表示这是个

通用的跨平台的API函数。

更多推荐

msvbvm60 dll