飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2659|回复: 5

Throttle浮点算法注册

[复制链接]
  • TA的每日心情
    慵懒
    2024-4-15 20:47
  • 签到天数: 431 天

    [LV.9]以坛为家II

    发表于 2005-4-18 14:43:35 | 显示全部楼层 |阅读模式
    10:50 2005-4-18
    破解电脑报2003光盘软件Throttle
    这个软件是用来调整上网设置的,据说会使上网速度快200-300%
    能应用于各种操作系统

    用PECompact 1.68 - 1.84 -> Jeremy Collake加壳
    但是用Peid找到的OEP居然是假的!
    我不得不手动脱壳,这还是第一次。


    浮点数作为注册码
    我不得不再次翻阅有关浮点的资料,总算搞清了,我自已以为。
    破文在说明浮点运算上,可能让人看不明白,不过经过多次跟踪,我还是知道是什么意思了。



    破解人:wofan[OCN][PYG]


    OD载入,输入:
    name:wofan
    serial:123456789 后来证明这个假码是不合法的

    在这里下断:
    0047A0CE    .  BA 80A44700       mov edx,unpack.0047A480                          ;  ASCII "Name"

    因为论坛对文章长度有限制,不能发,只发注册机!!!


    从上面分析可知,注册码只与注册名的最后一个字符有关。

    我的注册码:
    注册名:wofan  长度为5
    最后一个是n,它的ASCII码是6E
    6E*5=226   226的十进制形式是550   
    变成5505 它的十六进制形式是1581
    翻个倍变成:2B02

    两个固定数:6 和 9BB2EB6A
    2B02×6=1020C
    2B02*9BB2EB6A=44F0A4D4 r 1A28  EAX=44F0A4D4  数太大,扩展到EDX中的是1A28
    1020C+1A28=11C34  放在EDX中
    EDX与EAX中的值连接起来,为
    11C3444F0A4D4
    它的十进制形式就是注册码的中间数:
    312485797209300

    这个中间数减去1000,就得到注册码,当然在输入注册码时,一定要输入它的浮点样式!!切切!!
    312485797209300-1000=312485797208300
    数一下它有多少位?这里是14位!
    那么填入注册框中的数据就是:
    312485797208300E+14



    我的注册名:wofan
    我的注册码:312485797208300E+14



    12:55 2005-4-18

    by wofan[OCN]

    附VB6注册机:
    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long        '函数声明,产生网络链接效果'

    Private Sub Image2_Click()
    ShellExecute 0, "open", "http://ocn.e5v.com/cgi-bin/bbs/ccb/index.cgi?", vbNullString, vbNullString, 0  '到OCN破解组织
    End Sub

    Private Sub Image3_Click()
    ShellExecute 0, "open", "http://luowei.mireene.com/bbs/index.php", vbNullString, vbNullString, 0  '到飘云论坛
    End Sub

    Private Sub Text2_Click()

    Dim name As String
    Dim code As String
    Dim lenj As Integer
    Dim a, b, c, N, d, e As Double '将常数作label2.caption,解决数制问题

    N = Val(Label2.Caption)  'N表示常数&H9BB2EB6A,如查直接赋值,它竟然是个负数,这是VB的错误!

    name = Trim(Text1.Text)
    lenj = Len(name)
    If Len(name) = 0 Then
    MsgBox "请输入注册名!", 48, "wofan[OCN]"
    Text1.SetFocus
    Exit Sub
    End If

    a = Asc(Mid$(name, lenj, 1))
    b = a * lenj
    code = CStr(b)
    code = code & CStr(lenj)
    a = CLng(code) * 2

    b = a * 6
    c = a * N


    b = b * &H10000000
    b = b * &H10

    c = c - 1000                     '让它转成真正的注册码
    a = b + c

    code = CStr(a)                   '转换成字串
    lenj = Len(code)                 '取它的长度,以便确定浮点位数!
    code = code & "E+" & (lenj - 1)  '转成合法的浮点样式注册码

    '因为VB6在数据太大时,会自作主张转换为浮点数,这个注机对于注册名长度超过9位,就会得到
    '错误的注册码,它的形式就是多了一个E+……这真是莫名其妙!

    Text2.Text = code


    End Sub

    Private Sub Text2_GotFocus()
    With Text2
    .SelStart = 0
    .SelLength = Len(Trim(Text2.Text))
    End With
    End Sub


    by wofan[OCN][PYG]


    感谢你看完!

    Thrttle算号器.zip

    6.84 KB, 下载次数: 13, 下载积分: 飘云币 -2 枚

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-4-18 17:28:36 | 显示全部楼层
    支持加学习~~~~~~~~~
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-4-15 20:47
  • 签到天数: 431 天

    [LV.9]以坛为家II

     楼主| 发表于 2005-4-19 02:34:10 | 显示全部楼层

    原注册机不完美,重发,就不编译了!

    Option Explicit
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long        '函数声明,产生网络链接效果'
    Const N As Double = 2612194154#       'N表示常数&H9BB2EB6A


    Private Sub Image2_Click()
    ShellExecute 0, "open", "http://ocn.e5v.com/cgi-bin/bbs/ccb/index.cgi?", vbNullString, vbNullString, 0  '到OCN破解组织
    End Sub

    Private Sub Image3_Click()
    ShellExecute 0, "open", "http://luowei.mireene.com/bbs/index.php", vbNullString, vbNullString, 0  '到飘云论坛
    End Sub

    Private Sub Text2_Click()

    Dim name As String
    Dim code, codeyes As String
    Dim lenj, d, e  As Integer
    Dim a, b, c As Double


    name = Trim(Text1.Text)
    lenj = Len(name)
    If Len(name) = 0 Then
    MsgBox "请输入注册名!", 48, "wofan[OCN]"
    Text1.SetFocus
    Exit Sub
    End If

    a = Asc(Mid$(name, lenj, 1))
    b = a * lenj
    code = CStr(b)
    code = code & CStr(lenj)
    a = CLng(code) * 2

    b = a * 6
    c = a * N


    b = b * &H10000000
    b = b * &H10

    c = c - 1000
    a = b + c

    code = CStr(a)                   '转换成字串
    lenj = Len(code)                 '取它的长度,以便确定浮点位数!

    If StrComp(".", Mid$(code, 2, 1)) = 0 Then  '看看是不是太大的数!
      d = InStr(code, "+")         '取得浮点位数的位置
      e = CInt(Mid$(code, (d + 1))) '取得浮点位数
      codeyes = Mid$(code, 1, 1) & Mid$(code, 3, (d - 4))
           While Len(codeyes) < e + 1   '位数不够,就补零吧!
           codeyes = codeyes & "0"
           Wend
    code = codeyes
    lenj = Len(code)
    End If

    code = code & "E+" & (lenj - 1)  '转成合法的浮点样式注册码

    '因为VB6在数据太大时,会自作主张转换为浮点数,这个注机对于注册名长度超过9位,就会得到
    '错误的注册码,它的形式就是多了一个E+……这真是莫名其妙!
    '2005-4-19解决这个问题
    '这么一个简单的问题,都要成为拦路虎!
    '虽然有点罗嗦,不过问题还是解决了。VB真是有点麻烦。
    Text2.Text = code


    End Sub

    Private Sub Text2_GotFocus()
    With Text2
    .SelStart = 0
    .SelLength = Len(Trim(Text2.Text))
    End With
    End Sub
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2024-3-21 21:06
  • 签到天数: 1489 天

    [LV.10]以坛为家III

    发表于 2005-4-20 20:06:52 | 显示全部楼层
    支持兄弟。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-1-8 22:14
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    发表于 2005-4-20 21:08:49 | 显示全部楼层
    厉害,学习~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-4-21 08:21:59 | 显示全部楼层
    谢谢 指教
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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