老文章档案 · 2003 年

DFCG破解入门第十三课

破解教程 · 破解入门 · 2003-09-09 · 作者:人气: · 出处:赢政天下整理收藏)

如何破解VB5程式的密码保护

整理编译:我要[dfcg] woyao[dfcg](这个可是外国佬的东西啊!)

呵呵,这是一个破解VB5程式密码保护的快捷方法(甚至包括一些DLL动态链接库)

我现在假设你已有了SoftIce

首先让我们讨论一下VB5程式的结构

从机器的可执行代码开始吧,当你在一个系统上写你自己的代码时,叫源代码(你不可能直接用16进制编吧?尤其在WinXX的系统上),因为用编程语言来测试和调试要容易的多,在该阶段你的源代码要在机器上执行,有两种方式,第一种方式(慢)是取一行翻译一行执行,叫解释执行因为此时有一种可以将你的源代码翻译为机器能识别的形式的程式在运行,当然在程序执行最后也是可以完成一些任务的;第二种方式(快)是将整个源代码直接翻译为机器能识别的形式(机器不需再将程式取一行翻译一行再执行),这种方式叫编译执行,在运行时不需要任何别的程式做翻译工作!

微软又一次模糊了这个概念,或者说又在尽力欺骗!正象他们经常做的(总在隐藏真相!)

好了!让我们回到原话题—破解VB5的东西!(EXE或DLL)

VB5 程式是不会单独运行的!它总是需要MSVBm50.DLL来解释执行,即使微软说“现在VB的代码可以完全编译!” (BULL S.ITT!)

这意味着 EXE 或别的由VB5编译的东西将不得不调用MSVBm50.DLL来了解下一步该干什么!甚至在字串比较上!它调用一个函数或一段程序叫__VbaStrComp来进行比较 (你能相信吗?!!?)

可能你以前曾破解过Win9x下的东东,对如何设断也有了一定的思路,但自从VB5调用MSVBm50.DLL来解释执行程式后便行不通了(代码将不会按它自己写的方式进行处理,而是按MSVBm50.DLL解释的方式进行), 也使系统变得很慢!不过也使我们知道了函数 (GetDlgItemText),不管是16位或32位的都不会被使用了!或即使被使用了,也不会被连接到源程序中去!要记住,如果你想当程序员千万不要写VB程式!

这个也告诉我们,必须在softice目录下的softice.dat或winice.dat的exp部分加上MSVBm50.DLL, 你将不得不在该文件中加入下面一行:

EXP=C:\***你安装windows的目录***\System\MSVBm50.DLL

当你加完这一行后,你要重启机器

重启后...

运行要破解的程式,直到出现让你输入密码的对话框,按 CTRL+D 进入SoftIce

键入

bpx __vbaStrComp

该断点将拦住发生在VB5程式内的字串比较动作

好,现在按CTRL+X,你将回到VB程式中,键入一些字符并按回车,发生了什么!?!程式将被断住并回到 SoftIce中

清除所有断点,向下翻屏(用 CTRL+DownArrow) ,直到看到如下代码:

F003585: MOV ECX, [EBP+0C]

F003588: MOV EDI, [ECX-04]

F00358B: CMP EDI, ESI

在 F00358B处设一个断点(便是 CMP EDI, ESI 的位置),只需在该位置双击即可。 按 F5 返回程式,将在该位置拦住,在该点呼叫该函数的程式段将要比较的数据压入到内存中,结果是第一个位置存放源数据,其指针存在 EAX 中,第二个位置是目标数据,其指针在ECX中,要看这两处的数据,只需键入

D EAX

这个是查看EAX指向的数据,

D ECX

这个是查看ECX指向的数据...

如果你找到了你要找的,呵呵!清除断点,回到原程式,并填上找到的数据( Piece of cake!)如果没找到,不要灰心,再按一下 F5 ,因为你可能处在另一个字串比较处或在系统里(比如象变量存贮什么的!按了 F5 后你将拦在同一位置,此时键入

D EAX

D ECX

查看内存数据,你将发现寻找其密码是如此的容易!(如果没有再按F5)

这种方法可100% 的用于 Visual Basic5编译的程序(EXE, DLL, 我认为也可以用于OCX文件,但我从没试过!)

如果你不能发现你要找的,也可以在MSVBm50.DLL中别的地方下断

你可以停在该链接库中有比较操作的任何地方, 你也可以在拦住后看该链接库中所有的函数, 你只需键入:

(由于我也是刚接触SoftIce, 我只知道这样做是一种很快的方法)

EXP

这样将看到所有在系统链接库中的所有函数,当然也包含MSVBm50.DLL了,不过是列在最后了,因为我把MSVBm50.DLL给包含在 WinIce.Dat的最后了:

好了,下面是用来比较的几个主要的函数:

针对字串:

__vbaStrComp

__vbaStrCmp

__vbaStrCompVar

__vbaStrLike

__vbaStrTextComp

__vbaStrTextLike

针对变量:

__vbaVarCompEq

__vbaVarCompLe

__vbaVarCompLt

__vbaVarCompGe

__vbaVarCompGt

__vbaVarCompNe

.

.

我相信你会发现的更多,但在VB中比较的主要对象是字串!因为任何文本框返回的都是字串!(除非他们以值的方式取,不过不太可能的!),因为他们经常自以为是的把字母、数字、特殊符号都作为密码!这就导致结果便是字!

(出处:赢政天下整理收藏)

相关文章:

·5StarZip 2001 破解--初学者破解入门

·DFCG破解入门第一课

·DFCG破解入门第二课

·DFCG破解入门第三课

·DFCG破解入门第四课

·DFCG破解入门第五课

·DFCG破解入门第六课

·DFCG破解入门第七课

·DFCG破解入门第八课

·DFCG破解入门第九课

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史