• 标 题:关于聪明的搬运工 (1千字)
  • 作 者:1212
  • 时 间:2001-1-14 17:17:55
  • 链 接:http://bbs.pediy.com

boxman用blowfish兄介绍的dodi的vb discompiler反编译出来的代码就直接
可以作为注册码生成程序,很简单。不过此软件的注册还是需要从作者那里得到
一个文件---boxman.box应该是地图文件,非常重要了,要不然即便注册成功,
也没有用。下面就是注册程序。

Function fn0428 (ByVal p0052 As String, ByVal p0054 As String, p0056

As String, p0058 As Single) As String
Dim l005C As Integer
Dim l005E As Integer
Dim l0060 As Integer
Dim l0062 As String
Dim l0064 As Integer
Dim l0066 As Variant
Dim l006A As Variant
l005E = Len(p0054)
If  p0052 = "E" Then
    Randomize
    l0064 = (p0058 * 10000 Mod 255) + 1
    l0062 = Hex$(l0064)
    If  Len(l0062) = 1 Then
        l0062 = "0" + l0062
    End If
    For l006A = 1 To Len(p0056)
        l0060 = (Asc(Mid$(p0056, l006A, 1)) + l0064) Mod 255
        If  l005C < l005E Then l005C = l005C + 1 Else l005C = 1
        l0060 = l0060 Xor Asc(Mid$(p0054, l005C, 1))
        l0062 = l0062 + Format$(Hex$(l0060), "@@")
        l0064 = l0060
    Next
ElseIf p0052 = "D" Then
    l0064 = Val("&H" + Left$(p0056, 2))
    For l006A = 3 To Len(p0056) Step 2
        l0060 = Val("&H" + Trim(Mid$(p0056, l006A, 2)))
        If  l005C < l005E Then l005C = l005C + 1 Else l005C = 1
        l0066 = l0060 Xor Asc(Mid$(p0054, l005C, 1))
        If  l0066 <= l0064 Then
            l0066 = 255 + l0066 - l0064
        Else
            l0066 = l0066 - l0064
        End If
        l0062 = l0062 + Chr(l0066)
        l0064 = l0060
    Next
End If
fn0428 = l0062
End Function

现在破解真实越来越自动化了!
                                                arbiter

  • 标 题:我反编译的代码段 (2千字)
  • 作 者:chn-boy
  • 时 间:2001-1-16 10:39:24

Sub btn_Register_Click ()
Dim l001C As Integer
Dim l001E As Single
Dim l0020 As Integer
Dim l0022 As String
Dim l0024 As String
' Const mc003C = 1 ' &H1%
' Const mc003E = 2 ' &H2%
' Const mc0046 = 13 ' &HD%
' Const mc0048 = 19 ' &H13%
  If  Trim$(txt_Name.Text) = "" Or Len(Trim$(txt_Name.Text)) < 3 Then
    MsgBox "请输入用户名, 至少三字母!", 48, "聪明搬运工"
    Exit Sub
  End If
  If  Trim$(txt_Code.Text) = "" Then
    MsgBox "请输入注册码!", 48, "聪明搬运工"
    Exit Sub
  End If
  l001E = (Val(Mid$(Trim$(ssp_Id.Caption), 5, 3)) + Val(Right$(Trim$(ssp_Id.Caption), 3))) / 2000
  l0024$ = ""
  For l0020% = 1 To Len(Trim$(txt_Code.Text))
    l0022$ = Mid$(Trim$(txt_Code.Text), l0020%, 1)
    If  l0022$ = "-" Then l0022$ = " "
    l0024$ = l0024$ + l0022$
  Next l0020%
  If  fn0428$("E", Trim$(ssp_Id.Caption), Trim$(txt_Name.Text), l001E) = l0024$ And fn0428$("D", Trim$(ssp_Id.Caption), l0024$, l001E) = Trim$(txt_Name.Text) Then
    If  Dir$("boxman.box") = "" Then
      If  frm_Main.mnu_Sound.Checked Then
        l001C% = extfn009B%("BOXUNDO.WAV", mc003C + mc003E)
      End If
      MsgBox "请向作者注册!", 48, "聪明搬运工"
      End
    End If
    If  frm_Main.mnu_Sound.Checked Then
      l001C% = extfn009B%("BOXWIN.WAV", mc003C + mc003E)
    End If
    gv0008% = 7
    frm_Main.mnu_Scenery(5).Enabled = True
    frm_Main.mnu_Scenery(6).Enabled = True
    frm_Main.mnu_Scenery(7).Enabled = True
    frm_Main.mnu_Scenery(8).Enabled = True
    gv00BC% = True
    MsgBox "注册成功!", 48, "聪明搬运工"
    frm_Main.Caption = "聪明搬运工(注册为" + " " + Trim$(txt_Name.Text) + " " + ")"
    Close
    Open "boxman.box" For Random As #1 Len = 1
    gv00BE% = LOF(1) \ (mc0046 + 1) \ (mc0048 + 1)
    gv00C0$ = "Level"
  Else
    If  frm_Main.mnu_Sound.Checked Then
      l001C% = extfn009B%("BOXUNDO.WAV", mc003C + mc003E)
    End If
    gv00BC% = False
    gv00CC% = gv00CC% + 1
    If  gv00CC% < 5 Then
      MsgBox "注册不成功!", 48, "聪明搬运工"
      Exit Sub
    Else
      MsgBox "五次注册不成功!", 48, "聪明搬运工"
      End
    End If
  End If
  Unload Me
End Sub

  • 标 题:这是注册码要满足的条件: (179字)
  • 作 者:1212
  • 时 间:2001-1-16 12:27:55

这是注册码要满足的条件:

fn0428$("E", Trim$(ssp_Id.Caption), Trim$(txt_Name.Text), l001E) = l0024$ And fn0428$("D", Trim$(ssp_Id.Caption), l0024$, l001E) = Trim$(txt_Name.Text)

  • 标 题:根据1212和chn-boy的帖子,我做出了算号器,代码见内: (662字)
  • 作 者:小 明
  • 时 间:2001-1-18 7:04:45

我有1.0的boxman.box,但每次运行仍要注册。是不是还有什么条件?望1212和chn-boy兄将反编译的方法告知我等菜鸟,或将弹出注册的这一段代码公布出来,以便大家能彻底破解之,谢谢!

Private Sub Command1_Click()
  Dim zz As Single
  zz = (Val(Mid(Trim(Text1.Text), 5, 3)) + Val(Right(Trim(Text1.Text), 3))) / 2000
  a = (zz * 10000 Mod 255) + 1
  b = Hex(a)
  c = Len(Text1.Text)
  d = 0
  If Len(b) = 1 Then b = "0" + b
  For i = 1 To Len(Text2.Text)
    e = (Asc(Mid(Text2.Text, i, 1)) + a) Mod 255
    If d < c Then d = d + 1 Else d = 1
    e = e Xor Asc(Mid(Text1.Text, d, 1))
    b = b + Format(Hex(e), "@@")
    a = e
  Next
  Text3.Text = b
End Sub

  • 标 题:我还是忍不住说两句吧!
  • 作 者:1212
  • 时 间:2001-1-18 11:58:41

这个游戏其实是Linux自代的一个小游戏的翻版
如果你非常喜欢这个游戏的话装一个Blue Point Linux
或Xteam Linux ,Read Hat的不知道有没有带
全世界的人都可以为他设计关卡,当然关卡是完全免费的
而且关卡可以不断下载的。
而且我认为它的关卡绝对是万里挑一的,设计的很科学

同时我也觉得我们中国的个人软件缺乏开放性,似乎从写软件
一开始就一心想着赚钱,这种心态下很难写一个好软件的,
就拿我们讨论的这个软件来讲吧,

游戏的创意是别人的
关卡的设计也是别人的
作者用VB盗版了一个就想方设法去要钱,
也不照照镜子看看自己