飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6753|回复: 7

[原创] 与P-code 亲密接触3

[复制链接]
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2006-1-16 13:38:43 | 显示全部楼层 |阅读模式
    【破文标题】与P-code 亲密接触3
    【破文作者】飘云[PYG]
    【作者邮箱】piaoyun04@163.com
    【作者主页】www.chinapyg.com
    破解工具】Peid0.94,WKTVBDE,VB
    【破解平台】Win9x/NT/2000/XP
    【软件名称】VB5CRKME
    【软件大小】9.5kb
    【原版下载】论坛下载
    【保护方式】用户名+注册码
    ------------------------------------------------------------------------
    【分析过程】
    WKTVBDE 打开程序 并下好断点(具体怎么操作,请看<<与P-code 亲密接触1>>)
    输入注册信息:
    ******************
    name:piaoyun
    serial:123456789
    ******************
    F8跟踪吧>>>>>:


    004023FC: 04 FLdRfVar 0012EC54h
    004023FF: 21 FLdPrThis 00149938h
    00402400: 0F VCallAd FrmCrkMe.PWNameTxt           //定位到用户名输入框
    00402403: 19 FStAdFunc
    00402406: 08 FLdPr
    00402409: 0D VCallHresult get__ipropTEXTEDIT      //取得内容
    0040240E: 6C ILdRf 00000000h
    00402411: 1B LitStr: ''
    00402414: 30 EqStr                                //判断是否为空字符串?
    00402416: 2F FFree1Str
    00402419: 1A FFree1Ad
    .
    .
    .
    .
    .
    中间一些判断语句,省略掉!                        

    00402456: 0F VCallAd FrmCrkMe.PWNameTxt
    00402459: 19 FStAdFunc
    0040245C: 08 FLdPr
    0040245F: 0D VCallHresult get__ipropTEXTEDIT
    00402464: 6B FLdI2
    00402467: E7 CI4UI1
    00402468: 3E FLdZeroAd
    0040246B: 46 CVarStr
    0040246E: 04 FLdRfVar 0012F2D8h
    00402471: 0A ImpAdCallFPR4 rtcLeftCharVar on address 7402B8C4h   
    00402476: F5 LitI4: -> 1h 1            //参数1
    0040247B: 04 FLdRfVar 0012F2D8h
    0040247E: 04 FLdRfVar 0012F2C8h
    00402481: 0A ImpAdCallFPR4 rtcRightCharVar on address 7403238Bh   
    00402486: 04 FLdRfVar 0012F2C8h       //上面几句意思就是取一位字符
    00402489: 60 CStrVarTmp
    0040248A: 31 FStStr
    0040248D: 1A FFree1Ad
    00402490: 36 FFreeVar -> 3
    00402499: 6C ILdRf 0016CDDCh
    0040249C: 0B ImpAdCallI2 rtcAnsiValueBstr  //取ascii码==>>asc(char$)
    004024A1: 70 FStI2 0012F2B6
    004024A4: F5 LitI4: -> 2h 2         //参数2
    004024A9: 6B FLdI2
    004024AC: 44 CVarI2
    004024AF: 04 FLdRfVar 0012F2D8h
    004024B2: 0A ImpAdCallFPR4 rtcRightCharVar //从ascii值(10进制)的右边取2位字符
    004024B7: 04 FLdRfVar 0012F2D8h
    004024BA: 60 CStrVarTmp
    004024BB: 31 FStStr
    004024BE: 36 FFreeVar -> 2
    004024C5: 6C ILdRf 00172984h
    004024C8: 08 FLdPr
    004024CB: 8A MemLdStr
    004024CE: 2A ConcatStr                    //连接字符
    004024CF: 23 FStStrNoPop
    004024D2: 08 FLdPr
    004024D5: FD Lead2/MemStStrCopy
    004024D9: 2F FFree1Str 0015F358h
    004024DC: 04 FLdRfVar 0012F306h
    004024DF: 64 NextI2: jump to 00402452     //跳到00402452 处循环,终止条件为:len(name)       

    //**************************************************************************
    上面算法:依次取用户名ascii值,然后从右边开始取2位字符,按照从右向左顺序排列~~       
    例如:piaoyun
    p:ascii=112  右边取2位:12
    排列:............12       
    //**************************************************************************                                                  

    004024E4: 04 FLdRfVar 0012F2FCh
    004024E7: 21 FLdPrThis 00149938h
    004024E8: 0F VCallAd FrmCrkMe.PWSerialTxt        //定位到注册码输入框
    004024EB: 19 FStAdFunc
    004024EE: 08 FLdPr
    004024F1: 0D VCallHresult get__ipropTEXTEDIT 008FBAD4   //获取内容
    004024F6: 3E FLdZeroAd
    004024F9: 46 CVarStr
    004024FC: 5D HardType
    004024FD: F5 LitI4: -> Ah 10                     //参数10,注意啦!!
    00402502: 08 FLdPr
    00402505: 06 MemLdRfVar
    00402508: 4D CVarRef:
    0040250D: 04 FLdRfVar 0012F2E8h
    00402510: 0A ImpAdCallFPR4 rtcLeftCharVar        //又一个左截取函数(从注册码左边开始取10个字符)
    00402515: 04 FLdRfVar 0012F2E8h
    00402518: 33 EqVarBool                           //比较了~
    0040251A: 1A FFree1Ad
    0040251D: 36 FFreeVar -> 2
    00402524: 1C BranchF 004025CF ?                 //关键跳转!  跳就挂了!    暴力破解:将1c改为1d
    00402527: 1B LitStr: '==R/E/G/I/S/T/E/R/E/D=='  //已注册标志
    0040252A: 21 FLdPrThis 00149938h
    0040252B: 0F VCallAd FrmCrkMe.Command1
    0040252E: 19 FStAdFunc
    .
    .
    .
    .

    ------------------------------------------------------------------------
    【算法总结】

    依次取用户名ascii值,然后从右边开始取2位字符,按照从右向左顺序排列~
    最后从左边开始截取10个字符就是注册码了~~
    如,我的注册信息:
    NAME:piaoyun
    SERIAL:1017211197

    KeyGen
    Private Sub Command1_Click()
    Dim name, sn As String
    name = Text1.Text
    If Len(name) <> 0 Then
    For i = Len(name) To 1 Step -1
        sn = sn & Right(Asc(Mid(name, i, 1)), 2)
        Next
        Text2.Text = Left(sn, 10)
        Else
        Text2.Text = "Please Input Your Name!"
        End If
    End Sub

    ------------------------------------------------------------------------
    【版权声明】本文纯属技术交流,转载请注明作者信息并保持文章的完整,谢谢!

    与P-code亲密接触3.rar

    8.1 KB, 下载次数: 84, 下载积分: 飘云币 -2 枚

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-1-16 17:07:27 | 显示全部楼层
    谢谢,飘云提供教程!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-2-26 08:32
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    发表于 2006-1-29 23:52:01 | 显示全部楼层
    谢谢!辛苦了。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-7-10 20:51:52 | 显示全部楼层
    呵呵~老大的专辑3原来在这。

    一直在找~

    要是老大也来个语音动画更快哉~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-9-24 17:34:47 | 显示全部楼层
    借签学习/:014
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-18 01:07:03 | 显示全部楼层
    谢谢。学习中。。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-9-27 09:45:11 | 显示全部楼层
    谢谢,飘云提供教程
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-2-27 00:08
  • 签到天数: 74 天

    [LV.6]常住居民II

    发表于 2016-5-12 22:20:53 | 显示全部楼层
    下载学习了。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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