-
2007-03-31
某麻将的P-CODE分析 - [Snug Studio 破解]
【软件名称】某麻将 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 -
2007-03-16
创奇文书档案管理软件 V4.0 - [Snug Studio 破解]
【软件名称】创奇文书档案管理软件 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 -
2007-03-16
Puma Video Converter 注册码 - [Snug Studio 破解]
【软件名称】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
共1页 1






