挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
游戏交易就上寄售网-专注稳定-诚信赢天下玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击
→入驻S9企业发卡网各种全黑号辅助群:475351077 ██【我要租此广告位】██.
.. .
查看: 3591|回复: 0
打印 上一主题 下一主题

[VB例程源码] 关于VB P-code的调试方法

[复制链接]
6高级会员
1050/1100

1050

积分

346

主题

7

听众
已帮网友解决0 个问题
好评
0
贡献
704
海币
3332
交易币
0
跳转到指定楼层
楼主
发表于 2017-6-3 10:57:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


VB P-code的调试方法
P-code伪编码,用od太费事,需用到WKTVBDebugger
办法1:
把cm放到wktv目录下面,翻开,运行
机器码与指令:
BranchF:     机器码1C  相似jnz/jne   假如仓库为0就跳            
BranchT:     机器码1D  相似je/jz       假如仓库为-1就跳
Branch:       机器码1E  相似jmp        无条件跳
单击‘高档信息’或‘Analize BranchX' 可看到当时进程一切跳转位置
EqVarBool:  机器码33   对比指令,依据成果将0或-1压入仓库
ConcatStr:  机器码2A    字符串衔接指令 ,此指令单步盯梢时会在日志窗口留下相应成果,可ctr+O在此处下断
LitI2_Byte:   机器码F4    将数据压入仓库
FLdZeroAd/CVarStr:取字符串指令,特点同ConcatStr

办法2:
也可联系VB Decompiler找到if地址,(或直接在这里推导算法),个人喜爱用这种办法直接推导算法
去od的dump窗口找这个地址,把1C改成1D即可爆炸

办法3:
VBParser先分析一下,
然后倒入od,在要害处下内存断点,单步跟

现在用办法2举个栗子:
cm导入vb decompiler:


  1. Dim var_11C As Variant
  2.   Dim var_176 As Integer
  3.   loc_40E28C: If (Me.txtname.Text = vbNullString) Then
  4.   loc_40E2B0:   MsgBox("You have to enter you name first.", &H40, "Error", var_FC, var_11C)
  5.   loc_40E2C0:   Exit Sub
  6.   loc_40E2C1: End If
  7.   loc_40E2E1: If (Me.txtkey.Text = vbNullString) Then
  8.   loc_40E305:   MsgBox("You have to enter a key first.", &H40, "Error", var_FC, var_11C)
  9.   loc_40E315:   Exit Sub
  10.   loc_40E316: End If
  11.   loc_40E336: If (Me.txtkey.Text = vbNullString) Then
  12.   loc_40E35A:   MsgBox("You have to enter at least 5 chars.", &H40, "Error", var_FC, var_11C)
  13.   loc_40E36A:   Exit Sub
  14.   
  15. loc_40E36B: End If                                                                                                                  
  16.                                                                                                        上面是查看name和key是否为空且name必须长度大于5
  17.   loc_40E393: For var_14C = 1 To CVar(Len(Me.txtname.Text)): var_12C = var_14C 'Variant                变量12c=变量14c
  18.   loc_40E3C1:   var_FC = Mid(CVar(Me.txtname.Text), CLng(var_12C), 1)                                  FC轮询name每一位
  19.   
  20. loc_40E3D5:   var_11C = var_94 &
  21. CVar(Asc(CStr(var_FC)))                                                         
  22.                                                                                                         变量94= name每一位变体,并组合,例如name为‘11111’那么变量94=‘4949494949’
  23.   loc_40E3D9:   var_94 = var_11C 'Variant                                                                        
  24.   loc_40E3EF: Next var_14C 'Variant
  25.   loc_40E3F5: ' Referenced from: 40E422
  26.   
  27. loc_40E404: If (Len(var_94) > 9)
  28. Then                                                                                       
  29.                                                                                                          变量94反复除以3.14直到变量94为9位数
  30.   loc_40E41E:   var_94 = Fix((var_94 / 3.141592654)) 'Variant                                            并赋值给变量94
  31.   loc_40E422:   GoTo loc_40E3F5
  32.   loc_40E425: End If
  33.   
  34. loc_40E449: var_94 = (var_94 Xor &H30F85678 - CVar(global_76))
  35. 'Variant                                    
  36.                                                                                                           变量94与30F85678异或,再减去全局变量76,通过其他函数可以查到全局变量,大家自己动手查查
  37.   loc_40E45A: For var_170 = 1 To 10: var_12C = var_170 'Variant
  38.   loc_40E489:   If (Me.txtkey.Text = global_52(CLng(var_12C))) Then                                             
  39.   loc_40E48C:   End If
  40.   loc_40E48F: Next var_170 'Variant
  41.   loc_40E4DE: If ((CVar(Me.txtkey.Text) - var_94) = CVar(Len(Me.txtname.Text))) Then                      密码-变量94=name长度,得密码
  42.   loc_40E502:   MsgBox("Wow, you have found a correct key!", &H40, "Correct key", var_FC, var_11C)
  43.   loc_40E533:   MsgBox("Mail me, how you got it: [email][email protected][/email] ", &H40, "Correct key!", var_FC, var_11C)
  44.   loc_40E550:   Me.Command2.Caption = "Exit"
  45.   loc_40E55B: Else
  46.   loc_40E567:   global_80 = (global_80 + 1)
  47.   loc_40E570:   var_176 = global_80
  48.   loc_40E579:   If (var_176 = 6) Then
  49.   loc_40E5B3:     If (MsgBox("-=Do you need a hint ?=-", &H24, "I can't stand it anymore", var_FC, var_11C) = 7) Then
  50.   loc_40E5B6:       Exit Sub
  51.   loc_40E5BA:     Else
  52.   loc_40E5DB:       MsgBox("Forget it.", &H40, "he, he...", var_FC, var_11C)
  53.   loc_40E5F0:       global_80 = 0
  54.   loc_40E5F3:     End If
  55.   loc_40E5F6:   Else
  56.   loc_40E5FC:     If (var_176 > 3) Then
  57.   
  58. loc_40E620:       MsgBox("Have you ever been trying to be successful in
  59. cracking my password ?", &H20, "Failed", var_FC, var_11C)
  60.   loc_40E633:     Else
  61.   loc_40E639:       If (var_176 <= 3) Then
  62.   loc_40E65D:         MsgBox("Sorry, wrong key.", &H40, "Failed", var_FC, var_11C)
  63.   loc_40E66D:       End If
  64.   loc_40E66D:     End If
  65.   loc_40E66D:   End If
  66.   loc_40E66D: End If
  67.   loc_40E677: Me.txtkey.SetFocus
  68.   loc_40E67F: Exit Sub
复制代码
CyberBlade.2.rar (26.39 KB, 下载次数: 4)


联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:windows下删除自身程序源码
下一篇:分享一个我前阵子找的大漠插件,有些游戏可实现后台按键
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-5-13 04:24 , Processed in 0.334642 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表