VB的拆解习题
该程序是VB5程序,下面用两种方法简述一下。 |
习题二 chap7-02 序列号保护;难度:易。
名称
: VB5-CrackMe 1.0 by Blaster99 [DCD]
本篇教学只是为初学者熟悉 SmartCheck 用法,你应该看过前一节的简单介绍,才能较好理解。 首先运行 SmartCheck ,按上一节配制好, 用 SmartCheck 装载该程序,(如 setting 中 Error Detection 的 "Report error immediately" 选上,将出现错误报告,此时按 acknowledge 即可,建议不要选);点击 Registrieren ,你将被告知注册出错(对话框中不知是哪国鸟语 ^-^ )。 好了,你现在停止此程序。
在 SmartCheck 主窗口下,点击 Commang1_Click 中的“+”号,将出现 3 行:
Text1.Text Text1.Text MsgBox(VARIANT:String:"Error!..."...)...
再也没有多余的信息了,看 Text1.tex 这一行右边窗口空空如也,该如何办呢? 光标点击选中第一行的 Text1.tex ,在 SmartCheck 菜单中 "View" → "Show All Events" 现在你将看到许多信息,如果没有,说明你的 SmartCheck 配制有问题,重新配制一下。 立即把光标移到 Text1.Text 的下一行,你将看到我上节提到的:
__vbaStrCmpreturns... 在右窗口: String:"2G83G35H...",String:"12345678..."
哇,找到了,这就是你找的: 2G83G35Hs2
如果你读过我前面的文章,你将理解 __vbaStrCmp 是个非常普通的断点函数。
另外:在
SOFTICE 下,你可设断
: 拦截后,跟进去,进去两三个CALL后,你会看到一个 RCMP....比较指令,在这里,下指令: D EDI 你将在内存里看到序列号,它是 widechar 格式:2.G.8.3.G.3.5.H.s.2 ===================================================================================================== |
1、这是VB5程序,保护很简单; |
这是VB6程序
|
这是
VB6
程序 |
程序 : Visual Basic 6
|
类型
: Visual Basic 5
工具 :SmartCheck 在 SmartCheck 下运行该程序,在你输入字符于注册框前,看看 SmartCheck 主窗口,会发现 Crackmefrm_Load ,我们应有随时观看 SmartCheck 的习惯。 展开 Crackmefrm_Load : Double (3.15751e+008) -> Long (315751288) Ok... 这里较特殊,我们很少在输入序列号前看到数字,我们先记下。 键入 "123456789" 点击 "Check". 然后展开 Checkcmd_Click String("123456789")-> Double(1.23457e+008) Double(-1.92294e+008)->Double(-1.92294e+008) Ok. 数字 -1.92294e+008 从哪里来 ??? ( 这时,开动我们的第六感觉,想想 ????) 用 "123456789" 减 315751288 ,将得到: -19229449 ,然后转换成双精度实数 -1.92294e+008 你们试一下键入 315751288 。 哈 .. 成功,我总感觉 crack 有时想搞侦破一样,去猜,去试,再去验证 ....... 这时你再次展开 Checkcmd_Click ,会看到: String("315751288")-> Double(3.15751e+008) |
工具: SmartCheck
|
习题十 chap7-10 难