吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4677|回复: 4
收起左侧

[原创] 友信农资会员管理系统算法分析与注册机源码

[复制链接]
fywy 发表于 2014-3-20 21:03
【文章标题】: 友信农资会员管理系统算法分析与注册机源码
【软件下载】: 自已搜索吧
【操作平台】: WINXP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一、通过PEID查壳为无壳程序,编写语言为:Microsoft Visual C++ 5.0 [Overlay]
在安装目录下有很多PB*.dll文件,所以判断真正的编写训言为PB,因此我们使用shudepb来看看
二、打开软件,信息码为:WD-WCAPA0554239,此时输入注册码:12345678,点确定后有错误提示,“注册码不对,请重输!”
三、打开shudepb
文件-->读取EXE文件-->选择安装目录下的nzgl.exe-->打开
编辑-->展开所有项
编辑-->全局搜索-->“注册码不对,请重输!”
此时找到了这个信息
//clicked (none) returns long [pbm_bnclicked]
string r
string k
string k2
string sws

//Has been Shielded.
k2 = getid()
k = jmpass(k2)
k = trim(k)
PARENT.ii_count ++
IF PARENT.ii_count <= 5 THEN //5
IF PARENT.sle_1.text <> "" THEN //7
  r = trim(PARENT.sle_1.text)
  IF r = k THEN //10
   insert into xxh ( bz , mc ) values ( :k2 , :k )  USING sqlca;
   IF sqlca.sqlcode <> 0 THEN //13
    ROLLBACK USING sqlca;
    messagebox("失败","更新注册标志失败:" + sqlca.sqlerrtext)
    RETURN
   END IF //13
   COMMIT USING sqlca;
   registryset("HKEY_CURRENT_USER\software\友信软件","zjwxp888",regstring!,r)
   messagebox("恭喜","软件已通过注册!")
   close(PARENT)
   open(w_login)
   GOTO LABEL_KENSHU_31
  END IF //10
  messagebox("注意","注册码不对,请重输!")
  PARENT.sle_1.setfocus()
  GOTO LABEL_KENSHU_31
END IF //7
messagebox("注意","注册码不能为空!")
PARENT.sle_1.setfocus()
ELSE //5
messagebox("注意","五次输入不正确,系统将退出!")
HALT CLOSE
END IF //5
LABEL_KENSHU_31:
RETURN
继续搜索
编辑-->全局搜索-->jmpass
//Public function jmpass (string as_password) returns string
//string as_password
string ls_passwdc
string ls_passwd
string ls_pwd
integer i
integer li_len
long ll_passwda

//Has been Shielded.
li_len = len(as_password)    //as_password就是我们的机器码
FOR i = 0 TO li_len - 1
ls_passwd = mid(as_password,i + 1,1)  //取字符
IF mod(i,2) = 0 THEN //6   //用i来判断是奇偶数来决定如何处理
  ll_passwda = asc(ls_passwd) - (i - 2)  //i如果是偶数则取其对应字符的asc,然后-(i-2)后的值赋给ll_passwda
ELSE //6
  ll_passwda = asc(ls_passwd) + (i + 2)  //i如果是偶数则取其对应字符的asc,然后+(i+2)后的值赋给ll_passwda
END IF //6
ls_passwdc = char(ll_passwda)  //把ll_passwda值转成对应的字符
ls_pwd = ls_pwd + ls_passwdc  //字符进行连接形成注册码
NEXT
RETURN ls_pwd
此时找到了这个
这个就是我们的源码

注册机源码:


Private Sub Command1_Click()
li_len = Len(Text1.Text)
For i = 0 To li_len - 1
    ls_passwd = Mid(Text1.Text, i + 1, 1)
    If i Mod 2 = 0 Then
        ll_passwda = Asc(ls_passwd) - (i - 2)
    Else
        ll_passwda = Asc(ls_passwd) + (i + 2)
    End If
    ls_passwdc = Chr(ll_passwda)
    ls_pwd = ls_pwd + ls_passwdc
Next
Text2.Text = ls_pwd
End Sub

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
bisoso 发表于 2014-3-20 21:07
提示: 作者被禁止或删除 内容自动屏蔽
taintitly 发表于 2014-3-20 21:15
头像被屏蔽
892644330 发表于 2014-3-20 21:30
头像被屏蔽
小举 发表于 2014-3-22 08:38
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 04:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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