飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9528|回复: 15

[PYG]算法分析入门第十课

[复制链接]
  • TA的每日心情
    难过
    2024-4-22 14:49
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-7-21 09:00:12 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第十课
    【破文作者】飘云[PYG]
    【作者主页】https://www.chinapyg.com
    破解平台】winxp
    【破解工具】PEiD0.93、、OD二哥修改版
    【作者邮箱】piaoyun04@163.com
    【软件名称】拓普印刷报价管理系统 2.3
    【软件大小】1982 KB
    【原版下载】http://nj.onlinedown.net/soft/40203.htm
    【软件简介】如果您在印刷行业或作印刷产品贸易,必然面临枯燥而烦琐的印刷品报价的报价问题,并且经常为这些问题烦恼。  
    一、是复杂的印刷品报价周期长时间,客户等得不耐烦。
    二、是印刷品本身种类繁多,千差万别,即便你是熟练的印刷行业的业务员,你仍然难免有把物料及工艺算错价的时候。
    三、客户经常随意性地、反复地改变印刷品的要求,给您报价及查询报价带来相当的不便;
    四、同一公司的不同业务员往往因为各种原因而产生报价不统一的情况,从而造成报价混乱,损害公司形象。
    五、产品组成的物料和加工工艺市场价格经常变化,导致报价不准,可能价格高了,您接不了客户订单,可能价格低了,导致您的企业亏本。

    要解决以上种种问题和烦恼,“拓普印刷产品报价管理系统”则是您最佳选择,因为它专业化、操作简单化、价格及时化、准确化等等优点。
    “拓普印刷报价管理系统”不是简单的报价软件,它是集报价,报价单管理(历史报价单多项条件查询,报价单版本控制(客户多次更改产品要求

    ),重印—以前作过,现在客户要求再做以前的产品并报价),统计客户中标率(便于给中标率高的客户优先报价)等功能于一体的管理系统.
    【破解前话】这个软件 chenli7429 兄弟已经写了一个爆破及追注册码文章 见https://www.chinapyg.com/viewthread.php?tid=1653&fpage=1我索性把算法贴出给大家学习一下! 呵呵
    【分析过程】先用PEiD探测一下:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 手动脱之,Borland Delphi 6.0 - 7.0编写。
    至于怎么找关键点,相信看了前面的教程大家都已经学会了,我就不罗嗦了,以后的教程也不会详细说之
    用od载入程序来到以下关键:
    ************************************************************************************************
    00676CF8  push ebp
    00676CF9  mov ebp,esp
    00676CFB  push 0
    00676CFD  push 0
    00676CFF  push 0
    00676D01  push ebx
    00676D02  push esi
    00676D03  push edi
    00676D04  mov esi,eax
    00676D06  xor eax,eax
    00676D08  push ebp
    00676D09  push unpack1_.00676DB5
    00676D0E  push dword ptr fs:[eax]
    00676D11  mov dword ptr fs:[eax],esp
    00676D14  xor ebx,ebx
    00676D16  mov dl,1
    00676D18  mov eax,dword ptr ds:[4A0D8C]
    00676D1D  call unpack1_.004A0EF8
    00676D22  mov edi,eax
    00676D24  mov edx,80000005
    00676D29  mov eax,edi
    00676D2B  call unpack1_.004A0FD4
    00676D30  mov cl,1
    00676D32  mov edx,unpack1_.00676DD0            ; ASCII "APPEVENTS\EVENTLABELS\CCSELECT\tfoss3\telbook"
    00676D37  mov eax,edi
    00676D39  call unpack1_.004A1118
    00676D3E  test al,al
    00676D40  je short unpack1_.00676D9A
    00676D42  mov edx,unpack1_.00676E08            ; ASCII "msg_disk_id"
    00676D47  mov eax,edi
    00676D49  call unpack1_.004A14C0               ; ★判断是否过期,没过期则不比较注册码★
    00676D4E  test al,al
    00676D50  je short unpack1_.00676D8C
    00676D52  lea ecx,dword ptr ss:[ebp-4]
    00676D55  mov edx,unpack1_.00676E08            ; ASCII "msg_disk_id"
    00676D5A  mov eax,edi
    00676D5C  call unpack1_.004A12E0
    00676D61  lea ecx,dword ptr ss:[ebp-C]
    00676D64  mov edx,unpack1_.00676E1C            ; ASCII "CPUID"
    00676D69  mov eax,esi
    00676D6B  call unpack1_.00677220
    00676D70  mov edx,dword ptr ss:[ebp-C]
    00676D73  lea ecx,dword ptr ss:[ebp-8]
    00676D76  mov eax,esi
    00676D78  call unpack1_.006773F8               ; 算法call
    00676D7D  mov edx,dword ptr ss:[ebp-8]
    00676D80  mov eax,dword ptr ss:[ebp-4]
    00676D83  call unpack1_.00404E2C               ; 经典比较
    00676D88  jnz short unpack1_.00676D8C          ; 关键跳转
    00676D8A  mov bl,1
    00676D8C  mov eax,edi
    00676D8E  call unpack1_.004A0FA4
    00676D93  mov eax,edi
    00676D95  call unpack1_.00403BC4
    00676D9A  xor eax,eax
    00676D9C  pop edx
    00676D9D  pop ecx
    00676D9E  pop ecx
    00676D9F  mov dword ptr fs:[eax],edx
    00676DA2  push unpack1_.00676DBC
    00676DA7  lea eax,dword ptr ss:[ebp-C]
    00676DAA  mov edx,3
    00676DAF  call unpack1_.00404A54
    00676DB4  retn



    ********************************进入00676D78  call 006773F8 ************************************
    006773FE  push ebx
    006773FF  push esi
    00677400  push edi
    00677401  xor ebx,ebx
    00677403  mov dword ptr ss:[ebp-8],ebx
    00677406  mov edi,ecx
    00677408  mov dword ptr ss:[ebp-4],edx
    0067740B  mov eax,dword ptr ss:[ebp-4]         ; 机器码
    0067740E  call unpack1_.00404ED0
    00677413  xor eax,eax
    00677415  push ebp
    00677416  push unpack1_.00677499
    0067741B  push dword ptr fs:[eax]
    0067741E  mov dword ptr fs:[eax],esp
    00677421  mov eax,edi
    00677423  call unpack1_.00404A30
    00677428  mov eax,dword ptr ss:[ebp-4]
    0067742B  call unpack1_.00404CE8
    00677430  mov esi,eax
    00677432  test esi,esi
    00677434  jle short unpack1_.0067747E
    00677436  mov ebx,1                            ; 初始化ebx=1
    0067743B  lea eax,dword ptr ss:[ebp-8]
    0067743E  mov edx,dword ptr ss:[ebp-4]
    00677441  movzx edx,byte ptr ds:[edx+ebx-1]    ; 逐位取机器码ascii送到edx
    00677446  lea ecx,dword ptr ds:[ebx+1C90]      ; ebx+1c90(7312)送到ecx
    0067744C  and ecx,80000003                     ; ecx=ecx and 80000003
    00677452  jns short unpack1_.00677459
    00677454  dec ecx
    00677455  or ecx,FFFFFFFC
    00677458  inc ecx
    00677459  xor edx,ecx                          ; edx=edx xor ecx
    0067745B  and edx,800000FF                     ; edx = edx and 800000ff
    00677461  jns short unpack1_.0067746B
    00677463  dec edx
    00677464  or edx,FFFFFF00
    0067746A  inc edx
    0067746B  call unpack1_.00404C10               ; 将上面结果转换成字符
    00677470  mov edx,dword ptr ss:[ebp-8]
    00677473  mov eax,edi
    00677475  call unpack1_.00404CF0
    0067747A  inc ebx                              ; ebx =ebx +1
    0067747B  dec esi                              ; esi = esi -1
    0067747C  jnz short unpack1_.0067743B          ; 循环,直到取完
    0067747E  xor eax,eax
    00677480  pop edx
    00677481  pop ecx
    00677482  pop ecx
    00677483  mov dword ptr fs:[eax],edx
    00677486  push unpack1_.006774A0
    0067748B  lea eax,dword ptr ss:[ebp-8]
    0067748E  mov edx,2
    00677493  call unpack1_.00404A54
    00677498  retn
    00677499  jmp unpack1_.00404358
    0067749E  jmp short unpack1_.0067748B
    006774A0  pop edi
    006774A1  pop esi
    006774A2  pop ebx
    006774A3  pop ecx
    006774A4  pop ecx
    006774A5  pop ebp
    006774A6  retn

    【算法总结】
    不是很难,自己细细回味吧!

    我的信息:
    软件号:638591072430079
    注册码:71;58337360015:
    附上VB注册机源码:
    Private Sub Command1_Click()
    Dim code, a, b, c, d, e As String
    code = Text1
    a = Len(code)
    b = "7312"
    For i = 1 To a
    c = b + i
    c = c And &H80000003
    d = Asc(Mid(code, i, 1)) Xor c
    d = d And &H800000FF
    e = e & Chr(d)
    Next
    Text2 = e
    End Sub

    【特别说明】
    本软件要在过期后才比较注册码,所以测试时 要把系统时间向后调~

    注册信息保存在:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware Profiles\0001\APPEVENTS\EVENTLABELS\CCSELECT\tfoss3\telbook
    删除后可继续研究

    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-12-22 19:44
  • 签到天数: 44 天

    [LV.5]常住居民I

    发表于 2005-7-21 19:24:43 | 显示全部楼层
    支持下..看来又要去学习了,好久没有动过了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-4 11:49:55 | 显示全部楼层
    好好学习。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-7-26 08:15
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2005-11-10 22:41:17 | 显示全部楼层
    不错,简单.适合我这种菜鸟~
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-7-19 21:40
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2005-12-15 14:47:17 | 显示全部楼层
    一收再收。谢谢。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-4-1 19:00:03 | 显示全部楼层
    学习呼!我还要毕业呢!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-5 19:20:48 | 显示全部楼层
    谢谢
    学习中
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 89 天

    [LV.6]常住居民II

    发表于 2007-11-24 10:51:03 | 显示全部楼层
    好东西多谢了/:good
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-11-24 18:10:06 | 显示全部楼层
    老老实实的看贴,踏踏实实的学习,
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-23 04:14:24 | 显示全部楼层
    和楼上的想法一样 好好学
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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