• 【软件名称】某麻将 3.4
    【软件大小】4.43MB
    【软件限制】这是一个共享软件(有30次使用及每次7局限制),注册费:30元,注册后将无任何使用限制。
    【注册类型】机器码 + 用户名 -> 注册码,网络验证
    【破解过程】
    主程序:Mj.exe
    PEiD检查:ASPack 2.12 -> Alexey Solodovnikov
    脱壳:用AspackDie直接脱
    PEiD再检查:Microsoft Visual Basic 5.0 / 6.0
    编译方式:用OllyDBG加载,感觉是P-CODE,用WKTVBDebugger加载,果然是P-CODE

    //加载后停于此
    0049A850: 00 LargeBos
    //一路F8瞧瞧
    0049A852: 00 LargeBos
    0049A854: 4B OnErrorGoto Next
    0049A857: 00 LargeBos
    0049A859: 04 FLdRfVar 0070FB56h
    0049A85C: 04 FLdRfVar 0070FB58h
    0049A85F: 05 ImpAdLdRf
    0049A862: 24 NewIfNullPr 0041CEA8
    0049A865: 0D VCallHresult CVBApp::get_App
    0049A86A: 08 FLdPr
    0049A86D: 0D VCallHresult get__ipropPrevInstanceAPP
    0049A872: 6B FLdI2
    0049A875: 1A FFree1Ad
    0049A878: 1C BranchF 0049A87F (Jump )
    0049A87B: 00 LargeBos
    0049A87D: FC Lead1/End
    0049A87F: 00 LargeBos
    //读取安装目录吧?
    0049A881: 1B LitStr: ’SetupDir’
    0049A884: 43 FStStrCopy
    0049A87B: 00 LargeBos
    0049A87D: FC Lead1/End
    0049A87F: 00 LargeBos
    0049A881: 1B LitStr: ’SetupDir’
    0049A884: 43 FStStrCopy
    0049A887: 04 FLdRfVar 0070FB48h
    //注册表字符串,说不定用户名与注册码也会储存在这儿
    0049A88A: 1B LitStr: ’SoftWare\NetMJ\Infomation’
    0049A88D: 43 FStStrCopy
    0049A890: 04 FLdRfVar 0070FB4Ch
    0049A893: F5 LitI4: -> 80000002h -2147483646
    0049A898: 59 PopTmpLdAdStr
    //读取注册表“SoftWare\NetMJ\Infomation”,获取“SetupDir”值
    0049A89B: 0B ImpAdCallI2 modPubTools!0044C5C4h
    0049A8A0: 31 FStStr
    ……
    //F5运行

    点击:Form Manager
    在窗口下拉列表中看到了重要窗口:frmUserReg
    点击:Command
    在弹出窗口选择:cmdOK
    点击:BPX,进行中断

    接着返回主程序,输入一些注册信息,一但“确定”就会中断:
    0044485C: 04 FLdRfVar 0070F378h
    0044485F: 21 FLdPrThis 004FC52Ch
    00444860: 0F VCallAd frmUserReg.txtUserName
    00444863: 19 FStAdFunc 0070F37C
    00444866: 08 FLdPr
    00444869: 0D VCallHresult get__ipropTEXTEDIT
    0044486E: 6C ILdRf 00000000h
    00444871: 0B ImpAdCallI2 rtcTrimBstr on address 660E6AC5h
    //用户名
    00444876: FD Lead2/PopTmpLdAdStr
    0044487A: 1B LitStr: ’RegName’
    0044487D: 43 FStStrCopy
    00444880: 04 FLdRfVar 0070F36Ch
    00444883: 1B LitStr: ’SoftWare\NetMJ\Infomation’
    00444886: 43 FStStrCopy
    00444889: 04 FLdRfVar 0070F370h
    0044488C: F5 LitI4: -> 80000002h -2147483646
    00444891: 59 PopTmpLdAdStr
    00444894: 0A ImpAdCallFPR4 modPubTools!0044507Ch
    00444899: 32 FFreeStr
    004448A4: 1A FFree1Ad
    004448A7: 04 FLdRfVar 0070F378h
    004448AA: 21 FLdPrThis 004FC52Ch
    004448AB: 0F VCallAd frmUserReg.txtPassword
    004448AE: 19 FStAdFunc
    004448B1: 08 FLdPr
    004448B4: 0D VCallHresult get__ipropTEXTEDIT
    004448B9: 6C ILdRf 00000000h
    004448BC: 0B ImpAdCallI2 rtcTrimBstr on address 660E6AC5h
    //注册码
    004448C1: FD Lead2/PopTmpLdAdStr
    004448C5: 1B LitStr: ’RegCode’
    004448C8: 43 FStStrCopy
    004448CB: 04 FLdRfVar 0070F36Ch
    004448CE: 1B LitStr: ’SoftWare\NetMJ\Infomation’
    004448D1: 43 FStStrCopy
    004448D4: 04 FLdRfVar 0070F370h
    004448D7: F5 LitI4: -> 80000002h -2147483646
    004448DC: 59 PopTmpLdAdStr
    004448DF: 0A ImpAdCallFPR4 modPubTools!0044507Ch
    004448E4: 32 FFreeStr
    //很明显,注册信息存储于注册表项:SoftWare\NetMJ\Infomation
    //RegName 用户名
    //RegCode 注册码

    F5,主程序要求退出

    重新加载,并由以上信息“ImpAdCallI2 modPubTools!0044C5C4h”找出调用注册信息的位置

    //用户名 在此使用:GoOdLeiSuRe
    00449928: 23 FStStrNoPop -> ’GoOdLeiSuRe’
    0044992B: 0B ImpAdCallI2 rtcLowerCaseBstr on address 660E6A2Dh
    00449930: 31 FStStr -> ’goodleisure’
    00449933: 32 FFreeStr
    0044993C: 1B LitStr: ’regcode’
    0044993F: 43 FStStrCopy
    00449942: 04 FLdRfVar 0070F690h
    00449945: 1B LitStr: ’SoftWare\NetMJ\Infomation’
    00449948: 43 FStStrCopy
    0044994B: 04 FLdRfVar 0070F694h
    0044994E: F5 LitI4: -> 80000002h -2147483646
    00449953: 59 PopTmpLdAdStr
    00449956: 0B ImpAdCallI2 modPubTools!0044C5C4h
    //注册码 在此使用:7878787878
    0044995B: 31 FStStr -> ’7878787878’
    0044995E: 32 FFreeStr
    00449965: 05 ImpAdLdRf
    00449968: F4 LitI2_Byte: -> 1h 1
    0044996A: FC Lead1/FnUBound
    0044996C: F5 LitI4: -> 1h 1
    0044
  • 【软件名称】创奇文书档案管理软件 V4.0
    【软件大小】3.85MB
    【下载地址】http://www.createsoft.cn
    【软件简介】该系统根据国家档案局颁布的《归档文件整理规则》的行业标准, 按照“简化整理,深化检索"以件为归档文件整理单位的思想开发设计的。适合于各行政机关、企事业单位使用,并完全符合文书档案达标升级的要求。
    系统主要特点: ……
    【破解过程】
    网上用户名、注册码都能找到,但不喜欢用别人的用户名,干脆看看注册算法,原来很简单。
    006791E5 |> 8B45 FC      mov   eax, [ebp-4]           ; 用户名
    006791E8 |. E8 1BAFD8FF    call  00404108
    006791ED |. 83F8 0A      cmp   eax, 0A             ; 长度是否小于10位
    006791F0 |. 7D 16       jge   short 00679208
    006791F2 |. A1 2C186800    mov   eax, [68182C]
    006791F7 |. 8B00        mov   eax, [eax]
    006791F9 |. BA 38936700    mov   edx, 00679338
    006791FE |. E8 4179F6FF    call  005E0B44
    00679203 |. E9 E0000000    jmp   006792E8
    00679208 |> 8D55 EC      lea   edx, [ebp-14]
    0067920B |. 8B45 FC      mov   eax, [ebp-4]
    0067920E |. E8 51F7FFFF    call  00678964             ; 生成注册码
    00679213 |. 8B45 EC      mov   eax, [ebp-14]

    //通过用户名生成注册码
    00678964 /$ 55         push  ebp
    ……
    006789B5 |> 8B45 FC      /mov   eax, [ebp-4]
    006789B8 |. 0FB67418 FF    |movzx  esi, byte ptr [eax+ebx-1]    ; 逐个取用户名字母
    006789BD |. B8 808A6700    |mov   eax, 00678A80          ; ASCII "8o@wgbv82d23439olklj+jikdfg443243\o2u325ytryrl;5kgi\-klj`ashjs^df`afteyr65756tye7dg876s"
    006789C2 |. 0FB64418 FF    |movzx  eax, byte ptr [eax+ebx-1]    ; 逐个取上述字符串字母
    006789C7 |. 33F0        |xor   esi, eax            ; XOR 操作

    【算法分析】
    1,用户名长度要大于10位;
    2,取用户名各字符与如下字典相应字母XOR操作:
    8o@wgbv82d23439olklj+jikdfg443243\o2u325ytryrl;5kgi\-klj`ashjs^df`afteyr65756tye7dg876s
    3,将计算值格式化为三位数,连接后反置即为注册码。

    用户名:GoOdLeiSuRe
    注册码:780450170701130700340910510000721
  • 【软件名称】Puma Video Converter V2.36
    【软件大小】4.70MB
    【下载地址】http://www.puma-development.com
    【软件简介】Puma Video Converter是一个强大的、通用的 AVI MPEG WMV MOV 3GP RM DVD (S)VCD OGM MKV H.264/MPEG-4 AVC 视频转换器。Video converter can可以转换流行的视频格式成为 AVI, MPEG1, MPEG2, VCD, SVCD, DVD, iPod, PSP, 3GP, Flash, RealMedia, Quicktime 或者 Windows Media Video 9 Professional 及extract audio to MP2, MP3, OGG, AC3 或 WAV。用户只需几次鼠标按键就可以完成视频及电影的转换。
    【破解过程】
    网上下载的软件说明中一般已写有注册码,随便看看便是。

    006B1ADE  . E8 C1F8E8FF     call  005413A4
    006B1AE3  . 8B45 F4       mov   eax, [ebp-C]        ; 注册码
    006B1AE6  . 8D55 F8       lea   edx, [ebp-8]
    006B1AE9  . E8 0687D5FF     call  0040A1F4
    006B1AEE  . 8D55 F0       lea   edx, [ebp-10]
    006B1AF1  . 8B83 6C030000    mov   eax, [ebx+36C]
    006B1AF7  . E8 A8F8E8FF     call  005413A4
    006B1AFC  . 8B45 F0       mov   eax, [ebp-10]       ; 用户名
    006B1AFF  . 8D55 FC       lea   edx, [ebp-4]
    006B1B02  . E8 ED86D5FF     call  0040A1F4
    006B1B07  . 837D FC 00     cmp   dword ptr [ebp-4], 0
    006B1B0B  . 74 06        je   short 006B1B13
    006B1B0D  . 837D F8 00     cmp   dword ptr [ebp-8], 0
    006B1B11  . 75 28        jnz   short 006B1B3B
    006B1B13  > 0FB705 5C1D6B00   movzx  eax, word ptr [6B1D5C]   ; 提示输入用户名和注册码
    006B1B1A  . 50         push  eax
    006B1B1B  . 6A 00        push  0
    006B1B1D  . A1 10656D00     mov   eax, [6D6510]
    006B1B22  . 8B00        mov   eax, [eax]
    006B1B24  . 8B80 90030000    mov   eax, [eax+390]
    006B1B2A  . 33C9        xor   ecx, ecx
    006B1B2C  . BA 681D6B00     mov   edx, 006B1D68       ; ASCII "Enter username and serial"
    006B1B31  . E8 96F6EFFF     call  005B11CC
    006B1B36  . E9 9D010000     jmp   006B1CD8
    006B1B3B  > A1 A06B6D00     mov   eax, [6D6BA0]
    006B1B40  . 8B00        mov   eax, [eax]
    006B1B42  . 8B55 F8       mov   edx, [ebp-8]        ; 注册码
    006B1B45  . 8B08        mov   ecx, [eax]
    006B1B47  . FF51 54       call  [ecx+54]          ; 检验注册码是否正确
    006B1B4A  . 40         inc   eax

    //检验注册码是否正确
    // call  [ecx+54]
    00420E84  . 53         push  ebx
    ……
    00420E95  . E8 A2F1FFFF     call  0042003C          ; 关键
    ……
    00420EBE  . C3         retn

    //关键
    //     call  0042003C
    0042003C /$ 55         push  ebp
    ……
    00420047 |. 894D F4       mov   [ebp-C], ecx
    0042004A |. 8955 FC       mov   [ebp-4], edx        ; 注册码
    ……
    00420061 |. FF52 14       call  [edx+14]          ; 计算字符串长度
    00420064 |. 8BF0        mov   esi, eax          ; 注册码长度
    00420066 |. 4E         dec   esi
    00420067 |. 85F6        test  esi, esi
    00420069 |. 7C 2C        jl   short 00420097
    0042006B |. 46         inc   esi
    0042006C |. C745 F8 00000000  mov   dword ptr [ebp-8], 0
    00420073 |> 8D4D F4       /lea   ecx, [ebp-C]
    00420076 |. 8B55 F8       |mov   edx, [ebp-8]       ; 计数
    00420079 |. 8BC3        |mov   eax, ebx
    0042007B |. 8B38        |mov   edi, [eax]
    0042007D |. FF57 0C       |call  [edi+C]          ; 逐个调用有效注册码
    00420080 |. 8B55 F4       |mov   edx, [ebp-C]
    00420083 |. 8B4D FC       |mov   ecx, [ebp-4]       ; 注册码
    00420086 |. 8BC3        |mov   eax, ebx
    00420088 |. 8B38        |mov   edi, [eax]
    0042008A |. FF57 34       |call  [edi+34]         ; 字符串比较
    0042008D |. 85C0        |test  eax, eax
    0042008F |. 74 0D        |je   short 0042009E
    00420091 |. FF45