| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2092 人关注过本帖
标题:求助VB6代码
只看楼主 加入收藏
tanky2
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-8-2
收藏
 问题点数:0 回复次数:6 
求助VB6代码
求大神帮忙看下以下代码意思,在线等,多谢了!
Me = Me + 00000038h
var_eax = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_2C)
var_24 = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_2C)
搜索更多相关主题的帖子: VB6 代码 在线 
2017-08-02 11:52
tanky2
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-8-2
收藏
得分:0 
全部代码如下,请大神帮忙
  Dim Me As Me
  Dim var_28 As Variant
loc_005AFB57:   var_1C = String$(255, &H423C84)
loc_005AFB76:   var_eax = GetSystemDirectory(var_1C, 173)
loc_005AFB8B:   var_ret_2 = var_20
  loc_005AFB9B: If %ecx <> "" <> 0 Then edx = 1
loc_005AFBB3:   If var_B0 = 0 Then GoTo loc_005AFFF3
  loc_005AFBC7: Me = Me + 00000034h
  loc_005AFBDA: InStr(0, 1, var_1C, global_00423C84) = InStr(0, 1, var_1C, global_00423C84) - 00000001h
loc_005AFC17:   var_20 = Right$(Left$(var_1C, InStr(0, 1, var_1C, global_00423C84)), 1)
loc_005AFC37:   If (var_20 = global_00423F80) = 0 Then GoTo loc_005AFC64
loc_005AFC59:   Me.SaveProp 'Ignore this = Me.SaveProp & global_00423F80
loc_005AFC64:   'Referenced from: 005AFC37
  loc_005AFC6A: Me = Me + 00000034h
  loc_005AFC80: var_20 = Me+00000034h & "sysshs.dll"
loc_005AFC86:   Me.GetPalette 'Ignore this = Me.SaveProp & global_00423F80
  loc_005AFCBC: var_28 = Global.App
  loc_005AFCEA: var_20 = Global.Path
loc_005AFD15:   var_18 = var_20
  loc_005AFD3B: var_20 = Dir(Me.GetPalette 'Ignore this, 0)
loc_005AFD4F:   edi = (var_20 = global_00422B1C) + 1
loc_005AFD5A:   If (var_20 = global_00422B1C) + 1 = 0 Then GoTo loc_005AFF5C
loc_005AFD71:   var_20 = Right$(var_20, 1)
loc_005AFD91:   If (var_20 = global_00423F80) = 0 Then GoTo loc_005AFDA9
loc_005AFDA7:   var_18 = var_18 & global_00423F80
loc_005AFDA9:   'Referenced from: 005AFD91
loc_005AFDBE:   var_30 = var_18 & "sysshs.dll"
loc_005AFDD3:   var_20 = Dir(var_18 & "sysshs.dll", 0)
loc_005AFDFC:   If (var_20 = global_00422B1C) = 0 Then GoTo loc_005AFE48
loc_005AFE2F:   FileCopy var_18 & "sysshs.dll", Me(14) & "sysshs.dll"
loc_005AFE48:   'Referenced from: 005AFDFC
loc_005AFE69:   var_20 = Dir(Me(15), 0)
loc_005AFE7D:   esi = (var_20 = global_00422B1C) + 1
loc_005AFE88:   If (var_20 = global_00422B1C) + 1 = 0 Then GoTo loc_005AFF5C
  loc_005AFE95: Me(15) = 00422B1Ch
  loc_005AFEE3: MsgBox("系统缺少文件,不能继续!", 16, var_48, var_58, var_68)
loc_005AFF2D:   Set var_28 = Me
  loc_005AFF35: var_eax = Global.Unload var_28
loc_005AFF56:   End
loc_005AFF5C:   'Referenced from: 005AFD5A
  loc_005AFF82: var_28 = Global.Screen
  loc_005AFFA4: Global.MousePointer = 0
loc_005AFFE5:   var_eax = Proc_4_1_474520(var_28, var_28, var_28)
loc_005AFFF1:   GoTo loc_005B005B
loc_005AFFF3:   'Referenced from: 005AFBB3
  loc_005B003A: MsgBox("error", 0, var_48, var_58, var_68)
loc_005B005B:   'Referenced from: 005AFFF1
loc_005B0063:   GoTo loc_005B009D
loc_005B009C:   Exit Sub
loc_005B009D:   'Referenced from: 005B0063
End Sub

Private Sub txtName_Change() '5B00E0
  Dim Me As Variant
  Dim var_20 As TextBox
loc_005B0151:   txtGet.Text = global_00422B1C
loc_005B0191:   var_1C = txtName.Text
loc_005B01B2:   var_28 = var_1C
loc_005B01E6:   var_18 = Trim(0)
loc_005B0211:   If Len(var_18) < 4 Then GoTo loc_005B0269
loc_005B022B:   var_eax = Proc_34_0_5B02D0(var_18, var_20, Me)
loc_005B0235:   var_1C = Proc_34_0_5B02D0(var_18, var_20, Me)
loc_005B0239:   txtGet.Text = var_1C
loc_005B0269:   'Referenced from: 005B0211
loc_005B0275:   GoTo loc_005B029D
loc_005B029C:   Exit Sub
loc_005B029D:   'Referenced from: 005B0275
End Sub

Private Sub cmbCancel_Click() '5AEF00
  Dim Me As Me
  Dim global_005B617C As Global
loc_005AEF6B:   var_2C = global_005B617C
loc_005AEF6E:   Set var_18 = Me
  loc_005AEF79: var_eax = Global.Unload var_18
loc_005AEFA2:   GoTo loc_005AEFAE
loc_005AEFAD:   Exit Sub
loc_005AEFAE:   'Referenced from: 005AEFA2
End Sub

Private Sub cmdOK_Click() '5AEFD0
  Dim Me As Me
  Dim var_C4 As Variant
  Dim var_CC As TextBox
loc_005AF035:   On Error Resume Next
loc_005AF075:   var_28 = txtName.Text
loc_005AF07D:   var_C8 = var_28
loc_005AF0BF:   var_EC = var_28
loc_005AF0D2:   var_44 = var_EC
loc_005AF10F:   var_CC = (Trim(var_EC) = &H422B1C)
loc_005AF13B:   If var_CC = 0 Then GoTo loc_005AF142
loc_005AF13D:   GoTo loc_005AFA38
loc_005AF142:   'Referenced from: 005AF13B
loc_005AF163:   var_C4 = var_38
loc_005AF17C:   var_28 = txtGet.Text
loc_005AF184:   var_C8 = var_28
loc_005AF1D4:   var_2C = "63Z8APBD8VYZ2M2P"
loc_005AF1F0:   var_44 = var_28
loc_005AF22D:   var_30 = txtSoftwareKey.Text
loc_005AF235:   var_D0 = var_30
loc_005AF283:   var_eax = Proc_34_4_5B1B70(var_4C, var_2C, var_C0)
loc_005AF28D:   var_34 = Proc_34_4_5B1B70(var_4C, var_2C, var_C0)
loc_005AF2A2:   eax = (var_34 = var_30) + 1
loc_005AF2A5:   var_D4 = (var_34 = var_30) + 1
loc_005AF2E8:   If var_D4 = 0 Then GoTo loc_005AF8C4
loc_005AF328:   var_28 = txtName.Text
loc_005AF330:   var_C8 = var_28
loc_005AF372:   var_F4 = var_28
loc_005AF385:   var_44 = var_F4
loc_005AF3B9:   var_30 = StrReverse(CStr(Left(var_F4, 20)))
  loc_005AF3D6: Me = Me + 00000038h
  loc_005AF3DA: var_eax = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_30)
  loc_005AF3DF: var_24 = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_30)
loc_005AF41F:   If var_24 = 0 Then GoTo loc_005AF614
loc_005AF45F:   var_28 = txtSoftwareKey.Text
loc_005AF467:   var_C8 = var_28
loc_005AF4A9:   var_F8 = var_28
loc_005AF4BC:   var_44 = var_F8
loc_005AF4F0:   var_30 = StrReverse(CStr(Left(var_F8, 20)))
  loc_005AF50D: Me = Me + 00000038h
  loc_005AF511: var_eax = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_30)
  loc_005AF516: var_24 = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_30)
loc_005AF556:   If var_24 = 0 Then GoTo loc_005AF614
loc_005AF58A:   var_5C = "YYYY-MM-DD"
loc_005AF5C0:   var_2C = StrReverse(CStr(Format(Date, Left(var_F8, 20))))
  loc_005AF5DD: Me = Me + 00000038h
  loc_005AF5E1: var_eax = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_2C)
  loc_005AF5E6: var_24 = Proc_34_6_5B3C80(Me+00000038h, var_C0, var_2C)
loc_005AF614:   'Referenced from: 005AF41F
loc_005AF621:   If var_24 = 0 Then GoTo loc_005AF748
loc_005AF62E:   var_94 = "services"
loc_005AF642:   var_84 = "services"
  loc_005AF6B6: DeleteSetting(", "services", var_88)
  loc_005AF722: MsgBox("  注册成功!请重起本系统  ", 48, Left(var_F8, 20), 10, 10)
loc_005AF743:   GoTo loc_005AF7CF
loc_005AF748:   'Referenced from: 005AF621
  loc_005AF7AE: MsgBox("注册失败,请确认注册码输入是否正确!  ", 16, Left(var_F8, 20), 10, 10)
loc_005AF7CF:   'Referenced from: 005AF743
  loc_005AF7E7: Me = Me + 00000038h
loc_005AF805:   var_eax = Proc_34_7_5B3F80(&H4008, "2000/11/22 15:50:10 AM", var_84)
loc_005AF85F:   Set var_38 = Me
  loc_005AF875: var_eax = Global.Unload var_38
  loc_005AF87A: var_C8 = Global.Unload var_38
loc_005AF8BF:   GoTo loc_005AFA38
loc_005AF8C4:   'Referenced from: 005AF2E8
  loc_005AF92A: MsgBox("注册码无效!  ", 16, Left(var_F8, 20), 10, 10)
  loc_005AF959: Global.LoadPictureOld %StkVar1 = Global.LoadPictureOld %StkVar1 + 0001h
  loc_005AF979: If Global.LoadPictureOld %StkVar1 <> 0 Then GoTo loc_005AFA38
loc_005AF9CB:   Set var_38 = Me
  loc_005AF9E1: var_eax = Global.Unload var_38
  loc_005AF9E6: var_C8 = Global.Unload var_38
loc_005AFA32:   End
loc_005AFA38:   'Referenced from: 005AF13D
loc_005AFA44:   GoTo loc_005AFA90
loc_005AFA8F:   Exit Sub
loc_005AFA90:   'Referenced from: 005AFA44
2017-08-02 12:35
tanky2
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-8-2
收藏
得分:0 
我是反编译过来,学习一下注册码验证
2017-08-02 13:29
lbq16888
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-8-12
收藏
得分:0 
想破解别人的注册部分吧,,,没人帮你的,自己慢慢搞吧。。
2017-08-13 19:04
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
我前面对着源码去看 反编译后的伪码,都郁闷的要吐血,还不如直接看汇编。
1 变量名以地址命名代替,有些变量会被吃掉
2 函数参数如果有数组,会被吃掉

用vb6的,没几位同时精通汇编的,也也看不太懂。

授人于鱼,不如授人于渔
早已停用QQ了
2017-08-13 22:27
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
loc_005AFCEA: var_20 = Global.Path

loc_005AFD15:   var_18 = var_20

loc_005AFDBE:   var_30 = var_18 & "sysshs.dll"

确定保存数据的文件名了。


loc_005AFE2F:   FileCopy var_18 & "sysshs.dll", Me(14) & "sysshs.dll"
这里复制了一份 。这里的参数感觉有问题。需要参考汇编

loc_005AFE69:   var_20 = Dir(Me(15), 0)
测试复制后的文件是否存在?


------
loc_005AF075:   var_28 = txtName.Text
loc_005AF07D:   var_C8 = var_28
loc_005AF0BF:   var_EC = var_28
loc_005AF0D2:   var_44 = var_EC
读txtName的值,保存在 4个变量里
loc_005AF10F:   var_CC = (Trim(var_EC) = &H422B1C)
loc_005AF13B:   If var_CC = 0 Then GoTo loc_005AF142
去掉空格后取长度,等于0 ,跳过程最后面

loc_005AF163:   var_C4 = var_38             右边变量从哪里冒出来的,汇编汇编在哪
loc_005AF17C:   var_28 = txtGet.Text        取 TxtGet 的值
loc_005AF184:   var_C8 = var_28
loc_005AF1D4:   var_2C = "63Z8APBD8VYZ2M2P"  '一个固定值,估计用来加密的
loc_005AF1F0:   var_44 = var_28              

loc_005AF22D:   var_30 = txtSoftwareKey.Text   取 txtSoftwareKey
loc_005AF235:   var_D0 = var_30

loc_005AF283:   var_eax = Proc_34_4_5B1B70(var_4C, var_2C, var_C0)
loc_005AF28D:   var_34 = Proc_34_4_5B1B70(var_4C, var_2C, var_C0)
调用函数,地址在 5B1B70 ,问题是这个 4C的变量 从里里冒出来的。
2C 是固定值
C0 又是从哪里冒出来的 。 汇编汇编呢

loc_005AF2A2:   eax = (var_34 = var_30) + 1            
loc_005AF2A5:   var_D4 = (var_34 = var_30) + 1     
loc_005AF2E8:   If var_D4 = 0 Then GoTo loc_005AF8C4
判断 var_34 = var_30 是否相等
Var_34 是函数 Proc_34_4_5B1B70 生成的注册码,
var_30 是输入的 txtSoftwareKey.Text

在这后面的语句是应该写入注册码用的。

破解:loc_005AF2E8 这里地址里的 修改跳转命令,让不跳转就是了

loc_005AF45F:   var_28 = txtSoftwareKey.Text
loc_005AF467:   var_C8 = var_28
loc_005AF4A9:   var_F8 = var_28
loc_005AF4BC:   var_44 = var_F8
loc_005AF4F0:   var_30 = StrReverse(CStr(Left(var_F8, 20)))
注册码,还是再次读取的输入的那个。最后一行,无法理解。被吃掉了变量。

程序进入时,还有一个地方需要破解,这段代码里没有。


授人于鱼,不如授人于渔
早已停用QQ了
2017-08-14 08:52
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
不要在这里下功夫了,反编译的成功率几乎 = 0,写一个注册码验证程序没有那么难吧。

请不要选我!!!
2017-08-14 14:18
快速回复:求助VB6代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038180 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved