我用两种方式达到解狗的目的
1)修改程序中的关键的用于判断的立即数,以及通过修改指针替换某些关键变量,最终满足判断条件(无论用什么手段,达到目的就得了呗)。
2)修改狗的驱动DLL,这种方法大众化一些。
================== hasp dll and its API inferface ===========
' Module2
Option Explicit
Declare Sub extsub258 Lib "haspmsw3.dll" Alias "hasp" (ByVal p1%, ByVal p2%,
ByVal p3%, ByVal p4%, ByVal p5%, p6%, p7%, p8%, p9%)
Declare Function extfn290 Lib "haspmsw3.dll" Alias "HASPOFF" () As Integer
Declare Function extfn2C8 Lib "haspmsw3.dll" Alias "HASPSEG" () As Integer
Sub sub300 ()
gv0274 = gc025C
Call extsub258(gv0274, gv0276, gv0278, gv027A, gv027C, gv027E%,
gv0280%, gv0282%, gv0284%)
End Sub
Function fn338 () As Integer
gv0274 = gc025A
Call extsub258(gv0274, gv0276, gv0278, gv027A, gv027C, gv027E%,
gv0280%, gv0282%, gv0284%)
fn338 = gv027E%
End Function
Function fn370 () As Integer
If fn338() = 0 Then
gv0252 = MsgBox("Illegal Installation" & gv024E
& "Contact Smart Vision (Asia) Ltd" & gv024E & "Tel: 23143193",
16, "Happy Baby 2.0")
fn370 = 0
Exit Function
End If
gv0276 = 1
Call sub300
If gv027E <> -6693 Or gv0280 <> 32541 Or gv0282 <>
-6787 Or gv0284 <> 1918 Then
gv0252 = MsgBox("Cannot Take Photo!" & gv024E
& "Invalid Protection Key" & gv024E & "Contact Smart Vision (Asia)
Ltd" & gv024E & "Tel: 23143193", 16, "Happy Baby 2.0")
fn370 = 0
Exit Function
Else
gv0274 = gc025E
gv027E% = 1
gv0280% = -1
Call extsub258(gv0274, gv0276, gv0278, gv027A, gv027C,
gv027E%, gv0280%, gv0282%, gv0284%)
If gv0282% <> 0 Then
gv0252 = MsgBox("Cannot Take Photo!"
& gv024E & "Credit Read Error" & gv024E & "Contact Smart Vision
(Asia) Ltd" & gv024E & "Tel: 23143193", 16, "Happy Baby 2.0")
fn370 = 0
Else
If gv0280% = 0 Then
gv0252 = MsgBox("Cannot
Take Photo!" & gv024E & "Purchase Credit from Smart Vision (Asia) Ltd"
& gv024E & "Tel: 23143193", 16, "Happy Baby 2.0")
fn370 = 0
Else
gv0254 = gv0280%
fn370 = 1
End If
End If
End If
End Function
Sub sub3A8 ()
If fn338() = 0 Then
gv0252 = MsgBox("Illegal Installation" & gv024E
& "Contact Smart Vision (Asia) Ltd" & gv024E & "Tel: 23143193",
16, "Happy Baby 2.0")
gv0258 = 0
Exit Sub
End If
gv0276 = 2
Call sub300
If gv027E <> -1712 Or gv0280 <> 30983 Or gv0282 <>
18370 Or gv0284 <> 388 Then
gv0252 = MsgBox("Invalid Protection Key" & gv024E
& "Contact Smart Vision (Asia) Ltd" & gv024E & "Tel: 23143193",
16, "Happy Baby 2.0")
gv0258 = 0
Exit Sub
Else
gv0274 = gc0260
gv027E% = 1
gv0280% = gv0254
Call extsub258(gv0274, gv0276, gv0278, gv027A, gv027C,
gv027E%, gv0280%, gv0282%, gv0284%)
If gv0282% <> 0 Then
gv0252 = MsgBox("Credit Write Error"
& gv024E & "Contact Smart Vision (Asia) Ltd" & gv024E & "Tel:
23143193", 16, "Happy Baby 2.0")
gv0258 = 0
Else
gv0258 = 1
End If
End If
End Sub
======================= Application =======================
' MCISTART.FRM
Option Explicit
Dim m001A As String
Dim m001E
Dim m0020 As String
Dim m0024 As String
Dim m0028 As String
Dim m002C As String
Dim m0030 As String
Dim m0034 As Integer
Dim m0036 As Integer
Dim m0038 As Integer
Dim m003A As Integer
Dim m003C As Integer
Dim m0040 As String * 1
Dim m0044 As String * 1
Dim m0048 As String * 2
Dim m004C As String * 1
Const c00BC = 2 ' &H2%
Const c00CC = 1 ' &H1%
Const c00DC = 1 ' &H1%
Const c00DE = 1 ' &H1%
Const m00E2 = 0 ' &H0%
Const m00E4 = 0 ' &H0%
Sub Com_event0000 ()
....
If gv0256 = 1
Then ; 改0000359e, e8 -> ea
gv0258
= gv0254 - 1 ; 原来是gv0254 = gv0254 - 1
Call sub3A8
; 如果再改3596, e8-> ea
If
gv0258 = 1 Then ; 则指令为gv0258 = gv0258 - 1
For m001E = 1 To 5000
DoEvents ; 如果改 e8 -> ec
Next m001E ; 则为 gv0252 = gv0254 - 1
InfSys.Recordset.Edit
If Val(SerialNext.Text) = 9999 Then
SerialNext.Text = "1"
Else
SerialNext.Text = Str$(Val(SerialNext.Text) + 1)
End If
InfSys.Recordset.Fields("NextSerial") = Val(SerialNext.Text)
InfSys.Recordset.Update
Else
Kill "C:\INFSYS\UPLOAD\J" + m0048 + Format$(SerialNext.Text, "0000")
+ "A.JPG"
Kill "C:\INFSYS\UPLOAD\J" + m0048 + Format$(SerialNext.Text, "0000")
+ "B.JPG"
gv0252 = MsgBox("Error Saving Photo" & gv024E & "Contact Smart
Vision (Asia) Ltd" & gv024E & "Tel: 23143193", 16, "Happy Baby 2.0")
End If
....
End Sub
=============================================================
- 标 题:帖一个类似的 (5千字)
- 作 者:a.out
- 时 间:2001-10-25 17:10:16
- 链 接:http://bbs.pediy.com